File : s-macres-xtratum.adb
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- S Y S T E M . M A C H I N E _ R E S E T --
6 -- --
7 -- B o d y --
8 -- --
9 -- Copyright (C) 2011-2016, Free Software Foundation, Inc. --
10 -- --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
17 -- --
18 -- --
19 -- --
20 -- --
21 -- --
22 -- You should have received a copy of the GNU General Public License and --
23 -- a copy of the GCC Runtime Library Exception along with this program; --
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
25 -- <http://www.gnu.org/licenses/>. --
26 -- --
27 -- GNAT was originally developed by the GNAT team at New York University. --
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
29 -- --
30 ------------------------------------------------------------------------------
31
32 -- Reset for Xtratum
33
34 with Interfaces;
35
36 package body System.Machine_Reset is
37 procedure Os_Exit (Status : Integer);
38 pragma No_Return (Os_Exit);
39 pragma Export (Ada, Os_Exit, "_exit");
40 -- Shutdown or restart the board
41
42 -------------
43 -- Os_Exit --
44 -------------
45
46 procedure Os_Exit (Status : Integer) is
47 pragma Unreferenced (Status);
48 -- The parameter is just for ISO-C compatibility
49
50 procedure Reset_System (Mode : Integer);
51 pragma Import (C, Reset_System, "XM_halt_system");
52 -- Halt the system. Might be too strong and could be replaced by
53 -- call to reset_partition or halt_partition.
54
55 begin
56 loop
57 Reset_System (0);
58 end loop;
59 end Os_Exit;
60
61 ----------
62 -- Stop --
63 ----------
64
65 procedure Stop is
66 begin
67 Os_Exit (0);
68 end Stop;
69 end System.Machine_Reset;