Changeset 1987020 in rtems


Ignore:
Timestamp:
Feb 16, 2011, 3:52:29 PM (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, master
Children:
3c4d8cd1
Parents:
0f801cd
Message:

2011-02-16 Joel Sherrill <joel.sherrill@…>

  • ada/Makefile.am, ada/preinstall.am, ada/rtems.adb, ada/rtems.ads: Split RTEMS Ada95 binding into a master package and a child package per Manager. This is better Ada style.
  • ada/rtems-barrier.adb, ada/rtems-barrier.ads, ada/rtems-clock.adb, ada/rtems-clock.ads, ada/rtems-cpu_usage.ads, ada/rtems-debug.adb, ada/rtems-debug.ads, ada/rtems-event.adb, ada/rtems-event.ads, ada/rtems-extension.adb, ada/rtems-extension.ads, ada/rtems-fatal.adb, ada/rtems-fatal.ads, ada/rtems-interrupt.ads, ada/rtems-io.adb, ada/rtems-io.ads, ada/rtems-message_queue.adb, ada/rtems-message_queue.ads, ada/rtems-object.adb, ada/rtems-object.ads, ada/rtems-partition.adb, ada/rtems-partition.ads, ada/rtems-port.adb, ada/rtems-port.ads, ada/rtems-rate_monotonic.adb, ada/rtems-rate_monotonic.ads, ada/rtems-region.adb, ada/rtems-region.ads, ada/rtems-semaphore.adb, ada/rtems-semaphore.ads, ada/rtems-signal.adb, ada/rtems-signal.ads, ada/rtems-stack_checker.ads, ada/rtems-tasks.adb, ada/rtems-tasks.ads, ada/rtems-timer.adb, ada/rtems-timer.ads: New files.
Location:
c/src
Files:
37 added
5 edited

Legend:

Unmodified
Added
Removed
  • c/src/ChangeLog

    r0f801cd r1987020  
     12011-02-16      Joel Sherrill <joel.sherrill@oarcorp.com>
     2
     3        * ada/Makefile.am, ada/preinstall.am, ada/rtems.adb, ada/rtems.ads:
     4        Split RTEMS Ada95 binding into a master package and a child package
     5        per Manager. This is better Ada style.
     6        * ada/rtems-barrier.adb, ada/rtems-barrier.ads, ada/rtems-clock.adb,
     7        ada/rtems-clock.ads, ada/rtems-cpu_usage.ads, ada/rtems-debug.adb,
     8        ada/rtems-debug.ads, ada/rtems-event.adb, ada/rtems-event.ads,
     9        ada/rtems-extension.adb, ada/rtems-extension.ads,
     10        ada/rtems-fatal.adb, ada/rtems-fatal.ads, ada/rtems-interrupt.ads,
     11        ada/rtems-io.adb, ada/rtems-io.ads, ada/rtems-message_queue.adb,
     12        ada/rtems-message_queue.ads, ada/rtems-object.adb,
     13        ada/rtems-object.ads, ada/rtems-partition.adb,
     14        ada/rtems-partition.ads, ada/rtems-port.adb, ada/rtems-port.ads,
     15        ada/rtems-rate_monotonic.adb, ada/rtems-rate_monotonic.ads,
     16        ada/rtems-region.adb, ada/rtems-region.ads, ada/rtems-semaphore.adb,
     17        ada/rtems-semaphore.ads, ada/rtems-signal.adb, ada/rtems-signal.ads,
     18        ada/rtems-stack_checker.ads, ada/rtems-tasks.adb,
     19        ada/rtems-tasks.ads, ada/rtems-timer.adb, ada/rtems-timer.ads: New
     20        files.
     21
    1222011-02-16      Sebastian Huber <sebastian.huber@embedded-brains.de>
    223
  • c/src/ada/Makefile.am

    r0f801cd r1987020  
    66include_adadir = $(includedir)/adainclude
    77include_ada_HEADERS = rtems.adb rtems.ads
    8 include_ada_HEADERS += rtems-multiprocessing.adb rtems-multiprocessing.ads
     8include_ada_HEADERS +=  \
     9    rtems-barrier.adb rtems-barrier.ads \
     10    rtems-clock.adb rtems-clock.ads \
     11    rtems-cpu_usage.ads \
     12    rtems-debug.adb rtems-debug.ads \
     13    rtems-event.adb rtems-event.ads \
     14    rtems-extension.adb rtems-extension.ads \
     15    rtems-fatal.adb rtems-fatal.ads \
     16    rtems-interrupt.ads \
     17    rtems-io.adb rtems-io.ads \
     18    rtems-message_queue.adb rtems-message_queue.ads \
     19    rtems-multiprocessing.adb rtems-multiprocessing.ads \
     20    rtems-object.adb rtems-object.ads \
     21    rtems-partition.adb rtems-partition.ads \
     22    rtems-port.adb rtems-port.ads \
     23    rtems-rate_monotonic.adb rtems-rate_monotonic.ads \
     24    rtems-region.adb rtems-region.ads \
     25    rtems-semaphore.adb rtems-semaphore.ads \
     26    rtems-signal.adb rtems-signal.ads \
     27    rtems-stack_checker.ads \
     28    rtems-tasks.adb rtems-tasks.ads \
     29    rtems-timer.adb rtems-timer.ads
    930endif
    1031
  • c/src/ada/preinstall.am

    r0f801cd r1987020  
    2828PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems.ads
    2929
     30$(PROJECT_INCLUDE)/adainclude/rtems-barrier.adb: rtems-barrier.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     31        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-barrier.adb
     32PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-barrier.adb
     33
     34$(PROJECT_INCLUDE)/adainclude/rtems-barrier.ads: rtems-barrier.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     35        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-barrier.ads
     36PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-barrier.ads
     37
     38$(PROJECT_INCLUDE)/adainclude/rtems-clock.adb: rtems-clock.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     39        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-clock.adb
     40PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-clock.adb
     41
     42$(PROJECT_INCLUDE)/adainclude/rtems-clock.ads: rtems-clock.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     43        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-clock.ads
     44PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-clock.ads
     45
     46$(PROJECT_INCLUDE)/adainclude/rtems-cpu_usage.ads: rtems-cpu_usage.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     47        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-cpu_usage.ads
     48PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-cpu_usage.ads
     49
     50$(PROJECT_INCLUDE)/adainclude/rtems-debug.adb: rtems-debug.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     51        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-debug.adb
     52PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-debug.adb
     53
     54$(PROJECT_INCLUDE)/adainclude/rtems-debug.ads: rtems-debug.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     55        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-debug.ads
     56PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-debug.ads
     57
     58$(PROJECT_INCLUDE)/adainclude/rtems-event.adb: rtems-event.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     59        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-event.adb
     60PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-event.adb
     61
     62$(PROJECT_INCLUDE)/adainclude/rtems-event.ads: rtems-event.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     63        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-event.ads
     64PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-event.ads
     65
     66$(PROJECT_INCLUDE)/adainclude/rtems-extension.adb: rtems-extension.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     67        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-extension.adb
     68PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-extension.adb
     69
     70$(PROJECT_INCLUDE)/adainclude/rtems-extension.ads: rtems-extension.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     71        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-extension.ads
     72PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-extension.ads
     73
     74$(PROJECT_INCLUDE)/adainclude/rtems-fatal.adb: rtems-fatal.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     75        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-fatal.adb
     76PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-fatal.adb
     77
     78$(PROJECT_INCLUDE)/adainclude/rtems-fatal.ads: rtems-fatal.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     79        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-fatal.ads
     80PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-fatal.ads
     81
     82$(PROJECT_INCLUDE)/adainclude/rtems-interrupt.ads: rtems-interrupt.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     83        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-interrupt.ads
     84PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-interrupt.ads
     85
     86$(PROJECT_INCLUDE)/adainclude/rtems-io.adb: rtems-io.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     87        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-io.adb
     88PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-io.adb
     89
     90$(PROJECT_INCLUDE)/adainclude/rtems-io.ads: rtems-io.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     91        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-io.ads
     92PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-io.ads
     93
     94$(PROJECT_INCLUDE)/adainclude/rtems-message_queue.adb: rtems-message_queue.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     95        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-message_queue.adb
     96PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-message_queue.adb
     97
     98$(PROJECT_INCLUDE)/adainclude/rtems-message_queue.ads: rtems-message_queue.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     99        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-message_queue.ads
     100PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-message_queue.ads
     101
    30102$(PROJECT_INCLUDE)/adainclude/rtems-multiprocessing.adb: rtems-multiprocessing.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
    31103        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-multiprocessing.adb
     
    35107        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-multiprocessing.ads
    36108PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-multiprocessing.ads
     109
     110$(PROJECT_INCLUDE)/adainclude/rtems-object.adb: rtems-object.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     111        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-object.adb
     112PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-object.adb
     113
     114$(PROJECT_INCLUDE)/adainclude/rtems-object.ads: rtems-object.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     115        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-object.ads
     116PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-object.ads
     117
     118$(PROJECT_INCLUDE)/adainclude/rtems-partition.adb: rtems-partition.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     119        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-partition.adb
     120PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-partition.adb
     121
     122$(PROJECT_INCLUDE)/adainclude/rtems-partition.ads: rtems-partition.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     123        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-partition.ads
     124PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-partition.ads
     125
     126$(PROJECT_INCLUDE)/adainclude/rtems-port.adb: rtems-port.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     127        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-port.adb
     128PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-port.adb
     129
     130$(PROJECT_INCLUDE)/adainclude/rtems-port.ads: rtems-port.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     131        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-port.ads
     132PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-port.ads
     133
     134$(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.adb: rtems-rate_monotonic.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     135        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.adb
     136PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.adb
     137
     138$(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.ads: rtems-rate_monotonic.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     139        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.ads
     140PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-rate_monotonic.ads
     141
     142$(PROJECT_INCLUDE)/adainclude/rtems-region.adb: rtems-region.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     143        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-region.adb
     144PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-region.adb
     145
     146$(PROJECT_INCLUDE)/adainclude/rtems-region.ads: rtems-region.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     147        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-region.ads
     148PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-region.ads
     149
     150$(PROJECT_INCLUDE)/adainclude/rtems-semaphore.adb: rtems-semaphore.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     151        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-semaphore.adb
     152PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-semaphore.adb
     153
     154$(PROJECT_INCLUDE)/adainclude/rtems-semaphore.ads: rtems-semaphore.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     155        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-semaphore.ads
     156PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-semaphore.ads
     157
     158$(PROJECT_INCLUDE)/adainclude/rtems-signal.adb: rtems-signal.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     159        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-signal.adb
     160PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-signal.adb
     161
     162$(PROJECT_INCLUDE)/adainclude/rtems-signal.ads: rtems-signal.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     163        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-signal.ads
     164PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-signal.ads
     165
     166$(PROJECT_INCLUDE)/adainclude/rtems-stack_checker.ads: rtems-stack_checker.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     167        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-stack_checker.ads
     168PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-stack_checker.ads
     169
     170$(PROJECT_INCLUDE)/adainclude/rtems-tasks.adb: rtems-tasks.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     171        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-tasks.adb
     172PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-tasks.adb
     173
     174$(PROJECT_INCLUDE)/adainclude/rtems-tasks.ads: rtems-tasks.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     175        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-tasks.ads
     176PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-tasks.ads
     177
     178$(PROJECT_INCLUDE)/adainclude/rtems-timer.adb: rtems-timer.adb $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     179        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-timer.adb
     180PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-timer.adb
     181
     182$(PROJECT_INCLUDE)/adainclude/rtems-timer.ads: rtems-timer.ads $(PROJECT_INCLUDE)/adainclude/$(dirstamp)
     183        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/adainclude/rtems-timer.ads
     184PREINSTALL_FILES += $(PROJECT_INCLUDE)/adainclude/rtems-timer.ads
    37185endif
  • c/src/ada/rtems.adb

    r0f801cd r1987020  
    1 --
     1
    22--  RTEMS / Body
    33--
     
    1111--
    1212--
    13 --  COPYRIGHT (c) 1997-2008.
     13--  COPYRIGHT (c) 1997-2011.
    1414--  On-Line Applications Research Corporation (OAR).
    1515--
     
    2323with Ada;
    2424with Ada.Unchecked_Conversion;
    25 with Interfaces; use Interfaces;
    26 with Interfaces.C; use Interfaces.C;
    27 with Interfaces.C.Strings; use Interfaces.C.Strings;
     25with Interfaces;               use Interfaces;
     26with Interfaces.C;             use Interfaces.C;
    2827
    2928package body RTEMS is
     
    3332   --
    3433
    35    function From_Ada_Boolean (
    36       Ada_Boolean : Standard.Boolean
    37    ) return RTEMS.Boolean is
     34   function From_Ada_Boolean
     35     (Ada_Boolean : Standard.Boolean)
     36      return        RTEMS.Boolean
     37   is
    3838   begin
    3939
     
    4646   end From_Ada_Boolean;
    4747
    48    function To_Ada_Boolean (
    49       RTEMS_Boolean : RTEMS.Boolean
    50    ) return Standard.Boolean is
     48   function To_Ada_Boolean
     49     (RTEMS_Boolean : RTEMS.Boolean)
     50      return          Standard.Boolean
     51   is
    5152   begin
    5253
     
    5960   end To_Ada_Boolean;
    6061
    61    function Milliseconds_To_Microseconds (
    62       Milliseconds : RTEMS.Unsigned32
    63    ) return RTEMS.Unsigned32 is
     62   function Milliseconds_To_Microseconds
     63     (Milliseconds : RTEMS.Unsigned32)
     64      return         RTEMS.Unsigned32
     65   is
    6466   begin
    6567
     
    6870   end Milliseconds_To_Microseconds;
    6971
    70    function Microseconds_To_Ticks (
    71       Microseconds : RTEMS.Unsigned32
    72    ) return RTEMS.Interval is
    73       function Microseconds_Per_Tick return RTEMS.Unsigned32;
     72   function Microseconds_To_Ticks
     73     (Microseconds : RTEMS.Unsigned32)
     74      return         RTEMS.Interval
     75   is
     76      function Microseconds_Per_Tick return  RTEMS.Unsigned32;
    7477      pragma Import (C, Microseconds_Per_Tick, "_ada_microseconds_per_tick");
    7578   begin
     
    7982   end Microseconds_To_Ticks;
    8083
    81    function Milliseconds_To_Ticks (
    82       Milliseconds : RTEMS.Unsigned32
    83    ) return RTEMS.Interval is
    84    begin
    85 
    86       return Microseconds_To_Ticks(Milliseconds_To_Microseconds(Milliseconds));
     84   function Milliseconds_To_Ticks
     85     (Milliseconds : RTEMS.Unsigned32)
     86      return         RTEMS.Interval
     87   is
     88   begin
     89
     90      return Microseconds_To_Ticks
     91               (Milliseconds_To_Microseconds (Milliseconds));
    8792
    8893   end Milliseconds_To_Ticks;
    8994
    90    procedure Name_To_Characters (
    91       Name : in    RTEMS.Name;
    92       C1   :    out Character;
    93       C2   :    out Character;
    94       C3   :    out Character;
    95       C4   :    out Character
    96    ) is
     95   procedure Name_To_Characters
     96     (Name : in RTEMS.Name;
     97      C1   : out Character;
     98      C2   : out Character;
     99      C3   : out Character;
     100      C4   : out Character)
     101   is
    97102      C1_Value : RTEMS.Unsigned32;
    98103      C2_Value : RTEMS.Unsigned32;
     
    101106   begin
    102107
    103      C1_Value := Interfaces.Shift_Right( Name, 24 );
    104      C2_Value := Interfaces.Shift_Right( Name, 16 );
    105      C3_Value := Interfaces.Shift_Right( Name, 8 );
    106      C4_Value := Name;
    107 
    108      C1_Value := C1_Value and 16#00FF#;
    109      C2_Value := C2_Value and 16#00FF#;
    110      C3_Value := C3_Value and 16#00FF#;
    111      C4_Value := C4_Value and 16#00FF#;
    112 
    113      C1 := Character'Val( C1_Value );
    114      C2 := Character'Val( C2_Value );
    115      C3 := Character'Val( C3_Value );
    116      C4 := Character'Val( C4_Value );
     108      C1_Value := Interfaces.Shift_Right (Name, 24);
     109      C2_Value := Interfaces.Shift_Right (Name, 16);
     110      C3_Value := Interfaces.Shift_Right (Name, 8);
     111      C4_Value := Name;
     112
     113      C1_Value := C1_Value and 16#00FF#;
     114      C2_Value := C2_Value and 16#00FF#;
     115      C3_Value := C3_Value and 16#00FF#;
     116      C4_Value := C4_Value and 16#00FF#;
     117
     118      C1 := Character'Val (C1_Value);
     119      C2 := Character'Val (C2_Value);
     120      C3 := Character'Val (C3_Value);
     121      C4 := Character'Val (C4_Value);
    117122
    118123   end Name_To_Characters;
    119124
    120    function Get_Node (
    121       ID : in     RTEMS.ID
    122    ) return RTEMS.Unsigned32 is
     125   function Get_Node (ID : in RTEMS.ID) return RTEMS.Unsigned32 is
    123126   begin
    124127
    125128      -- May not be right
    126       return Interfaces.Shift_Right( ID, 16 );
     129      return Interfaces.Shift_Right (ID, 16);
    127130
    128131   end Get_Node;
    129132
    130    function Get_Index (
    131       ID : in     RTEMS.ID
    132    ) return RTEMS.Unsigned32 is
     133   function Get_Index (ID : in RTEMS.ID) return RTEMS.Unsigned32 is
    133134   begin
    134135
     
    138139   end Get_Index;
    139140
    140    function Are_Statuses_Equal (
    141       Status  : in     RTEMS.Status_Codes;
    142       Desired : in     RTEMS.Status_Codes
    143    ) return Standard.Boolean is
     141   function Are_Statuses_Equal
     142     (Status  : in RTEMS.Status_Codes;
     143      Desired : in RTEMS.Status_Codes)
     144      return    Standard.Boolean
     145   is
    144146   begin
    145147
     
    152154   end Are_Statuses_Equal;
    153155
    154    function Is_Status_Successful (
    155       Status  : in     RTEMS.Status_Codes
    156    ) return Standard.Boolean is
     156   function Is_Status_Successful
     157     (Status : in RTEMS.Status_Codes)
     158      return   Standard.Boolean
     159   is
    157160   begin
    158161
     
    165168   end Is_Status_Successful;
    166169
    167    function Subtract (
    168       Left   : in     RTEMS.Address;
    169       Right  : in     RTEMS.Address
    170    ) return RTEMS.Unsigned32 is
    171       function To_Unsigned32 is
    172          new Ada.Unchecked_Conversion (System.Address, RTEMS.Unsigned32);
    173 
    174    begin
    175       return To_Unsigned32(Left) - To_Unsigned32(Right);
     170   function Subtract
     171     (Left  : in RTEMS.Address;
     172      Right : in RTEMS.Address)
     173      return  RTEMS.Unsigned32
     174   is
     175      function To_Unsigned32 is new Ada.Unchecked_Conversion (
     176         System.Address,
     177         RTEMS.Unsigned32);
     178
     179   begin
     180      return To_Unsigned32 (Left) - To_Unsigned32 (Right);
    176181   end Subtract;
    177182
    178    function Are_Equal (
    179       Left   : in     RTEMS.Address;
    180       Right  : in     RTEMS.Address
    181    ) return Standard.Boolean is
    182       function To_Unsigned32 is
    183          new Ada.Unchecked_Conversion (System.Address, RTEMS.Unsigned32);
    184 
    185    begin
    186       return (To_Unsigned32(Left) = To_Unsigned32(Right));
     183   function Are_Equal
     184     (Left  : in RTEMS.Address;
     185      Right : in RTEMS.Address)
     186      return  Standard.Boolean
     187   is
     188      function To_Unsigned32 is new Ada.Unchecked_Conversion (
     189         System.Address,
     190         RTEMS.Unsigned32);
     191
     192   begin
     193      return (To_Unsigned32 (Left) = To_Unsigned32 (Right));
    187194   end Are_Equal;
    188195
     
    190197   --
    191198   --  RTEMS API
    192    --
    193 
    194    --
    195    --  Initialization Manager -- Shutdown Only
    196    --
    197    procedure Shutdown_Executive (
    198       Status           : in     RTEMS.Unsigned32
    199    ) is
    200       procedure Shutdown_Executive_Base (
    201          Status : RTEMS.Unsigned32
    202       );
    203       pragma Import (C, Shutdown_Executive_Base, "rtems_shutdown_executive");
    204    begin
    205       Shutdown_Executive_Base (Status);
    206    end Shutdown_Executive;
    207 
    208 
    209    --
    210    --  Task Manager
    211    --
    212 
    213    procedure Task_Create (
    214       Name             : in     RTEMS.Name;
    215       Initial_Priority : in     RTEMS.Task_Priority;
    216       Stack_Size       : in     RTEMS.Unsigned32;
    217       Initial_Modes    : in     RTEMS.Mode;
    218       Attribute_Set    : in     RTEMS.Attribute;
    219       ID               :    out RTEMS.ID;
    220       Result           :    out RTEMS.Status_Codes
    221    ) is
    222       function Task_Create_Base (
    223          Name             : RTEMS.Name;
    224          Initial_Priority : RTEMS.Task_Priority;
    225          Stack_Size       : RTEMS.Unsigned32;
    226          Initial_Modes    : RTEMS.Mode;
    227          Attribute_Set    : RTEMS.Attribute;
    228          ID               : access RTEMS.ID
    229       )  return RTEMS.Status_Codes;
    230       pragma Import (C, Task_Create_Base, "rtems_task_create");
    231       ID_Base : aliased RTEMS.ID;
    232    begin
    233       Result := Task_Create_Base (
    234         Name,
    235         Initial_Priority,
    236         Stack_Size,
    237         Initial_Modes,
    238         Attribute_Set,
    239         ID_Base'Access
    240       );
    241       ID := ID_Base;
    242    end Task_Create;
    243 
    244    procedure Task_Ident (
    245       Name             : in     RTEMS.Name;
    246       Node             : in     RTEMS.Node;
    247       ID               :    out RTEMS.ID;
    248       Result           :    out RTEMS.Status_Codes
    249    ) is
    250 
    251       function Task_Ident_Base (
    252          Name             : RTEMS.Name;
    253          Node             : RTEMS.Node;
    254          ID               : access RTEMS.ID
    255       )  return RTEMS.Status_Codes;
    256       pragma Import (C, Task_Ident_Base, "rtems_task_ident");
    257       ID_Base     : aliased RTEMS.ID;
    258 
    259    begin
    260 
    261       Result := Task_Ident_Base (Name, Node, ID_Base'Access);
    262       ID := ID_Base;
    263 
    264    end Task_Ident;
    265 
    266    procedure Task_Start (
    267       ID          : in     RTEMS.ID;
    268       Entry_Point : in     RTEMS.Task_Entry;
    269       Argument    : in     RTEMS.Task_Argument;
    270       Result      :    out RTEMS.Status_Codes
    271    ) is
    272       function Task_Start_Base (
    273          ID          : RTEMS.ID;
    274          Entry_Point : RTEMS.Task_Entry;
    275          Argument    : RTEMS.Task_Argument
    276       )  return RTEMS.Status_Codes;
    277       pragma Import (C, Task_Start_Base, "rtems_task_start");
    278    begin
    279 
    280       Result := Task_Start_Base (ID, Entry_Point, Argument);
    281 
    282    end Task_Start;
    283 
    284    procedure Task_Restart (
    285       ID       : in     RTEMS.ID;
    286       Argument : in     RTEMS.Task_Argument;
    287       Result   :    out RTEMS.Status_Codes
    288    ) is
    289       function Task_Restart_Base (
    290          ID       : RTEMS.ID;
    291          Argument : RTEMS.Task_Argument
    292       )  return RTEMS.Status_Codes;
    293       pragma Import (C, Task_Restart_Base, "rtems_task_restart");
    294    begin
    295 
    296       Result := Task_Restart_Base (ID, Argument);
    297 
    298    end Task_Restart;
    299 
    300    procedure Task_Delete (
    301       ID     : in     RTEMS.ID;
    302       Result :    out RTEMS.Status_Codes
    303    ) is
    304       function Task_Delete_Base (
    305          ID : RTEMS.ID
    306       )  return RTEMS.Status_Codes;
    307       pragma Import (C, Task_Delete_Base, "rtems_task_delete");
    308    begin
    309 
    310       Result := Task_Delete_Base (ID);
    311 
    312    end Task_Delete;
    313 
    314    procedure Task_Suspend (
    315       ID     : in     RTEMS.ID;
    316       Result :    out RTEMS.Status_Codes
    317    ) is
    318       function Task_Suspend_Base (
    319          ID : RTEMS.ID
    320       )  return RTEMS.Status_Codes;
    321       pragma Import (C, Task_Suspend_Base, "rtems_task_suspend");
    322    begin
    323 
    324       Result := Task_Suspend_Base (ID);
    325 
    326    end Task_Suspend;
    327 
    328    procedure Task_Resume (
    329       ID     : in     RTEMS.ID;
    330       Result :    out RTEMS.Status_Codes
    331    ) is
    332       function Task_Resume_Base (
    333          ID : RTEMS.ID
    334       )  return RTEMS.Status_Codes;
    335       pragma Import (C, Task_Resume_Base, "rtems_task_resume");
    336    begin
    337 
    338       Result := Task_Resume_Base (ID);
    339 
    340    end Task_Resume;
    341 
    342    procedure Task_Is_Suspended (
    343       ID     : in     RTEMS.ID;
    344       Result :    out RTEMS.Status_Codes
    345    ) is
    346       function Task_Is_Suspended_Base (
    347          ID : RTEMS.ID
    348       )  return RTEMS.Status_Codes;
    349       pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
    350    begin
    351 
    352       Result := Task_Is_Suspended_Base (ID);
    353 
    354    end Task_Is_Suspended;
    355 
    356    procedure Task_Set_Priority (
    357       ID           : in     RTEMS.ID;
    358       New_Priority : in     RTEMS.Task_Priority;
    359       Old_Priority :    out RTEMS.Task_Priority;
    360       Result       :    out RTEMS.Status_Codes
    361    ) is
    362       function Task_Set_Priority_Base (
    363          ID           : RTEMS.ID;
    364          New_Priority : RTEMS.Task_Priority;
    365          Old_Priority : access RTEMS.Task_Priority
    366       )  return RTEMS.Status_Codes;
    367       pragma Import (C, Task_Set_Priority_Base, "rtems_task_set_priority");
    368       Old_Priority_Base : aliased RTEMS.Task_Priority;
    369    begin
    370 
    371       Result := Task_Set_Priority_Base (
    372          ID,
    373          New_Priority,
    374          Old_Priority_Base'Access
    375       );
    376       Old_Priority := Old_Priority_Base;
    377 
    378    end Task_Set_Priority;
    379 
    380    procedure Task_Mode (
    381       Mode_Set          : in     RTEMS.Mode;
    382       Mask              : in     RTEMS.Mode;
    383       Previous_Mode_Set :    out RTEMS.Mode;
    384       Result            :    out RTEMS.Status_Codes
    385    ) is
    386       function Task_Mode_Base (
    387          Mode_Set          : RTEMS.Mode;
    388          Mask              : RTEMS.Mode;
    389          Previous_Mode_Set : access RTEMS.Mode
    390       )  return RTEMS.Status_Codes;
    391       pragma Import (C, Task_Mode_Base, "rtems_task_mode");
    392       Previous_Mode_Set_Base : aliased RTEMS.Mode;
    393    begin
    394 
    395       Result := Task_Mode_Base (
    396          Mode_Set,
    397          Mask,
    398          Previous_Mode_Set_Base'Access
    399       );
    400       Previous_Mode_Set := Previous_Mode_Set_Base;
    401 
    402    end Task_Mode;
    403 
    404    procedure Task_Get_Note (
    405       ID      : in     RTEMS.ID;
    406       Notepad : in     RTEMS.Notepad_Index;
    407       Note    :    out RTEMS.Unsigned32;
    408       Result  :    out RTEMS.Status_Codes
    409    ) is
    410       function Task_Get_Note_Base (
    411          ID      : RTEMS.ID;
    412          Notepad : RTEMS.Notepad_Index;
    413          Note    : access RTEMS.Unsigned32
    414       )  return RTEMS.Status_Codes;
    415       pragma Import (C, Task_Get_Note_Base, "rtems_task_get_note");
    416       Note_Base : aliased RTEMS.Unsigned32;
    417    begin
    418 
    419       Result := Task_Get_Note_Base (ID, Notepad, Note_Base'Access);
    420       Note := NOTE_Base;
    421 
    422    end Task_Get_Note;
    423 
    424    procedure Task_Set_Note (
    425       ID      : in     RTEMS.ID;
    426       Notepad : in     RTEMS.Notepad_Index;
    427       Note    : in     RTEMS.Unsigned32;
    428       Result  :    out RTEMS.Status_Codes
    429    ) is
    430       function Task_Set_Note_Base (
    431          ID      : RTEMS.ID;
    432          Notepad : RTEMS.Notepad_Index;
    433          Note    : RTEMS.Unsigned32
    434       )  return RTEMS.Status_Codes;
    435       pragma Import (C, Task_Set_Note_Base, "rtems_task_set_note");
    436    begin
    437 
    438       Result := Task_Set_Note_Base (ID, Notepad, Note);
    439 
    440    end Task_Set_Note;
    441 
    442    procedure Task_Variable_Add (
    443       ID            : in     RTEMS.ID;
    444       Task_Variable : in     RTEMS.Address;
    445       Dtor          : in     RTEMS.Task_Variable_Dtor;
    446       Result        :    out RTEMS.Status_Codes
    447    ) is
    448       function Task_Variable_Add_Base (
    449          ID            : RTEMS.ID;
    450          Task_Variable : RTEMS.Address;
    451          Dtor          : RTEMS.Task_Variable_Dtor
    452       )  return RTEMS.Status_Codes;
    453       pragma Import (C, Task_Variable_Add_Base, "rtems_task_variable_add");
    454    begin
    455 
    456       Result := Task_Variable_Add_Base (ID, Task_Variable, Dtor);
    457 
    458    end Task_Variable_Add;
    459 
    460    procedure Task_Variable_Get (
    461       ID                  : in     RTEMS.ID;
    462       Task_Variable       :    out RTEMS.Address;
    463       Task_Variable_Value :    out RTEMS.Address;
    464       Result              :    out RTEMS.Status_Codes
    465    ) is
    466       function Task_Variable_Get_Base (
    467          ID                  : RTEMS.ID;
    468          Task_Variable       : access RTEMS.Address;
    469          Task_Variable_Value : access RTEMS.Address
    470       )  return RTEMS.Status_Codes;
    471       pragma Import (C, Task_Variable_Get_Base, "rtems_task_variable_get");
    472       Task_Variable_Base       : aliased RTEMS.Address;
    473       Task_Variable_Value_Base : aliased RTEMS.Address;
    474    begin
    475 
    476       Result := Task_Variable_Get_Base (
    477          ID,
    478          Task_Variable_Base'Access,
    479          Task_Variable_Value_Base'Access
    480       );
    481       Task_Variable := Task_Variable_Base;
    482       Task_Variable_Value := Task_Variable_Value_Base;
    483 
    484    end Task_Variable_Get;
    485 
    486    procedure Task_Variable_Delete (
    487       ID                  : in     RTEMS.ID;
    488       Task_Variable       :    out RTEMS.Address;
    489       Result              :    out RTEMS.Status_Codes
    490    ) is
    491       function Task_Variable_Delete_Base (
    492          ID                  : RTEMS.ID;
    493          Task_Variable       : access RTEMS.Address
    494       )  return RTEMS.Status_Codes;
    495       pragma Import (
    496          C, Task_Variable_Delete_Base, "rtems_task_variable_delete"
    497       );
    498       Task_Variable_Base : aliased RTEMS.Address;
    499    begin
    500 
    501       Result := Task_Variable_Delete_Base (
    502          ID, Task_Variable_Base'Access
    503       );
    504       Task_Variable := Task_Variable_Base;
    505 
    506    end Task_Variable_Delete;
    507 
    508    procedure Task_Wake_When (
    509       Time_Buffer : in     RTEMS.Time_Of_Day;
    510       Result      :    out RTEMS.Status_Codes
    511    ) is
    512       function Task_Wake_When_Base (
    513          Time_Buffer : RTEMS.Time_Of_Day
    514       )  return RTEMS.Status_Codes;
    515       pragma Import (C, Task_Wake_When_Base, "rtems_task_wake_when");
    516    begin
    517 
    518       Result := Task_Wake_When_Base (Time_Buffer);
    519 
    520    end Task_Wake_When;
    521 
    522    procedure Task_Wake_After (
    523       Ticks  : in     RTEMS.Interval;
    524       Result :    out RTEMS.Status_Codes
    525    ) is
    526       function Task_Wake_After_Base (
    527          Ticks : RTEMS.Interval
    528       )  return RTEMS.Status_Codes;
    529       pragma Import (C, Task_Wake_After_Base, "rtems_task_wake_after");
    530    begin
    531 
    532       Result := Task_Wake_After_Base (Ticks);
    533 
    534    end Task_Wake_After;
    535 
    536    --
    537    -- Interrupt Manager
    538    --
    539 
    540    -- Interrupt_Disable is interfaced in the specification
    541    -- Interrupt_Enable is interfaced in the specification
    542    -- Interrupt_Flash is interfaced in the specification
    543    -- Interrupt_Is_In_Progress is interfaced in the specification
    544 
    545    --
    546    -- Clock Manager
    547    --
    548 
    549    procedure Clock_Set (
    550       Time_Buffer : in     RTEMS.Time_Of_Day;
    551       Result      :    out RTEMS.Status_Codes
    552    ) is
    553       function Clock_Set_Base (
    554          Time_Buffer : access RTEMS.Time_Of_Day
    555       )  return RTEMS.Status_Codes;
    556       pragma Import (C, Clock_Set_Base, "rtems_clock_set");
    557 
    558       Tmp_Time : aliased RTEMS.Time_Of_Day;
    559    begin
    560 
    561       Tmp_Time := Time_Buffer;
    562       Result := Clock_Set_Base (Tmp_Time'Access);
    563 
    564    end Clock_Set;
    565 
    566    procedure Clock_Get (
    567       Option      : in     RTEMS.Clock_Get_Options;
    568       Time_Buffer : in     RTEMS.Address;
    569       Result      :    out RTEMS.Status_Codes
    570    ) is
    571       function Clock_Get_Base (
    572          Option      : RTEMS.Clock_Get_Options;
    573          Time_Buffer : RTEMS.Address
    574       )  return RTEMS.Status_Codes;
    575       pragma Import (C, Clock_Get_Base, "rtems_clock_get");
    576    begin
    577 
    578       Result := Clock_Get_Base (Option, Time_Buffer);
    579 
    580    end Clock_Get;
    581 
    582    procedure Clock_Get_TOD (
    583       Time    :    out RTEMS.Time_Of_Day;
    584       Result  :    out RTEMS.Status_Codes
    585    ) is
    586       function Clock_Get_TOD_Base (
    587         Time  : access RTEMS.Time_Of_Day
    588       )  return RTEMS.Status_Codes;
    589       pragma Import (C, Clock_Get_TOD_Base, "rtems_clock_get_tod");
    590 
    591       Tmp_Time : aliased RTEMS.Time_Of_Day;
    592    begin
    593       Result := Clock_Get_TOD_Base (Tmp_Time'Access);
    594       Time := Tmp_Time;
    595    end Clock_Get_TOD;
    596 
    597    procedure Clock_Get_TOD_Time_Value (
    598       Time   :    out RTEMS.Clock_Time_Value;
    599       Result :    out RTEMS.Status_Codes
    600    ) is
    601       function Clock_Get_TOD_Time_Value_Base (
    602         Time  : access RTEMS.Clock_Time_Value
    603       )  return RTEMS.Status_Codes;
    604       pragma Import (
    605          C,
    606          Clock_Get_TOD_Time_Value_Base,
    607          "rtems_clock_get_tod_timeval"
    608       );
    609 
    610       Tmp_Time : aliased RTEMS.Clock_Time_Value;
    611    begin
    612       Result := Clock_Get_TOD_Time_Value_Base (Tmp_Time'Access);
    613       Time := Tmp_Time;
    614    end Clock_Get_TOD_Time_Value;
    615 
    616    procedure Clock_Get_Seconds_Since_Epoch(
    617       The_Interval :    out RTEMS.Interval;
    618       Result       :    out RTEMS.Status_Codes
    619    ) is
    620       function Clock_Get_Seconds_Since_Epoch_Base (
    621         The_Interval  : access RTEMS.Interval
    622       )  return RTEMS.Status_Codes;
    623       pragma Import (
    624          C,
    625          Clock_Get_Seconds_Since_Epoch_Base,
    626          "rtems_clock_get_seconds_since_epoch"
    627       );
    628 
    629       Tmp_Interval : aliased RTEMS.Interval;
    630    begin
    631       Result := Clock_Get_Seconds_Since_Epoch_Base (Tmp_Interval'Access);
    632       The_Interval := Tmp_Interval;
    633    end Clock_Get_Seconds_Since_Epoch;
    634 
    635    -- Clock_Get_Ticks_Per_Second is in rtems.ads
    636 
    637    -- Clock_Get_Ticks_Since_Boot is in rtems.ads
    638 
    639    procedure Clock_Get_Uptime (
    640       Uptime :    out RTEMS.Timespec;
    641       Result :    out RTEMS.Status_Codes
    642    ) is
    643       function Clock_Get_Uptime_Base (
    644          Uptime : access RTEMS.Timespec
    645       )  return RTEMS.Status_Codes;
    646       pragma Import (C, Clock_Get_Uptime_Base, "rtems_clock_get_uptime");
    647       Uptime_Base : aliased RTEMS.Timespec;
    648    begin
    649 
    650       Result := Clock_Get_Uptime_Base (Uptime_Base'Access);
    651       Uptime := Uptime_Base;
    652 
    653    end Clock_Get_Uptime;
    654 
    655    procedure Clock_Tick (
    656       Result :    out RTEMS.Status_Codes
    657    ) is
    658       function Clock_Tick_Base return RTEMS.Status_Codes;
    659       pragma Import (C, Clock_Tick_Base, "rtems_clock_tick");
    660    begin
    661 
    662       Result := Clock_Tick_Base;
    663 
    664    end Clock_Tick;
    665 
    666    --
    667    -- Extension Manager
    668    --
    669 
    670    procedure Extension_Create (
    671       Name   : in     RTEMS.Name;
    672       Table  : in     RTEMS.Extensions_Table_Pointer;
    673       ID     :    out RTEMS.ID;
    674       Result :    out RTEMS.Status_Codes
    675    ) is
    676       function Extension_Create_Base (
    677          Name   : RTEMS.Name;
    678          Table  : RTEMS.Extensions_Table_Pointer;
    679          ID     : access RTEMS.ID
    680       )  return RTEMS.Status_Codes;
    681       pragma Import (C, Extension_Create_Base, "rtems_extension_create");
    682       ID_Base : aliased RTEMS.ID;
    683    begin
    684 
    685       Result := Extension_Create_Base (Name, Table, ID_Base'Access);
    686       ID := ID_Base;
    687 
    688    end Extension_Create;
    689 
    690    procedure Extension_Ident (
    691       Name   : in     RTEMS.Name;
    692       ID     :    out RTEMS.ID;
    693       Result :    out RTEMS.Status_Codes
    694    ) is
    695       function Extension_Ident_Base (
    696          Name   : RTEMS.Name;
    697          ID     : access RTEMS.ID
    698       )  return RTEMS.Status_Codes;
    699       pragma Import (C, Extension_Ident_Base, "rtems_extension_ident");
    700       ID_Base : aliased RTEMS.ID;
    701    begin
    702 
    703       Result := Extension_Ident_Base (Name, ID_Base'Access);
    704       ID := ID_Base;
    705 
    706    end Extension_Ident;
    707 
    708    procedure Extension_Delete (
    709       ID     : in     RTEMS.ID;
    710       Result :    out RTEMS.Status_Codes
    711    ) is
    712       function Extension_Delete_Base (
    713          ID : RTEMS.ID
    714       )  return RTEMS.Status_Codes;
    715       pragma Import (C, Extension_Delete_Base, "rtems_extension_delete");
    716    begin
    717 
    718       Result := Extension_Delete_Base (ID);
    719 
    720    end Extension_Delete;
    721 
    722    --
    723    -- Timer Manager
    724    --
    725 
    726    procedure Timer_Create (
    727       Name   : in     RTEMS.Name;
    728       ID     :    out RTEMS.ID;
    729       Result :    out RTEMS.Status_Codes
    730    ) is
    731       function Timer_Create_Base (
    732          Name   : RTEMS.Name;
    733          ID     : access RTEMS.ID
    734       )  return RTEMS.Status_Codes;
    735       pragma Import (C, Timer_Create_Base, "rtems_timer_create");
    736       ID_Base : aliased RTEMS.ID;
    737    begin
    738 
    739       Result := Timer_Create_Base (Name, ID_Base'Access);
    740       ID := ID_Base;
    741 
    742    end Timer_Create;
    743 
    744    procedure Timer_Ident (
    745       Name   : in     RTEMS.Name;
    746       ID     :    out RTEMS.ID;
    747       Result :    out RTEMS.Status_Codes
    748    ) is
    749       function Timer_Ident_Base (
    750          Name   : RTEMS.Name;
    751          ID     : access RTEMS.ID
    752       )  return RTEMS.Status_Codes;
    753       pragma Import (C, Timer_Ident_Base, "rtems_timer_ident");
    754       ID_Base : aliased RTEMS.ID;
    755    begin
    756 
    757       Result := Timer_Ident_Base (Name, ID_Base'Access);
    758       ID := ID_Base;
    759 
    760    end Timer_Ident;
    761 
    762    procedure Timer_Delete (
    763       ID     : in     RTEMS.ID;
    764       Result :    out RTEMS.Status_Codes
    765    ) is
    766       function Timer_Delete_Base (
    767          ID : RTEMS.ID
    768       )  return RTEMS.Status_Codes;
    769       pragma Import (C, Timer_Delete_Base, "rtems_timer_delete");
    770    begin
    771 
    772       Result := Timer_Delete_Base (ID);
    773 
    774    end Timer_Delete;
    775 
    776    procedure Timer_Fire_After (
    777       ID        : in     RTEMS.ID;
    778       Ticks     : in     RTEMS.Interval;
    779       Routine   : in     RTEMS.Timer_Service_Routine;
    780       User_Data : in     RTEMS.Address;
    781       Result    :    out RTEMS.Status_Codes
    782    ) is
    783       function Timer_Fire_After_Base (
    784          ID        : RTEMS.ID;
    785          Ticks     : RTEMS.Interval;
    786          Routine   : RTEMS.Timer_Service_Routine;
    787          User_Data : RTEMS.Address
    788       )  return RTEMS.Status_Codes;
    789       pragma Import (C, Timer_Fire_After_Base, "rtems_timer_fire_after");
    790    begin
    791 
    792       Result := Timer_Fire_After_Base (ID, Ticks, Routine, User_Data);
    793 
    794    end Timer_Fire_After;
    795 
    796    procedure Timer_Server_Fire_After (
    797       ID        : in     RTEMS.ID;
    798       Ticks     : in     RTEMS.Interval;
    799       Routine   : in     RTEMS.Timer_Service_Routine;
    800       User_Data : in     RTEMS.Address;
    801       Result    :    out RTEMS.Status_Codes
    802    ) is
    803       function Timer_Server_Fire_After_Base (
    804          ID        : RTEMS.ID;
    805          Ticks     : RTEMS.Interval;
    806          Routine   : RTEMS.Timer_Service_Routine;
    807          User_Data : RTEMS.Address
    808       )  return RTEMS.Status_Codes;
    809       pragma Import (
    810         C,
    811         Timer_Server_Fire_After_Base,
    812         "rtems_timer_server_fire_after"
    813       );
    814    begin
    815 
    816       Result := Timer_Server_Fire_After_Base (ID, Ticks, Routine, User_Data);
    817 
    818    end Timer_Server_Fire_After;
    819 
    820    procedure Timer_Fire_When (
    821       ID        : in     RTEMS.ID;
    822       Wall_Time : in     RTEMS.Time_Of_Day;
    823       Routine   : in     RTEMS.Timer_Service_Routine;
    824       User_Data : in     RTEMS.Address;
    825       Result    :    out RTEMS.Status_Codes
    826    ) is
    827       function Timer_Fire_When_Base (
    828          ID        : RTEMS.ID;
    829          Wall_Time : RTEMS.Time_Of_Day;
    830          Routine   : RTEMS.Timer_Service_Routine;
    831          User_Data : RTEMS.Address
    832       )  return RTEMS.Status_Codes;
    833       pragma Import (C, Timer_Fire_When_Base, "rtems_timer_fire_when");
    834    begin
    835 
    836       Result := Timer_Fire_When_Base (ID, Wall_Time, Routine, User_Data);
    837 
    838    end Timer_Fire_When;
    839 
    840    procedure Timer_Server_Fire_When (
    841       ID        : in     RTEMS.ID;
    842       Wall_Time : in     RTEMS.Time_Of_Day;
    843       Routine   : in     RTEMS.Timer_Service_Routine;
    844       User_Data : in     RTEMS.Address;
    845       Result    :    out RTEMS.Status_Codes
    846    ) is
    847       function Timer_Server_Fire_When_Base (
    848          ID        : RTEMS.ID;
    849          Wall_Time : RTEMS.Time_Of_Day;
    850          Routine   : RTEMS.Timer_Service_Routine;
    851          User_Data : RTEMS.Address
    852       )  return RTEMS.Status_Codes;
    853       pragma Import (
    854          C,
    855          Timer_Server_Fire_When_Base,
    856          "rtems_timer_server_fire_when"
    857       );
    858    begin
    859 
    860       Result :=
    861          Timer_Server_Fire_When_Base (ID, Wall_Time, Routine, User_Data);
    862    end Timer_Server_Fire_When;
    863 
    864    procedure Timer_Reset (
    865       ID     : in     RTEMS.ID;
    866       Result :    out RTEMS.Status_Codes
    867    ) is
    868       function Timer_Reset_Base (
    869          ID : RTEMS.ID
    870       )  return RTEMS.Status_Codes;
    871       pragma Import (C, Timer_Reset_Base, "rtems_timer_reset");
    872    begin
    873 
    874       Result := Timer_Reset_Base (ID);
    875 
    876    end Timer_Reset;
    877 
    878    procedure Timer_Cancel (
    879       ID     : in     RTEMS.ID;
    880       Result :    out RTEMS.Status_Codes
    881    ) is
    882       function Timer_Cancel_Base (
    883          ID : RTEMS.ID
    884       )  return RTEMS.Status_Codes;
    885       pragma Import (C, Timer_Cancel_Base, "rtems_timer_cancel");
    886    begin
    887 
    888       Result := Timer_Cancel_Base (ID);
    889 
    890    end Timer_Cancel;
    891 
    892    procedure Timer_Initiate_Server (
    893       Server_Priority : in     RTEMS.Task_Priority;
    894       Stack_Size      : in     RTEMS.Unsigned32;
    895       Attribute_Set   : in     RTEMS.Attribute;
    896       Result          :    out RTEMS.Status_Codes
    897    ) is
    898       function Timer_Initiate_Server_Base (
    899          Server_Priority : RTEMS.Task_Priority;
    900          Stack_Size      : RTEMS.Unsigned32;
    901          Attribute_Set   : RTEMS.Attribute
    902       )  return RTEMS.Status_Codes;
    903       pragma Import (
    904          C,
    905          Timer_Initiate_Server_Base,
    906          "rtems_timer_initiate_server"
    907       );
    908    begin
    909       Result := Timer_Initiate_Server_Base (
    910          Server_Priority,
    911          Stack_Size,
    912          Attribute_Set
    913       );
    914    end Timer_Initiate_Server;
    915 
    916    --
    917    -- Semaphore Manager
    918    --
    919 
    920    procedure Semaphore_Create (
    921       Name             : in     RTEMS.Name;
    922       Count            : in     RTEMS.Unsigned32;
    923       Attribute_Set    : in     RTEMS.Attribute;
    924       Priority_Ceiling : in     RTEMS.Task_Priority;
    925       ID               :    out RTEMS.ID;
    926       Result           :    out RTEMS.Status_Codes
    927    ) is
    928       function Semaphore_Create_Base (
    929          Name             : RTEMS.Name;
    930          Count            : RTEMS.Unsigned32;
    931          Attribute_Set    : RTEMS.Attribute;
    932          Priority_Ceiling : RTEMS.Task_Priority;
    933          ID               : access RTEMS.ID
    934       )  return RTEMS.Status_Codes;
    935       pragma Import (C, Semaphore_Create_Base, "rtems_semaphore_create");
    936       ID_Base : aliased RTEMS.ID;
    937    begin
    938 
    939       Result := Semaphore_Create_Base (
    940          Name,
    941          Count,
    942          Attribute_Set,
    943          Priority_Ceiling,
    944          ID_Base'Access
    945       );
    946       ID := ID_Base;
    947 
    948    end Semaphore_Create;
    949 
    950    procedure Semaphore_Delete (
    951       ID     : in     RTEMS.ID;
    952       Result :    out RTEMS.Status_Codes
    953    ) is
    954       function Semaphore_Delete_Base (
    955          ID : RTEMS.ID
    956       )  return RTEMS.Status_Codes;
    957       pragma Import (C, Semaphore_Delete_Base, "rtems_semaphore_delete");
    958    begin
    959 
    960       Result := Semaphore_Delete_Base (ID);
    961 
    962    end Semaphore_Delete;
    963 
    964    procedure Semaphore_Ident (
    965       Name   : in     RTEMS.Name;
    966       Node   : in     RTEMS.Unsigned32;
    967       ID     :    out RTEMS.ID;
    968       Result :    out RTEMS.Status_Codes
    969    ) is
    970       function Semaphore_Ident_Base (
    971          Name : RTEMS.Name;
    972          Node : RTEMS.Unsigned32;
    973          ID   : access RTEMS.ID
    974       )  return RTEMS.Status_Codes;
    975       pragma Import (C, Semaphore_Ident_Base, "rtems_semaphore_ident");
    976       ID_Base : aliased RTEMS.ID;
    977    begin
    978 
    979       Result := Semaphore_Ident_Base (Name, Node, ID_Base'Access);
    980       ID := ID_Base;
    981 
    982    end Semaphore_Ident;
    983 
    984    procedure Semaphore_Obtain (
    985       ID         : in     RTEMS.ID;
    986       Option_Set : in     RTEMS.Option;
    987       Timeout    : in     RTEMS.Interval;
    988       Result     :    out RTEMS.Status_Codes
    989    ) is
    990       function Semaphore_Obtain_Base (
    991          ID         : RTEMS.ID;
    992          Option_Set : RTEMS.Option;
    993          Timeout    : RTEMS.Interval
    994       )  return RTEMS.Status_Codes;
    995       pragma Import (C, Semaphore_Obtain_Base, "rtems_semaphore_obtain");
    996    begin
    997 
    998       Result := Semaphore_Obtain_Base (ID, Option_Set, Timeout);
    999 
    1000    end Semaphore_Obtain;
    1001 
    1002    procedure Semaphore_Release (
    1003       ID     : in     RTEMS.ID;
    1004       Result :    out RTEMS.Status_Codes
    1005    ) is
    1006       function Semaphore_Release_Base (
    1007          ID : RTEMS.ID
    1008       )  return RTEMS.Status_Codes;
    1009       pragma Import (C, Semaphore_Release_Base, "rtems_semaphore_release");
    1010    begin
    1011 
    1012       Result := Semaphore_Release_Base (ID);
    1013 
    1014    end Semaphore_Release;
    1015 
    1016    procedure Semaphore_Flush (
    1017       ID     : in     RTEMS.ID;
    1018       Result :    out RTEMS.Status_Codes
    1019    ) is
    1020       function Semaphore_Flush_Base (
    1021          ID : RTEMS.ID
    1022       )  return RTEMS.Status_Codes;
    1023       pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
    1024    begin
    1025 
    1026       Result := Semaphore_Flush_Base (ID);
    1027 
    1028    end Semaphore_Flush;
    1029 
    1030    --
    1031    -- Message Queue Manager
    1032    --
    1033 
    1034    procedure Message_Queue_Create (
    1035       Name             : in     RTEMS.Name;
    1036       Count            : in     RTEMS.Unsigned32;
    1037       Max_Message_Size : in     RTEMS.Unsigned32;
    1038       Attribute_Set    : in     RTEMS.Attribute;
    1039       ID               :    out RTEMS.ID;
    1040       Result           :    out RTEMS.Status_Codes
    1041    ) is
    1042       --  XXX broken
    1043       function Message_Queue_Create_Base (
    1044          Name             : RTEMS.Name;
    1045          Count            : RTEMS.Unsigned32;
    1046          Max_Message_Size : RTEMS.Unsigned32;
    1047          Attribute_Set    : RTEMS.Attribute;
    1048          ID               : access RTEMS.ID
    1049       )  return RTEMS.Status_Codes;
    1050       pragma Import (C,
    1051         Message_Queue_Create_Base, "rtems_message_queue_create");
    1052       ID_Base : aliased RTEMS.ID;
    1053    begin
    1054 
    1055       Result := Message_Queue_Create_Base (
    1056          Name,
    1057          Count,
    1058          Max_Message_Size,
    1059          Attribute_Set,
    1060          ID_Base'Access
    1061       );
    1062       ID := ID_Base;
    1063 
    1064    end Message_Queue_Create;
    1065 
    1066    procedure Message_Queue_Ident (
    1067       Name   : in     RTEMS.Name;
    1068       Node   : in     RTEMS.Unsigned32;
    1069       ID     :    out RTEMS.ID;
    1070       Result :    out RTEMS.Status_Codes
    1071    ) is
    1072       function Message_Queue_Ident_Base (
    1073          Name : RTEMS.Name;
    1074          Node : RTEMS.Unsigned32;
    1075          ID   : access RTEMS.ID
    1076       )  return RTEMS.Status_Codes;
    1077       pragma Import (C, Message_Queue_Ident_Base, "rtems_message_queue_ident");
    1078       ID_Base : aliased RTEMS.ID;
    1079    begin
    1080 
    1081       Result :=
    1082          Message_Queue_Ident_Base (Name, Node, ID_Base'Access);
    1083       ID := ID_Base;
    1084 
    1085    end Message_Queue_Ident;
    1086 
    1087    procedure Message_Queue_Delete (
    1088       ID     : in     RTEMS.ID;
    1089       Result :    out RTEMS.Status_Codes
    1090    ) is
    1091       function Message_Queue_Delete_Base (
    1092          ID : RTEMS.ID
    1093       )  return RTEMS.Status_Codes;
    1094       pragma Import (
    1095          C, Message_Queue_Delete_Base, "rtems_message_queue_delete");
    1096    begin
    1097 
    1098       Result := Message_Queue_Delete_Base (ID);
    1099 
    1100    end Message_Queue_Delete;
    1101 
    1102    procedure Message_Queue_Send (
    1103       ID     : in     RTEMS.ID;
    1104       Buffer : in     RTEMS.Address;
    1105       Size   : in     RTEMS.Unsigned32;
    1106       Result :    out RTEMS.Status_Codes
    1107    ) is
    1108       function Message_Queue_Send_Base (
    1109          ID     : RTEMS.ID;
    1110          Buffer : RTEMS.Address;
    1111          Size   : RTEMS.Unsigned32
    1112       )  return RTEMS.Status_Codes;
    1113       pragma Import (C, Message_Queue_Send_Base, "rtems_message_queue_send");
    1114    begin
    1115 
    1116       Result := Message_Queue_Send_Base (ID, Buffer, Size);
    1117 
    1118    end Message_Queue_Send;
    1119 
    1120    procedure Message_Queue_Urgent (
    1121       ID     : in     RTEMS.ID;
    1122       Buffer : in     RTEMS.Address;
    1123       Size   : in     RTEMS.Unsigned32;
    1124       Result :    out RTEMS.Status_Codes
    1125    ) is
    1126       function Message_Queue_Urgent_Base (
    1127          ID     : RTEMS.ID;
    1128          Buffer : RTEMS.Address;
    1129          Size   : RTEMS.Unsigned32
    1130       )  return RTEMS.Status_Codes;
    1131       pragma Import (C, Message_Queue_Urgent_Base,
    1132          "rtems_message_queue_urgent");
    1133    begin
    1134 
    1135       Result := Message_Queue_Urgent_Base (ID, Buffer, Size);
    1136 
    1137    end Message_Queue_Urgent;
    1138 
    1139    procedure Message_Queue_Broadcast (
    1140       ID     : in     RTEMS.ID;
    1141       Buffer : in     RTEMS.Address;
    1142       Size   : in     RTEMS.Unsigned32;
    1143       Count  :    out RTEMS.Unsigned32;
    1144       Result :    out RTEMS.Status_Codes
    1145    ) is
    1146       function Message_Queue_Broadcast_Base (
    1147          ID     : RTEMS.ID;
    1148          Buffer : RTEMS.Address;
    1149          Size   : RTEMS.Unsigned32;
    1150          Count  : access RTEMS.Unsigned32
    1151       )  return RTEMS.Status_Codes;
    1152       pragma Import (C, Message_Queue_Broadcast_Base,
    1153          "rtems_message_queue_broadcast");
    1154       Count_Base : aliased RTEMS.Unsigned32;
    1155    begin
    1156 
    1157       Result := Message_Queue_Broadcast_Base (
    1158          ID,
    1159          Buffer,
    1160          Size,
    1161          Count_Base'Access
    1162      );
    1163       Count := Count_Base;
    1164 
    1165    end Message_Queue_Broadcast;
    1166 
    1167    procedure Message_Queue_Receive (
    1168       ID         : in     RTEMS.ID;
    1169       Buffer     : in     RTEMS.Address;
    1170       Option_Set : in     RTEMS.Option;
    1171       Timeout    : in     RTEMS.Interval;
    1172       Size       : in out RTEMS.Unsigned32;
    1173       Result     :    out RTEMS.Status_Codes
    1174    ) is
    1175       function Message_Queue_Receive_Base (
    1176          ID         : RTEMS.ID;
    1177          Buffer     : RTEMS.Address;
    1178          Size       : access RTEMS.Unsigned32;
    1179          Option_Set : RTEMS.Option;
    1180          Timeout    : RTEMS.Interval
    1181       )  return RTEMS.Status_Codes;
    1182       pragma Import (C, Message_Queue_Receive_Base,
    1183          "rtems_message_queue_receive");
    1184       Size_Base : aliased RTEMS.Unsigned32;
    1185    begin
    1186 
    1187       Size_Base := Size;
    1188 
    1189       Result := Message_Queue_Receive_Base (
    1190          ID,
    1191          Buffer,
    1192          Size_Base'Access,
    1193          Option_Set,
    1194          Timeout
    1195       );
    1196       Size := Size_Base;
    1197 
    1198    end Message_Queue_Receive;
    1199 
    1200    procedure Message_Queue_Get_Number_Pending (
    1201       ID     : in     RTEMS.ID;
    1202       Count  :    out RTEMS.Unsigned32;
    1203       Result :    out RTEMS.Status_Codes
    1204    ) is
    1205       function Message_Queue_Get_Number_Pending_Base (
    1206          ID    : RTEMS.ID;
    1207          Count : access RTEMS.Unsigned32
    1208       )  return RTEMS.Status_Codes;
    1209       pragma Import (
    1210          C,
    1211          Message_Queue_Get_Number_Pending_Base,
    1212          "rtems_message_queue_get_number_pending"
    1213       );
    1214       COUNT_Base : aliased RTEMS.Unsigned32;
    1215    begin
    1216 
    1217       Result := Message_Queue_Get_Number_Pending_Base (
    1218          ID, COUNT_Base'Access
    1219       );
    1220       Count := COUNT_Base;
    1221 
    1222    end Message_Queue_Get_Number_Pending;
    1223 
    1224    procedure Message_Queue_Flush (
    1225       ID     : in     RTEMS.ID;
    1226       Count  :    out RTEMS.Unsigned32;
    1227       Result :    out RTEMS.Status_Codes
    1228    ) is
    1229       function Message_Queue_Flush_Base (
    1230          ID    : RTEMS.ID;
    1231          Count : access RTEMS.Unsigned32
    1232       )  return RTEMS.Status_Codes;
    1233       pragma Import (C, Message_Queue_Flush_Base, "rtems_message_queue_flush");
    1234       COUNT_Base : aliased RTEMS.Unsigned32;
    1235    begin
    1236 
    1237       Result := Message_Queue_Flush_Base (ID, COUNT_Base'Access);
    1238       Count := COUNT_Base;
    1239 
    1240    end Message_Queue_Flush;
    1241 
    1242    --
    1243    -- Event Manager
    1244    --
    1245 
    1246    procedure Event_Send (
    1247       ID       : in     RTEMS.ID;
    1248       Event_In : in     RTEMS.Event_Set;
    1249       Result   :    out RTEMS.Status_Codes
    1250    ) is
    1251       function Event_Send_Base (
    1252          ID       : RTEMS.ID;
    1253          Event_In : RTEMS.Event_Set
    1254       )  return RTEMS.Status_Codes;
    1255       pragma Import (C, Event_Send_Base, "rtems_event_send");
    1256    begin
    1257 
    1258       Result := Event_Send_Base (ID, Event_In);
    1259 
    1260    end Event_Send;
    1261 
    1262    procedure Event_Receive (
    1263       Event_In   : in     RTEMS.Event_Set;
    1264       Option_Set : in     RTEMS.Option;
    1265       Ticks      : in     RTEMS.Interval;
    1266       Event_Out  :    out RTEMS.Event_Set;
    1267       Result     :    out RTEMS.Status_Codes
    1268    ) is
    1269       function Event_Receive_Base (
    1270          Event_In   : RTEMS.Event_Set;
    1271          Option_Set : RTEMS.Option;
    1272          Ticks      : RTEMS.Interval;
    1273          Event_Out  : access RTEMS.Event_Set
    1274       )  return RTEMS.Status_Codes;
    1275       pragma Import (C, Event_Receive_Base, "rtems_event_receive");
    1276       Event_Out_Base : aliased RTEMS.Event_Set;
    1277    begin
    1278 
    1279       Result := Event_Receive_Base (
    1280          Event_In,
    1281          Option_Set,
    1282          Ticks,
    1283          Event_Out_Base'Access
    1284       );
    1285       Event_Out := Event_Out_Base;
    1286 
    1287    end Event_Receive;
    1288 
    1289    --
    1290    -- Signal Manager
    1291    --
    1292 
    1293    procedure Signal_Catch (
    1294       ASR_Handler : in     RTEMS.ASR_Handler;
    1295       Mode_Set    : in     RTEMS.Mode;
    1296       Result      :    out RTEMS.Status_Codes
    1297    ) is
    1298       function Signal_Catch_Base (
    1299          ASR_Handler : RTEMS.ASR_Handler;
    1300          Mode_Set    : RTEMS.Mode
    1301       )  return RTEMS.Status_Codes;
    1302       pragma Import (C, Signal_Catch_Base, "rtems_signal_catch");
    1303    begin
    1304 
    1305       Result := Signal_Catch_Base (ASR_Handler, Mode_Set);
    1306 
    1307    end Signal_Catch;
    1308 
    1309    procedure Signal_Send (
    1310       ID         : in     RTEMS.ID;
    1311       Signal_Set : in     RTEMS.Signal_Set;
    1312       Result     :    out RTEMS.Status_Codes
    1313    ) is
    1314       function Signal_Send_Base (
    1315          ID         : RTEMS.ID;
    1316          Signal_Set : RTEMS.Signal_Set
    1317       )  return RTEMS.Status_Codes;
    1318       pragma Import (C, Signal_Send_Base, "rtems_signal_send");
    1319    begin
    1320 
    1321       Result := Signal_Send_Base (ID, Signal_Set);
    1322 
    1323    end Signal_Send;
    1324 
    1325 
    1326    --
    1327    -- Partition Manager
    1328    --
    1329 
    1330    procedure Partition_Create (
    1331       Name             : in     RTEMS.Name;
    1332       Starting_Address : in     RTEMS.Address;
    1333       Length           : in     RTEMS.Unsigned32;
    1334       Buffer_Size      : in     RTEMS.Unsigned32;
    1335       Attribute_Set    : in     RTEMS.Attribute;
    1336       ID               :    out RTEMS.ID;
    1337       Result           :    out RTEMS.Status_Codes
    1338    ) is
    1339       function Partition_Create_Base (
    1340          Name             : RTEMS.Name;
    1341          Starting_Address : RTEMS.Address;
    1342          Length           : RTEMS.Unsigned32;
    1343          Buffer_Size      : RTEMS.Unsigned32;
    1344          Attribute_Set    : RTEMS.Attribute;
    1345          ID               : access RTEMS.Event_Set
    1346       )  return RTEMS.Status_Codes;
    1347       pragma Import (C, Partition_Create_Base, "rtems_partition_create");
    1348       ID_Base : aliased RTEMS.ID;
    1349    begin
    1350 
    1351       Result := Partition_Create_Base (
    1352          Name,
    1353          Starting_Address,
    1354          Length,
    1355          Buffer_Size,
    1356          Attribute_Set,
    1357          ID_Base'Access
    1358       );
    1359       ID := ID_Base;
    1360 
    1361    end Partition_Create;
    1362 
    1363    procedure Partition_Ident (
    1364       Name   : in     RTEMS.Name;
    1365       Node   : in     RTEMS.Unsigned32;
    1366       ID     :    out RTEMS.ID;
    1367       Result :    out RTEMS.Status_Codes
    1368    ) is
    1369       function Partition_Ident_Base (
    1370          Name : RTEMS.Name;
    1371          Node : RTEMS.Unsigned32;
    1372          ID   : access RTEMS.Event_Set
    1373       )  return RTEMS.Status_Codes;
    1374       pragma Import (C, Partition_Ident_Base, "rtems_partition_ident");
    1375       ID_Base : aliased RTEMS.ID;
    1376    begin
    1377 
    1378       Result := Partition_Ident_Base (Name, Node, ID_Base'Access);
    1379       ID := ID_Base;
    1380 
    1381    end Partition_Ident;
    1382 
    1383    procedure Partition_Delete (
    1384       ID     : in     RTEMS.ID;
    1385       Result :    out RTEMS.Status_Codes
    1386    ) is
    1387       function Partition_Delete_Base (
    1388          ID : RTEMS.ID
    1389       )  return RTEMS.Status_Codes;
    1390       pragma Import (C, Partition_Delete_Base, "rtems_partition_delete");
    1391    begin
    1392 
    1393       Result := Partition_Delete_Base (ID);
    1394 
    1395    end Partition_Delete;
    1396 
    1397    procedure Partition_Get_Buffer (
    1398       ID     : in     RTEMS.ID;
    1399       Buffer :    out RTEMS.Address;
    1400       Result :    out RTEMS.Status_Codes
    1401    ) is
    1402       function Partition_Get_Buffer_Base (
    1403          ID     : RTEMS.ID;
    1404          Buffer : access RTEMS.Address
    1405       )  return RTEMS.Status_Codes;
    1406       pragma Import (C, Partition_Get_Buffer_Base,
    1407          "rtems_partition_get_buffer");
    1408       Buffer_Base : aliased RTEMS.Address;
    1409    begin
    1410 
    1411       Result := Partition_Get_Buffer_Base (ID, Buffer_Base'Access);
    1412       Buffer := Buffer_Base;
    1413 
    1414    end Partition_Get_Buffer;
    1415 
    1416    procedure Partition_Return_Buffer (
    1417       ID     : in     RTEMS.ID;
    1418       Buffer : in     RTEMS.Address;
    1419       Result :    out RTEMS.Status_Codes
    1420    ) is
    1421       function Partition_Return_Buffer_Base (
    1422          ID     : RTEMS.Name;
    1423          Buffer : RTEMS.Address
    1424       )  return RTEMS.Status_Codes;
    1425       pragma Import (C, Partition_Return_Buffer_Base,
    1426          "rtems_partition_return_buffer");
    1427    begin
    1428 
    1429       Result := Partition_Return_Buffer_Base (ID, Buffer);
    1430 
    1431    end Partition_Return_Buffer;
    1432 
    1433    --
    1434    -- Region Manager
    1435    --
    1436 
    1437    procedure Region_Create (
    1438       Name             : in     RTEMS.Name;
    1439       Starting_Address : in     RTEMS.Address;
    1440       Length           : in     RTEMS.Unsigned32;
    1441       Page_Size        : in     RTEMS.Unsigned32;
    1442       Attribute_Set    : in     RTEMS.Attribute;
    1443       ID               :    out RTEMS.ID;
    1444       Result           :    out RTEMS.Status_Codes
    1445    ) is
    1446       function Region_Create_Base (
    1447          Name             : RTEMS.Name;
    1448          Starting_Address : RTEMS.Address;
    1449          Length           : RTEMS.Unsigned32;
    1450          Page_Size        : RTEMS.Unsigned32;
    1451          Attribute_Set    : RTEMS.Attribute;
    1452          ID               : access RTEMS.ID
    1453       )  return RTEMS.Status_Codes;
    1454       pragma Import (C, Region_Create_Base, "rtems_region_create");
    1455       ID_Base : aliased RTEMS.ID;
    1456    begin
    1457 
    1458       Result := Region_Create_Base (
    1459          Name,
    1460          Starting_Address,
    1461          Length,
    1462          Page_Size,
    1463          Attribute_Set,
    1464          ID_Base'Access
    1465       );
    1466       ID := ID_Base;
    1467 
    1468    end Region_Create;
    1469 
    1470    procedure Region_Ident (
    1471       Name   : in     RTEMS.Name;
    1472       ID     :    out RTEMS.ID;
    1473       Result :    out RTEMS.Status_Codes
    1474    ) is
    1475       function Region_Ident_Base (
    1476          Name   : RTEMS.Name;
    1477          ID     : access RTEMS.ID
    1478       )  return RTEMS.Status_Codes;
    1479       pragma Import (C, Region_Ident_Base, "rtems_region_ident");
    1480       ID_Base : aliased RTEMS.ID;
    1481    begin
    1482 
    1483       Result := Region_Ident_Base (Name, ID_Base'Access);
    1484       ID := ID_Base;
    1485 
    1486    end Region_Ident;
    1487 
    1488    procedure Region_Delete (
    1489       ID     : in     RTEMS.ID;
    1490       Result :    out RTEMS.Status_Codes
    1491    ) is
    1492       function Region_Delete_Base (
    1493          ID : RTEMS.ID
    1494       )  return RTEMS.Status_Codes;
    1495       pragma Import (C, Region_Delete_Base, "rtems_region_delete");
    1496    begin
    1497 
    1498       Result := Region_Delete_Base (ID);
    1499 
    1500    end Region_Delete;
    1501 
    1502    procedure Region_Extend (
    1503       ID               : in     RTEMS.ID;
    1504       Starting_Address : in     RTEMS.Address;
    1505       Length           : in     RTEMS.Unsigned32;
    1506       Result           :    out RTEMS.Status_Codes
    1507    ) is
    1508       function Region_Extend_Base (
    1509          ID               : RTEMS.ID;
    1510          Starting_Address : RTEMS.Address;
    1511          Length           : RTEMS.Unsigned32
    1512       )  return RTEMS.Status_Codes;
    1513       pragma Import (C, Region_Extend_Base, "rtems_region_extend");
    1514    begin
    1515 
    1516       Result := Region_Extend_Base (ID, Starting_Address, Length);
    1517 
    1518    end Region_Extend;
    1519 
    1520    procedure Region_Get_Segment (
    1521       ID         : in     RTEMS.ID;
    1522       Size       : in     RTEMS.Unsigned32;
    1523       Option_Set : in     RTEMS.Option;
    1524       Timeout    : in     RTEMS.Interval;
    1525       Segment    :    out RTEMS.Address;
    1526       Result     :    out RTEMS.Status_Codes
    1527    ) is
    1528       function Region_Get_Segment_Base (
    1529          ID         : RTEMS.ID;
    1530          Size       : RTEMS.Unsigned32;
    1531          Option_Set : RTEMS.Option;
    1532          Timeout    : RTEMS.Interval;
    1533          Segment    : access RTEMS.Address
    1534       )  return RTEMS.Status_Codes;
    1535       pragma Import (C, Region_Get_Segment_Base, "rtems_region_get_segment");
    1536       Segment_Base : aliased RTEMS.Address;
    1537    begin
    1538 
    1539       Result := Region_Get_Segment_Base (
    1540          ID,
    1541          Size,
    1542          Option_Set,
    1543          Timeout,
    1544          Segment_Base'Access
    1545       );
    1546       Segment := SEGMENT_Base;
    1547 
    1548    end Region_Get_Segment;
    1549 
    1550    procedure Region_Get_Segment_Size (
    1551       ID      : in     RTEMS.ID;
    1552       Segment : in     RTEMS.Address;
    1553       Size    :    out RTEMS.Unsigned32;
    1554       Result  :    out RTEMS.Status_Codes
    1555    ) is
    1556       function Region_Get_Segment_Size_Base (
    1557          ID      : RTEMS.ID;
    1558          Segment : RTEMS.Address;
    1559          Size    : access RTEMS.Unsigned32
    1560       )  return RTEMS.Status_Codes;
    1561       pragma Import (C, Region_Get_Segment_Size_Base,
    1562          "rtems_region_get_segment_size");
    1563       Size_Base : aliased RTEMS.Unsigned32;
    1564    begin
    1565 
    1566       Result := Region_Get_Segment_Size_Base (
    1567          ID,
    1568          Segment,
    1569          Size_Base'Access
    1570       );
    1571       Size := SIZE_Base;
    1572 
    1573    end Region_Get_Segment_Size;
    1574 
    1575    procedure Region_Return_Segment (
    1576       ID      : in     RTEMS.ID;
    1577       Segment : in     RTEMS.Address;
    1578       Result  :    out RTEMS.Status_Codes
    1579    ) is
    1580       function Region_Return_Segment_Base (
    1581          ID      : RTEMS.ID;
    1582          Segment : RTEMS.Address
    1583       )  return RTEMS.Status_Codes;
    1584       pragma Import (C, Region_Return_Segment_Base,
    1585          "rtems_region_return_segment");
    1586    begin
    1587 
    1588       Result := Region_Return_Segment_Base (ID, Segment);
    1589 
    1590    end Region_Return_Segment;
    1591 
    1592    procedure Region_Resize_Segment (
    1593       ID         : in     RTEMS.ID;
    1594       Segment    : in     RTEMS.Address;
    1595       Size       : in     RTEMS.Unsigned32;
    1596       Old_Size   :    out RTEMS.Unsigned32;
    1597       Result     :    out RTEMS.Status_Codes
    1598    ) is
    1599       function Region_Resize_Segment_Base (
    1600          ID       : RTEMS.ID;
    1601          Segment  : RTEMS.Address;
    1602          Size     : RTEMS.Unsigned32;
    1603          Old_Size : access RTEMS.Unsigned32
    1604       )  return RTEMS.Status_Codes;
    1605       pragma Import (C, Region_Resize_Segment_Base,
    1606          "rtems_region_resize_segment");
    1607       Old_Size_Base : aliased RTEMS.Unsigned32;
    1608    begin
    1609 
    1610       Result := Region_Resize_Segment_Base (
    1611          ID,
    1612          Segment,
    1613          Size,
    1614          Old_Size_Base'Access
    1615       );
    1616       Old_Size := Old_Size_Base;
    1617 
    1618    end Region_Resize_Segment;
    1619 
    1620    --
    1621    -- Dual Ported Memory Manager
    1622    --
    1623 
    1624    procedure Port_Create (
    1625       Name           : in     RTEMS.Name;
    1626       Internal_Start : in     RTEMS.Address;
    1627       External_Start : in     RTEMS.Address;
    1628       Length         : in     RTEMS.Unsigned32;
    1629       ID             :    out RTEMS.ID;
    1630       Result         :    out RTEMS.Status_Codes
    1631    ) is
    1632       function Port_Create_Base (
    1633          Name           : RTEMS.Name;
    1634          Internal_Start : RTEMS.Address;
    1635          External_Start : RTEMS.Address;
    1636          Length         : RTEMS.Unsigned32;
    1637          ID             : access RTEMS.ID
    1638       )  return RTEMS.Status_Codes;
    1639       pragma Import (C, Port_Create_Base, "rtems_port_create");
    1640       ID_Base : aliased RTEMS.ID;
    1641    begin
    1642 
    1643       Result := Port_Create_Base (
    1644          Name,
    1645          Internal_Start,
    1646          External_Start,
    1647          Length,
    1648          ID_Base'Access
    1649       );
    1650       ID := ID_Base;
    1651 
    1652    end Port_Create;
    1653 
    1654    procedure Port_Ident (
    1655       Name   : in     RTEMS.Name;
    1656       ID     :    out RTEMS.ID;
    1657       Result :    out RTEMS.Status_Codes
    1658    ) is
    1659       function Port_Ident_Base (
    1660          Name : RTEMS.Name;
    1661          ID   : access RTEMS.ID
    1662       )  return RTEMS.Status_Codes;
    1663       pragma Import (C, Port_Ident_Base, "rtems_port_ident");
    1664       ID_Base : aliased RTEMS.ID;
    1665    begin
    1666 
    1667       Result := Port_Ident_Base (Name, ID_Base'Access);
    1668       ID := ID_Base;
    1669 
    1670    end Port_Ident;
    1671 
    1672    procedure Port_Delete (
    1673       ID     : in     RTEMS.ID;
    1674       Result :    out RTEMS.Status_Codes
    1675    ) is
    1676       function Port_Delete_Base (
    1677          ID : RTEMS.ID
    1678       )  return RTEMS.Status_Codes;
    1679       pragma Import (C, Port_Delete_Base, "rtems_port_delete");
    1680    begin
    1681 
    1682       Result := Port_Delete_Base (ID);
    1683 
    1684    end Port_Delete;
    1685 
    1686    procedure Port_External_To_Internal (
    1687       ID       : in     RTEMS.ID;
    1688       External : in     RTEMS.Address;
    1689       Internal :    out RTEMS.Address;
    1690       Result   :    out RTEMS.Status_Codes
    1691    ) is
    1692       function Port_External_To_Internal_Base (
    1693          ID       : RTEMS.ID;
    1694          External : RTEMS.Address;
    1695          Internal : access RTEMS.Address
    1696       )  return RTEMS.Status_Codes;
    1697       pragma Import (C, Port_External_To_Internal_Base,
    1698          "rtems_port_external_to_internal");
    1699       Internal_Base : aliased RTEMS.Address;
    1700    begin
    1701 
    1702       Result := Port_External_To_Internal_Base (
    1703          ID,
    1704          External,
    1705          Internal_Base'Access
    1706       );
    1707       Internal := INTERNAL_Base;
    1708 
    1709    end Port_External_To_Internal;
    1710 
    1711    procedure Port_Internal_To_External (
    1712       ID       : in     RTEMS.ID;
    1713       Internal : in     RTEMS.Address;
    1714       External :    out RTEMS.Address;
    1715       Result   :    out RTEMS.Status_Codes
    1716    ) is
    1717       function Port_Internal_To_External_Base (
    1718          ID       : RTEMS.ID;
    1719          Internal : RTEMS.Address;
    1720          External : access RTEMS.Address
    1721       )  return RTEMS.Status_Codes;
    1722       pragma Import (C, Port_Internal_To_External_Base,
    1723          "rtems_port_internal_to_external");
    1724       External_Base : aliased RTEMS.Address;
    1725    begin
    1726 
    1727       Result := Port_Internal_To_External_Base (
    1728          ID,
    1729          Internal,
    1730          External_Base'Access
    1731       );
    1732       External := EXTERNAL_Base;
    1733 
    1734    end Port_Internal_To_External;
    1735 
    1736    --
    1737    -- Input/Output Manager
    1738    --
    1739 
    1740    procedure IO_Register_Name (
    1741       Name   : in     String;
    1742       Major  : in     RTEMS.Device_Major_Number;
    1743       Minor  : in     RTEMS.Device_Minor_Number;
    1744       Result :    out RTEMS.Status_Codes
    1745    ) is
    1746       function IO_Register_Name_Base (
    1747          Name   : Interfaces.C.Char_Array;
    1748          Major  : RTEMS.Device_Major_Number;
    1749          Minor  : RTEMS.Device_Minor_Number
    1750       )  return RTEMS.Status_Codes;
    1751       pragma Import (C, IO_Register_Name_Base, "rtems_io_register_name");
    1752    begin
    1753 
    1754       Result :=
    1755          IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
    1756 
    1757    end IO_Register_Name;
    1758 
    1759    procedure IO_Lookup_Name (
    1760       Name         : in     String;
    1761       Device_Info  :    out RTEMS.Driver_Name_t;
    1762       Result       :    out RTEMS.Status_Codes
    1763    ) is
    1764       function IO_Lookup_Name_Base (
    1765          Name        : Interfaces.C.Char_Array;
    1766          Device_Info : access RTEMS.Driver_Name_t
    1767       )  return RTEMS.Status_Codes;
    1768       pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
    1769       Device_Info_Base : aliased RTEMS.Driver_Name_t;
    1770    begin
    1771 
    1772       Result := IO_Lookup_Name_Base (
    1773          Interfaces.C.To_C (Name),
    1774          Device_Info_Base'Unchecked_Access
    1775       );
    1776       Device_Info := Device_Info_Base;
    1777 
    1778    end IO_Lookup_Name;
    1779 
    1780    procedure IO_Open (
    1781       Major        : in     RTEMS.Device_Major_Number;
    1782       Minor        : in     RTEMS.Device_Minor_Number;
    1783       Argument     : in     RTEMS.Address;
    1784       Result       :    out RTEMS.Status_Codes
    1785    ) is
    1786       function IO_Open_Base (
    1787          Major        : RTEMS.Device_Major_Number;
    1788          Minor        : RTEMS.Device_Minor_Number;
    1789          Argument     : RTEMS.Address
    1790       )  return RTEMS.Status_Codes;
    1791       pragma Import (C, IO_Open_Base, "rtems_io_open");
    1792    begin
    1793  
    1794       Result := IO_Open_Base (Major, Minor, Argument);
    1795  
    1796    end IO_Open;
    1797    pragma Inline (IO_Open);
    1798  
    1799    procedure IO_Close (
    1800       Major        : in     RTEMS.Device_Major_Number;
    1801       Minor        : in     RTEMS.Device_Minor_Number;
    1802       Argument     : in     RTEMS.Address;
    1803       Result       :    out RTEMS.Status_Codes
    1804    ) is
    1805       function IO_Close_Base (
    1806          Major        : RTEMS.Device_Major_Number;
    1807          Minor        : RTEMS.Device_Minor_Number;
    1808          Argument     : RTEMS.Address
    1809       )  return RTEMS.Status_Codes;
    1810       pragma Import (C, IO_Close_Base, "rtems_io_close");
    1811    begin
    1812  
    1813       Result := IO_Close_Base (Major, Minor, Argument);
    1814  
    1815    end IO_Close;
    1816    pragma Inline (IO_Close);
    1817  
    1818    procedure IO_Read (
    1819       Major        : in     RTEMS.Device_Major_Number;
    1820       Minor        : in     RTEMS.Device_Minor_Number;
    1821       Argument     : in     RTEMS.Address;
    1822       Result       :    out RTEMS.Status_Codes
    1823    ) is
    1824       function IO_Read_Base (
    1825          Major        : RTEMS.Device_Major_Number;
    1826          Minor        : RTEMS.Device_Minor_Number;
    1827          Argument     : RTEMS.Address
    1828       )  return RTEMS.Status_Codes;
    1829       pragma Import (C, IO_Read_Base, "rtems_io_read");
    1830    begin
    1831  
    1832       Result := IO_Read_Base (Major, Minor, Argument);
    1833  
    1834    end IO_Read;
    1835    pragma Inline (IO_Read);
    1836  
    1837    procedure IO_Write (
    1838       Major        : in     RTEMS.Device_Major_Number;
    1839       Minor        : in     RTEMS.Device_Minor_Number;
    1840       Argument     : in     RTEMS.Address;
    1841       Result       :    out RTEMS.Status_Codes
    1842    ) is
    1843       function IO_Write_Base (
    1844          Major        : RTEMS.Device_Major_Number;
    1845          Minor        : RTEMS.Device_Minor_Number;
    1846          Argument     : RTEMS.Address
    1847       )  return RTEMS.Status_Codes;
    1848       pragma Import (C, IO_Write_Base, "rtems_io_write");
    1849    begin
    1850  
    1851       Result := IO_Write_Base (Major, Minor, Argument);
    1852  
    1853    end IO_Write;
    1854    pragma Inline (IO_Write);
    1855  
    1856    procedure IO_Control (
    1857       Major        : in     RTEMS.Device_Major_Number;
    1858       Minor        : in     RTEMS.Device_Minor_Number;
    1859       Argument     : in     RTEMS.Address;
    1860       Result       :    out RTEMS.Status_Codes
    1861    ) is
    1862       function IO_Control_Base (
    1863          Major        : RTEMS.Device_Major_Number;
    1864          Minor        : RTEMS.Device_Minor_Number;
    1865          Argument     : RTEMS.Address
    1866       )  return RTEMS.Status_Codes;
    1867       pragma Import (C, IO_Control_Base, "rtems_io_control");
    1868    begin
    1869  
    1870       Result := IO_Control_Base (Major, Minor, Argument);
    1871  
    1872    end IO_Control;
    1873    pragma Inline (IO_Control);
    1874  
    1875 
    1876    --
    1877    -- Fatal Error Manager
    1878    --
    1879 
    1880    procedure Fatal_Error_Occurred (
    1881       The_Error : in     RTEMS.Unsigned32
    1882    ) is
    1883       procedure Fatal_Error_Occurred_Base (
    1884          The_Error : RTEMS.Unsigned32
    1885       );
    1886    pragma Import (C, Fatal_Error_Occurred_Base, "rtems_fatal_error_occurred");
    1887    begin
    1888 
    1889       Fatal_Error_Occurred_Base (The_Error);
    1890 
    1891    end Fatal_Error_Occurred;
    1892 
    1893 
    1894    --
    1895    -- Rate Monotonic Manager
    1896    --
    1897 
    1898    procedure Rate_Monotonic_Create (
    1899       Name   : in     RTEMS.Name;
    1900       ID     :    out RTEMS.ID;
    1901       Result :    out RTEMS.Status_Codes
    1902    ) is
    1903       function Rate_Monotonic_Create_Base (
    1904          Name   : RTEMS.Name;
    1905          ID     : access RTEMS.ID
    1906       )  return RTEMS.Status_Codes;
    1907       pragma Import (C, Rate_Monotonic_Create_Base, "rtems_rate_monotonic_create");
    1908       ID_Base : aliased RTEMS.ID;
    1909    begin
    1910 
    1911       Result := Rate_Monotonic_Create_Base (Name, ID_Base'Access);
    1912       ID := ID_Base;
    1913 
    1914    end Rate_Monotonic_Create;
    1915 
    1916    procedure Rate_Monotonic_Ident (
    1917       Name   : in     RTEMS.Name;
    1918       ID     :    out RTEMS.ID;
    1919       Result :    out RTEMS.Status_Codes
    1920    ) is
    1921       function Rate_Monotonic_Ident_Base (
    1922          Name   : RTEMS.Name;
    1923          ID     : access RTEMS.ID
    1924       )  return RTEMS.Status_Codes;
    1925       pragma Import (C, Rate_Monotonic_Ident_Base, "rtems_rate_monotonic_ident");
    1926       ID_Base : aliased RTEMS.ID;
    1927    begin
    1928 
    1929       Result := Rate_Monotonic_Ident_Base (Name, ID_Base'Access);
    1930 
    1931       ID := ID_Base;
    1932 
    1933    end Rate_Monotonic_Ident;
    1934 
    1935    procedure Rate_Monotonic_Delete (
    1936       ID     : in     RTEMS.ID;
    1937       Result :    out RTEMS.Status_Codes
    1938    ) is
    1939       function Rate_Monotonic_Delete_Base (
    1940          ID : RTEMS.ID
    1941       )  return RTEMS.Status_Codes;
    1942       pragma Import (C, Rate_Monotonic_Delete_Base,
    1943          "rtems_rate_monotonic_delete");
    1944    begin
    1945 
    1946       Result := Rate_Monotonic_Delete_Base (ID);
    1947 
    1948    end Rate_Monotonic_Delete;
    1949 
    1950    procedure Rate_Monotonic_Cancel (
    1951       ID     : in     RTEMS.ID;
    1952       Result :    out RTEMS.Status_Codes
    1953    ) is
    1954       function Rate_Monotonic_Cancel_Base (
    1955          ID : RTEMS.ID
    1956       )  return RTEMS.Status_Codes;
    1957       pragma Import (C, Rate_Monotonic_Cancel_Base,
    1958          "rtems_rate_monotonic_cancel");
    1959    begin
    1960 
    1961       Result := Rate_Monotonic_Cancel_Base (ID);
    1962 
    1963    end Rate_Monotonic_Cancel;
    1964 
    1965    procedure Rate_Monotonic_Period (
    1966       ID      : in     RTEMS.ID;
    1967       Length  : in     RTEMS.Interval;
    1968       Result  :    out RTEMS.Status_Codes
    1969    ) is
    1970       function Rate_Monotonic_Period_Base (
    1971          ID     : RTEMS.ID;
    1972          Length : RTEMS.Interval
    1973       )  return RTEMS.Status_Codes;
    1974       pragma Import (C, Rate_Monotonic_Period_Base,
    1975          "rtems_rate_monotonic_period");
    1976    begin
    1977 
    1978       Result := Rate_Monotonic_Period_Base (ID, Length);
    1979 
    1980    end Rate_Monotonic_Period;
    1981 
    1982    procedure Rate_Monotonic_Get_Status (
    1983       ID      : in     RTEMS.ID;
    1984       Status  :    out RTEMS.Rate_Monotonic_Period_Status;
    1985       Result  :    out RTEMS.Status_Codes
    1986    ) is
    1987       function Rate_Monotonic_Get_Status_Base (
    1988          ID      : RTEMS.ID;
    1989          Status  : access RTEMS.Rate_Monotonic_Period_Status
    1990       )  return RTEMS.Status_Codes;
    1991       pragma Import (C, Rate_Monotonic_Get_Status_Base,
    1992          "rtems_rate_monotonic_get_status");
    1993 
    1994       Status_Base : aliased RTEMS.Rate_Monotonic_Period_Status;
    1995    begin
    1996 
    1997       Result := Rate_Monotonic_Get_Status_Base (
    1998          ID,
    1999          Status_Base'Access
    2000       );
    2001 
    2002       Status := Status_Base;
    2003 
    2004 
    2005    end Rate_Monotonic_Get_Status;
    2006 
    2007    procedure Rate_Monotonic_Reset_Statistics (
    2008       ID     : in     RTEMS.ID;
    2009       Result :    out RTEMS.Status_Codes
    2010    ) is
    2011       function Rate_Monotonic_Reset_Statistics_Base (
    2012          ID : RTEMS.ID
    2013       )  return RTEMS.Status_Codes;
    2014       pragma Import (C, Rate_Monotonic_Reset_Statistics_Base,
    2015          "rtems_rate_monotonic_reset_statistics");
    2016    begin
    2017 
    2018       Result := Rate_Monotonic_Reset_Statistics_Base (ID);
    2019 
    2020    end Rate_Monotonic_Reset_Statistics;
    2021 
    2022 
    2023    --
    2024    -- Barrier Manager
    2025    --
    2026 
    2027    procedure Barrier_Create (
    2028       Name            : in     RTEMS.Name;
    2029       Attribute_Set   : in     RTEMS.Attribute;
    2030       Maximum_Waiters : in     RTEMS.Unsigned32;
    2031       ID              :    out RTEMS.ID;
    2032       Result          :    out RTEMS.Status_Codes
    2033    ) is
    2034       function Barrier_Create_Base (
    2035          Name            : RTEMS.Name;
    2036          Attribute_Set   : RTEMS.Attribute;
    2037          Maximum_Waiters : RTEMS.Unsigned32;
    2038          ID              : access RTEMS.ID
    2039       )  return RTEMS.Status_Codes;
    2040       pragma Import (C, Barrier_Create_Base, "rtems_barrier_create");
    2041       ID_Base : aliased RTEMS.ID;
    2042    begin
    2043 
    2044       Result := Barrier_Create_Base (
    2045          Name,
    2046          Attribute_Set,
    2047          Maximum_Waiters,
    2048          ID_Base'Access
    2049       );
    2050       ID := ID_Base;
    2051 
    2052    end Barrier_Create;
    2053 
    2054    procedure Barrier_Ident (
    2055       Name   : in     RTEMS.Name;
    2056       ID     :    out RTEMS.ID;
    2057       Result :    out RTEMS.Status_Codes
    2058    ) is
    2059       function Barrier_Ident_Base (
    2060          Name : RTEMS.Name;
    2061          ID   : access RTEMS.ID
    2062       )  return RTEMS.Status_Codes;
    2063       pragma Import (C, Barrier_Ident_Base, "rtems_barrier_ident");
    2064       ID_Base : aliased RTEMS.ID;
    2065    begin
    2066 
    2067       Result := Barrier_Ident_Base (Name, ID_Base'Access);
    2068       ID := ID_Base;
    2069 
    2070    end Barrier_Ident;
    2071 
    2072    procedure Barrier_Delete (
    2073       ID     : in     RTEMS.ID;
    2074       Result :    out RTEMS.Status_Codes
    2075    ) is
    2076       function Barrier_Delete_Base (
    2077          ID : RTEMS.ID
    2078       )  return RTEMS.Status_Codes;
    2079       pragma Import (C, Barrier_Delete_Base, "rtems_barrier_delete");
    2080    begin
    2081 
    2082       Result := Barrier_Delete_Base (ID);
    2083 
    2084    end Barrier_Delete;
    2085 
    2086    procedure Barrier_Wait (
    2087       ID         : in     RTEMS.ID;
    2088       Timeout    : in     RTEMS.Interval;
    2089       Result     :    out RTEMS.Status_Codes
    2090    ) is
    2091       function Barrier_Wait_Base (
    2092          ID         : RTEMS.ID;
    2093          Timeout    : RTEMS.Interval
    2094       )  return RTEMS.Status_Codes;
    2095       pragma Import (C, Barrier_Wait_Base, "rtems_barrier_wait");
    2096    begin
    2097 
    2098       Result := Barrier_Wait_Base (ID, Timeout);
    2099 
    2100    end Barrier_Wait;
    2101 
    2102    procedure Barrier_Release (
    2103       ID       : in     RTEMS.ID;
    2104       Released :    out RTEMS.Unsigned32;
    2105       Result   :    out RTEMS.Status_Codes
    2106    ) is
    2107       function Barrier_Release_Base (
    2108          ID       : RTEMS.ID;
    2109          Released : access RTEMS.Unsigned32
    2110       )  return RTEMS.Status_Codes;
    2111       pragma Import (C, Barrier_Release_Base, "rtems_barrier_release");
    2112       Released_Base : aliased RTEMS.Unsigned32;
    2113    begin
    2114 
    2115       Result := Barrier_Release_Base (ID, Released_Base'Access);
    2116       Released := Released_Base;
    2117 
    2118    end Barrier_Release;
    2119 
    2120 
    2121    --
    2122    -- Debug Manager
    2123    --
    2124 
    2125    procedure Debug_Enable (
    2126       To_Be_Enabled : in     RTEMS.Debug_Set
    2127    ) is
    2128       procedure Debug_Enable_Base (
    2129          To_Be_Enabled : RTEMS.Debug_Set
    2130       );
    2131    pragma Import (C, Debug_Enable_Base, "rtems_debug_enable");
    2132    begin
    2133 
    2134       Debug_Enable_Base (To_Be_Enabled);
    2135 
    2136    end Debug_Enable;
    2137 
    2138    procedure Debug_Disable (
    2139       To_Be_Disabled : in     RTEMS.Debug_Set
    2140    ) is
    2141       procedure Debug_Disable_Base (
    2142          To_Be_Disabled : RTEMS.Debug_Set
    2143       );
    2144    pragma Import (C, Debug_Disable_Base, "rtems_debug_disable");
    2145    begin
    2146 
    2147       Debug_Disable_Base (To_Be_Disabled);
    2148 
    2149    end Debug_Disable;
    2150 
    2151    function Debug_Is_Enabled (
    2152       Level : in     RTEMS.Debug_Set
    2153    ) return RTEMS.Boolean is
    2154       function Debug_Is_Enabled_Base (
    2155          Level : RTEMS.Debug_Set
    2156       )  return RTEMS.Boolean;
    2157       pragma Import (C, Debug_Is_Enabled_Base, "rtems_debug_is_enabled");
    2158    begin
    2159 
    2160       return Debug_Is_Enabled_Base (Level);
    2161 
    2162    end Debug_Is_Enabled;
    2163 
    2164    --
    2165    --  Object Services
    2166199   --
    2167200
     
    2190223   end Build_Name;
    2191224
    2192    procedure Object_Get_Classic_Name(
    2193       ID     : in     RTEMS.ID;
    2194       Name   :    out RTEMS.Name;
    2195       Result :    out RTEMS.Status_Codes
    2196    ) is
    2197       function Object_Get_Classic_Name_Base (
    2198          ID   : RTEMS.ID;
    2199          Name : access RTEMS.Name
    2200       )  return RTEMS.Status_Codes;
    2201       pragma Import
    2202          (C, Object_Get_Classic_Name_Base, "rtems_object_get_classic_name");
    2203       Tmp_Name : aliased RTEMS.Name;
    2204    begin
    2205       Result := Object_Get_Classic_Name_Base (ID, Tmp_Name'Access);
    2206       Name := Tmp_Name;
    2207    end Object_Get_Classic_Name;
    2208 
    2209 
    2210    procedure Object_Get_Name(
    2211       ID     : in     RTEMS.ID;
    2212       Name   :    out String;
    2213       Result :    out RTEMS.Address
    2214    ) is
    2215       function Object_Get_Name_Base (
    2216          ID     : RTEMS.ID;
    2217          Length : RTEMS.Unsigned32;
    2218          Name   : RTEMS.Address
    2219       )  return RTEMS.Address;
    2220       pragma Import (C, Object_Get_Name_Base, "rtems_object_get_name");
    2221    begin
    2222       Name := (others => ASCII.Nul);
    2223       Result := Object_Get_Name_Base (
    2224          Id,
    2225          Name'Length,
    2226          Name(Name'First)'Address
    2227       );
    2228    end Object_Get_Name;
    2229 
    2230    procedure Object_Set_Name(
    2231       ID     : in     RTEMS.ID;
    2232       Name   : in     String;
    2233       Result :    out RTEMS.Status_Codes
    2234    ) is
    2235       function Object_Set_Name_Base (
    2236          ID     : RTEMS.ID;
    2237          Name   : chars_ptr
    2238       )  return RTEMS.Status_Codes;
    2239       pragma Import (C, Object_Set_Name_Base, "rtems_object_set_name");
    2240       NameAsCString : constant chars_ptr := New_String(Name);
    2241    begin
    2242       Result := Object_Set_Name_Base (ID, NameAsCString);
    2243    end Object_Set_Name;
    2244 
    2245    procedure Object_Id_Get_API(
    2246       ID  : in     RTEMS.ID;
    2247       API :    out RTEMS.Unsigned32
    2248    ) is
    2249       function Object_Id_Get_API_Base (
    2250          ID     : RTEMS.ID
    2251       )  return RTEMS.Unsigned32;
    2252       pragma Import (C, Object_Id_Get_API_Base, "rtems_object_id_get_api");
    2253    begin
    2254       API := Object_Id_Get_API_Base (ID);
    2255    end Object_Id_Get_API;
    2256 
    2257    procedure Object_Id_Get_Class(
    2258       ID        : in     RTEMS.ID;
    2259       The_Class :    out RTEMS.Unsigned32
    2260    ) is
    2261       function Object_Id_Get_Class_Base (
    2262          ID : RTEMS.ID
    2263       )  return RTEMS.Unsigned32;
    2264       pragma Import (C, Object_Id_Get_Class_Base, "rtems_object_id_get_class");
    2265    begin
    2266       The_Class := Object_Id_Get_Class_Base (ID);
    2267    end Object_Id_Get_Class;
    2268 
    2269    procedure Object_Id_Get_Node(
    2270       ID   : in     RTEMS.ID;
    2271       Node :    out RTEMS.Unsigned32
    2272    ) is
    2273       function Object_Id_Get_Node_Base (
    2274          ID     : RTEMS.ID
    2275       )  return RTEMS.Unsigned32;
    2276       pragma Import (C, Object_Id_Get_Node_Base, "rtems_object_id_get_node");
    2277    begin
    2278       Node := Object_Id_Get_Node_Base (ID);
    2279    end Object_Id_Get_Node;
    2280 
    2281    procedure Object_Id_Get_Index(
    2282       ID    : in     RTEMS.ID;
    2283       Index :    out RTEMS.Unsigned32
    2284    ) is
    2285       function Object_Id_Get_Index_Base (
    2286          ID     : RTEMS.ID
    2287       )  return RTEMS.Unsigned32;
    2288       pragma Import (C, Object_Id_Get_Index_Base, "rtems_object_id_get_index");
    2289    begin
    2290       Index := Object_Id_Get_Index_Base (ID);
    2291    end Object_Id_Get_Index;
    2292 
    2293    function Build_Id(
    2294       The_API   : in     RTEMS.Unsigned32;
    2295       The_Class : in     RTEMS.Unsigned32;
    2296       The_Node  : in     RTEMS.Unsigned32;
    2297       The_Index : in     RTEMS.Unsigned32
    2298    ) return RTEMS.Id is
    2299       function Build_Id_Base (
    2300         The_API   : RTEMS.Unsigned32;
    2301         The_Class : RTEMS.Unsigned32;
    2302         The_Node  : RTEMS.Unsigned32;
    2303         The_Index : RTEMS.Unsigned32
    2304       )  return RTEMS.Id;
    2305       pragma Import (C, Build_Id_Base, "rtems_build_id");
    2306    begin
    2307       return Build_Id_Base (The_API, The_Class, The_Node, The_Index);
    2308    end Build_Id;
    2309 
    2310    function Object_Id_API_Minimum
    2311    return RTEMS.Unsigned32 is
    2312       function Object_Id_API_Minimum_Base return RTEMS.Unsigned32;
    2313       pragma Import
    2314          (C, Object_Id_API_Minimum_Base, "rtems_object_id_api_minimum");
    2315    begin
    2316       return Object_Id_API_Minimum_Base;
    2317    end Object_Id_API_Minimum;
    2318 
    2319    function Object_Id_API_Maximum
    2320    return RTEMS.Unsigned32 is
    2321       function Object_Id_API_Maximum_Base return RTEMS.Unsigned32;
    2322       pragma Import
    2323          (C, Object_Id_API_Maximum_Base, "rtems_object_id_api_maximum");
    2324    begin
    2325       return Object_Id_API_Maximum_Base;
    2326    end Object_Id_API_Maximum;
    2327 
    2328    procedure Object_API_Minimum_Class(
    2329       API     : in     RTEMS.Unsigned32;
    2330       Minimum :    out RTEMS.Unsigned32
    2331    ) is
    2332       function  Object_API_Minimum_Class_Base (
    2333          API : RTEMS.Unsigned32
    2334       )  return RTEMS.Unsigned32;
    2335       pragma Import
    2336          (C, Object_API_Minimum_Class_Base, "rtems_object_api_minimum_class");
    2337    begin
    2338       Minimum := Object_API_Minimum_Class_Base (API);
    2339    end Object_API_Minimum_Class;
    2340 
    2341    procedure Object_API_Maximum_Class(
    2342       API     : in     RTEMS.Unsigned32;
    2343       Maximum :    out RTEMS.Unsigned32
    2344    ) is
    2345       function  Object_API_Maximum_Class_Base (
    2346          API : RTEMS.Unsigned32
    2347       )  return RTEMS.Unsigned32;
    2348       pragma Import
    2349          (C, Object_API_Maximum_Class_Base, "rtems_object_api_maximum_class");
    2350    begin
    2351       Maximum := Object_API_Maximum_Class_Base (API);
    2352    end Object_API_Maximum_Class;
    2353 
    2354    -- Translate S from a C-style char* into an Ada String.
    2355    -- If S is Null_Ptr, return "", don't raise an exception.
    2356    -- Copied from Lovelace Tutorial
    2357    function Value_Without_Exception(S : chars_ptr) return String is
    2358    begin
    2359      if S = Null_Ptr then return "";
    2360       else return Value(S);
    2361      end if;
    2362    end Value_Without_Exception;
    2363    pragma Inline(Value_Without_Exception);
    2364 
    2365    procedure Object_Get_API_Name(
    2366       API  : in     RTEMS.Unsigned32;
    2367       Name :    out String
    2368    ) is
    2369       function  Object_Get_API_Name_Base (
    2370         API : RTEMS.Unsigned32
    2371       )  return chars_ptr;
    2372       pragma Import (C, Object_Get_API_Name_Base, "rtems_object_get_api_name");
    2373       Result : constant chars_ptr := Object_Get_API_Name_Base (API);
    2374       APIName : constant String :=  Value_Without_Exception (Result);
    2375    begin
    2376       Name := APIName;
    2377    end Object_Get_API_Name;
    2378 
    2379    procedure Object_Get_API_Class_Name(
    2380       The_API   : in     RTEMS.Unsigned32;
    2381       The_Class : in     RTEMS.Unsigned32;
    2382       Name      :    out String
    2383    ) is
    2384       function  Object_Get_API_Class_Name_Base (
    2385         API   : RTEMS.Unsigned32;
    2386         Class : RTEMS.Unsigned32
    2387       )  return chars_ptr;
    2388       pragma Import
    2389          (C, Object_Get_API_Class_Name_Base, "rtems_object_get_api_class_name");
    2390       Result : constant
    2391         chars_ptr := Object_Get_API_Class_Name_Base (The_API, The_Class);
    2392       ClassName : constant String :=  Value_Without_Exception (Result);
    2393    begin
    2394       Name := ClassName;
    2395    end Object_Get_API_Class_Name;
    2396 
    2397    procedure Object_Get_Class_Information(
    2398       The_API   : in     RTEMS.Unsigned32;
    2399       The_Class : in     RTEMS.Unsigned32;
    2400       Info      :    out RTEMS.Object_API_Class_Information;
    2401       Result    :    out RTEMS.Status_Codes
    2402    ) is
    2403       function  Object_Get_Class_Information_Base (
    2404         The_API   : RTEMS.Unsigned32;
    2405         The_Class : RTEMS.Unsigned32;
    2406         Info      : access RTEMS.Object_API_Class_Information
    2407       )  return RTEMS.Status_Codes;
    2408       pragma Import (
    2409          C,
    2410          Object_Get_Class_Information_Base,
    2411          "rtems_object_get_class_information"
    2412       );
    2413       TmpInfo : aliased RTEMS.Object_API_Class_Information;
    2414    begin
    2415       Result :=  Object_Get_Class_Information_Base
    2416          (The_API, The_Class, TmpInfo'Access);
    2417       Info := TmpInfo;
    2418    end Object_Get_Class_Information;
     225   --
     226   --  Initialization Manager -- Shutdown Only
     227   --
     228   procedure Shutdown_Executive (Status : in RTEMS.Unsigned32) is
     229      procedure Shutdown_Executive_Base (Status : RTEMS.Unsigned32);
     230      pragma Import (C, Shutdown_Executive_Base, "rtems_shutdown_executive");
     231   begin
     232      Shutdown_Executive_Base (Status);
     233   end Shutdown_Executive;
    2419234
    2420235end RTEMS;
  • c/src/ada/rtems.ads

    r0f801cd r1987020  
    1 --
     1
    22--  RTEMS / Specification
    33--
     
    1212--    the BSP side, therefore should never be called from ADA.
    1313--
    14 --  COPYRIGHT (c) 1997-2008.
     14--  COPYRIGHT (c) 1997-2011.
    1515--  On-Line Applications Research Corporation (OAR).
    1616--
     
    8888   subtype Mode                is RTEMS.Unsigned32;
    8989   subtype Option              is RTEMS.Unsigned32;
    90    subtype Task_Priority       is RTEMS.Unsigned32;
    9190   subtype Notepad_Index       is RTEMS.Unsigned32 range 0 .. 15;
    9291
    9392   subtype Event_Set           is RTEMS.Unsigned32;
    9493   subtype Signal_Set          is RTEMS.Unsigned32;
    95    subtype Debug_Set           is RTEMS.Unsigned32;
    9694   subtype Device_Major_Number is RTEMS.Unsigned32;
    9795   subtype Device_Minor_Number is RTEMS.Unsigned32;
     
    114112   --
    115113
    116    subtype Task_Argument       is RTEMS.Unsigned32;
    117    type Task_Argument_PTR      is access all Task_Argument;
    118 
    119    type Task_Entry is access procedure (
    120       Argument : RTEMS.Unsigned32
    121    );
    122    pragma Convention (C, Task_Entry);
    123 
    124114   subtype TCB                 is RTEMS.Unsigned32;
    125115   type    TCB_Pointer         is access all RTEMS.TCB;
    126116
    127117   --
    128    --  Clock and Time of Day Types
     118   --  Time of Day Type
    129119   --
    130120
     
    140130      end record;
    141131
    142    type Clock_Time_Value is
    143       record
    144          Seconds      : RTEMS.Unsigned32;
    145          Microseconds : RTEMS.Unsigned32;
    146       end record;
    147 
    148    type Clock_Get_Options is (
    149       Clock_Get_TOD,
    150       Clock_Get_Seconds_Since_Epoch,
    151       Clock_Get_Ticks_Since_Boot,
    152       Clock_Get_Ticks_Per_Second,
    153       Clock_Get_Time_Value
    154    );
    155 
    156132   type Time_T is new Interfaces.C.Long;
    157133
     
    161137   end record;
    162138   pragma Convention (C, Timespec);
     139
     140   type Time_Value is
     141      record
     142         Seconds      : RTEMS.Unsigned32;
     143         Microseconds : RTEMS.Unsigned32;
     144      end record;
    163145
    164146   --
     
    256238   --
    257239
    258    No_Timeout       : constant RTEMS.Interval := 0;
    259    Self             : constant RTEMS.ID       := 0;
    260    Period_Status    : constant RTEMS.Interval := 0;
    261    Yield_Processor  : constant RTEMS.Interval := 0;
    262    Current_Priority : constant RTEMS.Task_Priority := 0;
    263    No_Priority      : constant RTEMS.Task_Priority := 0;
     240   No_Timeout                    : constant RTEMS.Interval := 0;
     241   Self                          : constant RTEMS.ID       := 0;
     242   Yield_Processor               : constant RTEMS.Interval := 0;
     243   Rate_Monotonic_Period_Status  : constant RTEMS.Interval := 0;
     244
    264245
    265246   --
     
    333314
    334315   --
    335    --  The following type define a pointer to a watchdog/timer service routine.
    336    --
    337 
    338    type Timer_Service_Routine is access procedure (
    339       ID          : in     RTEMS.ID;
    340       User_Data   : in     RTEMS.Address
    341    );
    342    pragma Convention (C, Timer_Service_Routine);
    343 
    344    --
    345316   --  The following type define a pointer to a signal service routine.
    346317   --
     
    350321   );
    351322   pragma Convention (C, ASR_Handler);
    352 
    353    --
    354    --  The following type defines the status information returned
    355    --  about a period.
    356    --
    357 
    358    type Rate_Monotonic_Period_States is (
    359      Inactive,               -- off chain, never initialized
    360      Owner_Is_Blocking,      -- on chain, owner is blocking on it
    361      Active,                 -- on chain, running continuously
    362      Expired_While_Blocking, -- on chain, expired while owner was was blocking
    363      Expired                 -- off chain, will be reset by next
    364                              --   rtems_rate_monotonic_period
    365    );
    366 
    367    for Rate_Monotonic_Period_States'Size use 32;
    368 
    369    for Rate_Monotonic_Period_States use (
    370      Inactive                => 0,
    371      Owner_Is_Blocking       => 1,
    372      Active                  => 2,
    373      Expired_While_Blocking  => 3,
    374      Expired                 => 4
    375    );
    376 
    377    type Rate_Monotonic_Period_Status is
    378       record
    379          Owner                            : RTEMS.ID;
    380          State                            : RTEMS.Rate_Monotonic_Period_States;
    381          Ticks_Since_Last_Period          : RTEMS.Unsigned32;
    382          Ticks_Executed_Since_Last_Period : RTEMS.Unsigned32;
    383       end record;
    384323
    385324   --
     
    589528   ) return Standard.Boolean;
    590529
    591 
    592530   --
    593531   --  RTEMS API
    594    --
    595 
    596    --
    597    --  Initialization Manager -- Shutdown Only
    598    --
    599    procedure Shutdown_Executive (
    600       Status : in     RTEMS.Unsigned32
    601    );
    602 
    603    --
    604    --  Task Manager
    605    --
    606 
    607    procedure Task_Create (
    608       Name             : in     RTEMS.Name;
    609       Initial_Priority : in     RTEMS.Task_Priority;
    610       Stack_Size       : in     Unsigned32;
    611       Initial_Modes    : in     RTEMS.Mode;
    612       Attribute_Set    : in     RTEMS.Attribute;
    613       ID               :    out RTEMS.ID;
    614       Result           :    out RTEMS.Status_Codes
    615    );
    616 
    617    procedure Task_Ident (
    618       Name   : in     RTEMS.Name;
    619       Node   : in     RTEMS.Node;
    620       ID     :    out RTEMS.ID;
    621       Result :    out RTEMS.Status_Codes
    622    );
    623 
    624    procedure Task_Start (
    625       ID          : in     RTEMS.ID;
    626       Entry_Point : in     RTEMS.Task_Entry;
    627       Argument    : in     RTEMS.Task_Argument;
    628       Result      :    out RTEMS.Status_Codes
    629    );
    630 
    631    procedure Task_Restart (
    632       ID       : in     RTEMS.ID;
    633       Argument : in     RTEMS.Task_Argument;
    634       Result   :    out RTEMS.Status_Codes
    635    );
    636 
    637    procedure Task_Delete (
    638       ID     : in     RTEMS.ID;
    639       Result :    out RTEMS.Status_Codes
    640    );
    641 
    642    procedure Task_Suspend (
    643       ID     : in     RTEMS.ID;
    644       Result :    out RTEMS.Status_Codes
    645    );
    646 
    647    procedure Task_Resume (
    648       ID     : in     RTEMS.ID;
    649       Result :    out RTEMS.Status_Codes
    650    );
    651 
    652    procedure Task_Is_Suspended (
    653       ID     : in     RTEMS.ID;
    654       Result :    out RTEMS.Status_Codes
    655    );
    656 
    657    procedure Task_Set_Priority (
    658       ID           : in     RTEMS.ID;
    659       New_Priority : in     RTEMS.Task_Priority;
    660       Old_Priority :    out RTEMS.Task_Priority;
    661       Result       :    out RTEMS.Status_Codes
    662    );
    663 
    664    procedure Task_Mode (
    665       Mode_Set          : in     RTEMS.Mode;
    666       Mask              : in     RTEMS.Mode;
    667       Previous_Mode_Set :    out RTEMS.Mode;
    668       Result            :    out RTEMS.Status_Codes
    669    );
    670 
    671    procedure Task_Get_Note (
    672       ID      : in     RTEMS.ID;
    673       Notepad : in     RTEMS.Notepad_Index;
    674       Note    :    out RTEMS.Unsigned32;
    675       Result  :    out RTEMS.Status_Codes
    676    );
    677 
    678    procedure Task_Set_Note (
    679       ID      : in     RTEMS.ID;
    680       Notepad : in     RTEMS.Notepad_Index;
    681       Note    : in     RTEMS.Unsigned32;
    682       Result  :    out RTEMS.Status_Codes
    683    );
    684 
    685    type Task_Variable_Dtor is access procedure (
    686       Argument : in     RTEMS.Address
    687    );
    688    pragma Convention (C, Task_Variable_Dtor);
    689 
    690    procedure Task_Variable_Add (
    691       ID            : in     RTEMS.ID;
    692       Task_Variable : in     RTEMS.Address;
    693       Dtor          : in     RTEMS.Task_Variable_Dtor;
    694       Result        :    out RTEMS.Status_Codes
    695    );
    696 
    697    procedure Task_Variable_Get (
    698       ID                  : in     RTEMS.ID;
    699       Task_Variable       :    out RTEMS.Address;
    700       Task_Variable_Value :    out RTEMS.Address;
    701       Result              :    out RTEMS.Status_Codes
    702    );
    703 
    704    procedure Task_Variable_Delete (
    705       ID                  : in     RTEMS.ID;
    706       Task_Variable       :    out RTEMS.Address;
    707       Result              :    out RTEMS.Status_Codes
    708    );
    709 
    710    procedure Task_Wake_When (
    711       Time_Buffer : in     RTEMS.Time_Of_Day;
    712       Result      :    out RTEMS.Status_Codes
    713    );
    714 
    715    procedure Task_Wake_After (
    716       Ticks  : in     RTEMS.Interval;
    717       Result :    out RTEMS.Status_Codes
    718    );
    719 
    720    --
    721    --  Interrupt Manager
    722    --
    723 
    724    function Interrupt_Disable return RTEMS.ISR_Level;
    725    pragma Interface (C, Interrupt_Disable);
    726    pragma Interface_Name (Interrupt_Disable, "rtems_interrupt_disable");
    727 
    728    procedure Interrupt_Enable (
    729       Level : in     RTEMS.ISR_Level
    730    );
    731    pragma Interface (C, Interrupt_Enable);
    732    pragma Interface_Name (Interrupt_Enable, "rtems_interrupt_enable");
    733 
    734    procedure Interrupt_Flash (
    735       Level : in     RTEMS.ISR_Level
    736    );
    737    pragma Interface (C, Interrupt_Flash);
    738    pragma Interface_Name (Interrupt_Flash, "rtems_interrupt_flash");
    739 
    740    function Interrupt_Is_In_Progress return RTEMS.Boolean;
    741    pragma Interface (C, Interrupt_Is_In_Progress);
    742    pragma Interface_Name
    743      (Interrupt_Is_In_Progress, "rtems_interrupt_is_in_progress");
    744 
    745    --
    746    --  Clock Manager
    747    --
    748 
    749    procedure Clock_Set (
    750       Time_Buffer : in     RTEMS.Time_Of_Day;
    751       Result      :    out RTEMS.Status_Codes
    752    );
    753 
    754    procedure Clock_Get (
    755       Option      : in     RTEMS.Clock_Get_Options;
    756       Time_Buffer : in     RTEMS.Address;
    757       Result      :    out RTEMS.Status_Codes
    758    );
    759 
    760    procedure Clock_Get_TOD (
    761       Time   :    out RTEMS.Time_Of_Day;
    762       Result :    out RTEMS.Status_Codes
    763    );
    764 
    765    procedure Clock_Get_TOD_Time_Value (
    766       Time   :    out RTEMS.Clock_Time_Value;
    767       Result :    out RTEMS.Status_Codes
    768    );
    769 
    770    procedure Clock_Get_Seconds_Since_Epoch(
    771       The_Interval :    out RTEMS.Interval;
    772       Result       :    out RTEMS.Status_Codes
    773    );
    774 
    775    function Clock_Get_Ticks_Per_Second
    776    return RTEMS.Interval;
    777    pragma Import (
    778       C,
    779       Clock_Get_Ticks_Per_Second,
    780       "rtems_clock_get_ticks_per_second"
    781    );
    782 
    783    function Clock_Get_Ticks_Since_Boot
    784    return RTEMS.Interval;
    785    pragma Import (
    786       C,
    787       Clock_Get_Ticks_Since_Boot,
    788       "rtems_clock_get_ticks_since_boot"
    789    );
    790 
    791    procedure Clock_Get_Uptime (
    792       Uptime :    out RTEMS.Timespec;
    793       Result :    out RTEMS.Status_Codes
    794    );
    795 
    796    procedure Clock_Tick (
    797       Result :    out RTEMS.Status_Codes
    798    );
    799 
    800    --
    801    --  Extension Manager
    802    --
    803 
    804    procedure Extension_Create (
    805       Name   : in     RTEMS.Name;
    806       Table  : in     RTEMS.Extensions_Table_Pointer;
    807       ID     :    out RTEMS.ID;
    808       Result :    out RTEMS.Status_Codes
    809    );
    810 
    811    procedure Extension_Ident (
    812       Name   : in     RTEMS.Name;
    813       ID     :    out RTEMS.ID;
    814       Result :    out RTEMS.Status_Codes
    815    );
    816 
    817    procedure Extension_Delete (
    818       ID     : in     RTEMS.ID;
    819       Result :    out RTEMS.Status_Codes
    820    );
    821 
    822    --
    823    --  Timer Manager
    824    --
    825 
    826    procedure Timer_Create (
    827       Name   : in     RTEMS.Name;
    828       ID     :    out RTEMS.ID;
    829       Result :    out RTEMS.Status_Codes
    830    );
    831 
    832    procedure Timer_Ident (
    833       Name   : in     RTEMS.Name;
    834       ID     :    out RTEMS.ID;
    835       Result :    out RTEMS.Status_Codes
    836    );
    837 
    838    procedure Timer_Delete (
    839       ID     : in     RTEMS.ID;
    840       Result :    out RTEMS.Status_Codes
    841    );
    842 
    843    procedure Timer_Fire_After (
    844       ID        : in     RTEMS.ID;
    845       Ticks     : in     RTEMS.Interval;
    846       Routine   : in     RTEMS.Timer_Service_Routine;
    847       User_Data : in     RTEMS.Address;
    848       Result    :    out RTEMS.Status_Codes
    849    );
    850 
    851    procedure Timer_Server_Fire_After (
    852       ID        : in     RTEMS.ID;
    853       Ticks     : in     RTEMS.Interval;
    854       Routine   : in     RTEMS.Timer_Service_Routine;
    855       User_Data : in     RTEMS.Address;
    856       Result    :    out RTEMS.Status_Codes
    857    );
    858 
    859    procedure Timer_Fire_When (
    860       ID        : in     RTEMS.ID;
    861       Wall_Time : in     RTEMS.Time_Of_Day;
    862       Routine   : in     RTEMS.Timer_Service_Routine;
    863       User_Data : in     RTEMS.Address;
    864       Result    :    out RTEMS.Status_Codes
    865    );
    866 
    867    procedure Timer_Server_Fire_When (
    868       ID        : in     RTEMS.ID;
    869       Wall_Time : in     RTEMS.Time_Of_Day;
    870       Routine   : in     RTEMS.Timer_Service_Routine;
    871       User_Data : in     RTEMS.Address;
    872       Result    :    out RTEMS.Status_Codes
    873    );
    874 
    875    procedure Timer_Reset (
    876       ID     : in     RTEMS.ID;
    877       Result :    out RTEMS.Status_Codes
    878    );
    879 
    880    procedure Timer_Cancel (
    881       ID     : in     RTEMS.ID;
    882       Result :    out RTEMS.Status_Codes
    883    );
    884 
    885    procedure Timer_Initiate_Server (
    886       Server_Priority : in     RTEMS.Task_Priority;
    887       Stack_Size      : in     Unsigned32;
    888       Attribute_Set   : in     RTEMS.Attribute;
    889       Result          :    out RTEMS.Status_Codes
    890    );
    891 
    892    --
    893    --  Semaphore Manager
    894    --
    895 
    896    procedure Semaphore_Create (
    897       Name             : in     RTEMS.Name;
    898       Count            : in     RTEMS.Unsigned32;
    899       Attribute_Set    : in     RTEMS.Attribute;
    900       Priority_Ceiling : in     RTEMS.Task_Priority;
    901       ID               :    out RTEMS.ID;
    902       Result           :    out RTEMS.Status_Codes
    903    );
    904 
    905    procedure Semaphore_Delete (
    906       ID     : in     RTEMS.ID;
    907       Result :    out RTEMS.Status_Codes
    908    );
    909 
    910    procedure Semaphore_Ident (
    911       Name   : in     RTEMS.Name;
    912       Node   : in     RTEMS.Unsigned32;
    913       ID     :    out RTEMS.ID;
    914       Result :    out RTEMS.Status_Codes
    915    );
    916 
    917    procedure Semaphore_Obtain (
    918       ID         : in     RTEMS.ID;
    919       Option_Set : in     RTEMS.Option;
    920       Timeout    : in     RTEMS.Interval;
    921       Result     :    out RTEMS.Status_Codes
    922    );
    923 
    924    procedure Semaphore_Release (
    925       ID     : in     RTEMS.ID;
    926       Result :    out RTEMS.Status_Codes
    927    );
    928 
    929    procedure Semaphore_Flush (
    930       ID     : in     RTEMS.ID;
    931       Result :    out RTEMS.Status_Codes
    932    );
    933 
    934    --
    935    --  Message Queue Manager
    936    --
    937 
    938    procedure Message_Queue_Create (
    939       Name             : in     RTEMS.Name;
    940       Count            : in     RTEMS.Unsigned32;
    941       Max_Message_Size : in     RTEMS.Unsigned32;
    942       Attribute_Set    : in     RTEMS.Attribute;
    943       ID               :    out RTEMS.ID;
    944       Result           :    out RTEMS.Status_Codes
    945    );
    946 
    947    procedure Message_Queue_Ident (
    948       Name   : in     RTEMS.Name;
    949       Node   : in     RTEMS.Unsigned32;
    950       ID     :    out RTEMS.ID;
    951       Result :    out RTEMS.Status_Codes
    952    );
    953 
    954    procedure Message_Queue_Delete (
    955       ID     : in     RTEMS.ID;
    956       Result :    out RTEMS.Status_Codes
    957    );
    958 
    959    procedure Message_Queue_Send (
    960       ID     : in     RTEMS.ID;
    961       Buffer : in     RTEMS.Address;
    962       Size   : in     RTEMS.Unsigned32;
    963       Result :    out RTEMS.Status_Codes
    964    );
    965 
    966    procedure Message_Queue_Urgent (
    967       ID     : in     RTEMS.ID;
    968       Buffer : in     RTEMS.Address;
    969       Size   : in     RTEMS.Unsigned32;
    970       Result :    out RTEMS.Status_Codes
    971    );
    972 
    973    procedure Message_Queue_Broadcast (
    974       ID     : in     RTEMS.ID;
    975       Buffer : in     RTEMS.Address;
    976       Size   : in     RTEMS.Unsigned32;
    977       Count  :    out RTEMS.Unsigned32;
    978       Result :    out RTEMS.Status_Codes
    979    );
    980 
    981    procedure Message_Queue_Receive (
    982       ID         : in     RTEMS.ID;
    983       Buffer     : in     RTEMS.Address;
    984       Option_Set : in     RTEMS.Option;
    985       Timeout    : in     RTEMS.Interval;
    986       Size       : in out RTEMS.Unsigned32;
    987       Result     :    out RTEMS.Status_Codes
    988    );
    989 
    990    procedure Message_Queue_Get_Number_Pending (
    991       ID     : in     RTEMS.ID;
    992       Count  :    out RTEMS.Unsigned32;
    993       Result :    out RTEMS.Status_Codes
    994    );
    995 
    996    procedure Message_Queue_Flush (
    997       ID     : in     RTEMS.ID;
    998       Count  :    out RTEMS.Unsigned32;
    999       Result :    out RTEMS.Status_Codes
    1000    );
    1001 
    1002    --
    1003    --  Event Manager
    1004    --
    1005 
    1006    procedure Event_Send (
    1007       ID       : in     RTEMS.ID;
    1008       Event_In : in     RTEMS.Event_Set;
    1009       Result   :    out RTEMS.Status_Codes
    1010    );
    1011 
    1012    procedure Event_Receive (
    1013       Event_In   : in     RTEMS.Event_Set;
    1014       Option_Set : in     RTEMS.Option;
    1015       Ticks      : in     RTEMS.Interval;
    1016       Event_Out  :    out RTEMS.Event_Set;
    1017       Result     :    out RTEMS.Status_Codes
    1018    );
    1019 
    1020    --
    1021    --  Signal Manager
    1022    --
    1023 
    1024    procedure Signal_Catch (
    1025       ASR_Handler : in     RTEMS.ASR_Handler;
    1026       Mode_Set    : in     RTEMS.Mode;
    1027       Result      :    out RTEMS.Status_Codes
    1028    );
    1029 
    1030    procedure Signal_Send (
    1031       ID         : in     RTEMS.ID;
    1032       Signal_Set : in     RTEMS.Signal_Set;
    1033       Result     :    out RTEMS.Status_Codes
    1034    );
    1035 
    1036    --
    1037    --  Partition Manager
    1038    --
    1039 
    1040    procedure Partition_Create (
    1041       Name             : in     RTEMS.Name;
    1042       Starting_Address : in     RTEMS.Address;
    1043       Length           : in     RTEMS.Unsigned32;
    1044       Buffer_Size      : in     RTEMS.Unsigned32;
    1045       Attribute_Set    : in     RTEMS.Attribute;
    1046       ID               :    out RTEMS.ID;
    1047       Result           :    out RTEMS.Status_Codes
    1048    );
    1049 
    1050    procedure Partition_Ident (
    1051       Name   : in     RTEMS.Name;
    1052       Node   : in     RTEMS.Unsigned32;
    1053       ID     :    out RTEMS.ID;
    1054       Result :    out RTEMS.Status_Codes
    1055    );
    1056 
    1057    procedure Partition_Delete (
    1058       ID     : in     RTEMS.ID;
    1059       Result :    out RTEMS.Status_Codes
    1060    );
    1061 
    1062    procedure Partition_Get_Buffer (
    1063       ID     : in     RTEMS.ID;
    1064       Buffer :    out RTEMS.Address;
    1065       Result :    out RTEMS.Status_Codes
    1066    );
    1067 
    1068    procedure Partition_Return_Buffer (
    1069       ID     : in     RTEMS.ID;
    1070       Buffer : in     RTEMS.Address;
    1071       Result :    out RTEMS.Status_Codes
    1072    );
    1073 
    1074    --
    1075    --  Region Manager
    1076    --
    1077 
    1078    procedure Region_Create (
    1079       Name             : in     RTEMS.Name;
    1080       Starting_Address : in     RTEMS.Address;
    1081       Length           : in     RTEMS.Unsigned32;
    1082       Page_Size        : in     RTEMS.Unsigned32;
    1083       Attribute_Set    : in     RTEMS.Attribute;
    1084       ID               :    out RTEMS.ID;
    1085       Result           :    out RTEMS.Status_Codes
    1086    );
    1087 
    1088    procedure Region_Ident (
    1089       Name   : in     RTEMS.Name;
    1090       ID     :    out RTEMS.ID;
    1091       Result :    out RTEMS.Status_Codes
    1092    );
    1093 
    1094    procedure Region_Delete (
    1095       ID     : in     RTEMS.ID;
    1096       Result :    out RTEMS.Status_Codes
    1097    );
    1098 
    1099    procedure Region_Extend (
    1100       ID               : in     RTEMS.ID;
    1101       Starting_Address : in     RTEMS.Address;
    1102       Length           : in     RTEMS.Unsigned32;
    1103       Result           :    out RTEMS.Status_Codes
    1104    );
    1105 
    1106    procedure Region_Get_Segment (
    1107       ID         : in     RTEMS.ID;
    1108       Size       : in     RTEMS.Unsigned32;
    1109       Option_Set : in     RTEMS.Option;
    1110       Timeout    : in     RTEMS.Interval;
    1111       Segment    :    out RTEMS.Address;
    1112       Result     :    out RTEMS.Status_Codes
    1113    );
    1114 
    1115    procedure Region_Get_Segment_Size (
    1116       ID         : in     RTEMS.ID;
    1117       Segment    : in     RTEMS.Address;
    1118       Size       :    out RTEMS.Unsigned32;
    1119       Result     :    out RTEMS.Status_Codes
    1120    );
    1121 
    1122    procedure Region_Return_Segment (
    1123       ID      : in     RTEMS.ID;
    1124       Segment : in     RTEMS.Address;
    1125       Result  :    out RTEMS.Status_Codes
    1126    );
    1127 
    1128    procedure Region_Resize_Segment (
    1129       ID         : in     RTEMS.ID;
    1130       Segment    : in     RTEMS.Address;
    1131       Size       : in     RTEMS.Unsigned32;
    1132       Old_Size   :    out RTEMS.Unsigned32;
    1133       Result     :    out RTEMS.Status_Codes
    1134    );
    1135 
    1136    --
    1137    --  Dual Ported Memory Manager
    1138    --
    1139 
    1140    procedure Port_Create (
    1141       Name           : in     RTEMS.Name;
    1142       Internal_Start : in     RTEMS.Address;
    1143       External_Start : in     RTEMS.Address;
    1144       Length         : in     RTEMS.Unsigned32;
    1145       ID             :    out RTEMS.ID;
    1146       Result         :    out RTEMS.Status_Codes
    1147    );
    1148 
    1149    procedure Port_Ident (
    1150       Name   : in     RTEMS.Name;
    1151       ID     :    out RTEMS.ID;
    1152       Result :    out RTEMS.Status_Codes
    1153    );
    1154 
    1155    procedure Port_Delete (
    1156       ID     : in     RTEMS.ID;
    1157       Result :    out RTEMS.Status_Codes
    1158    );
    1159 
    1160    procedure Port_External_To_Internal (
    1161       ID       : in     RTEMS.ID;
    1162       External : in     RTEMS.Address;
    1163       Internal :    out RTEMS.Address;
    1164       Result   :    out RTEMS.Status_Codes
    1165    );
    1166 
    1167    procedure Port_Internal_To_External (
    1168       ID       : in     RTEMS.ID;
    1169       Internal : in     RTEMS.Address;
    1170       External :    out RTEMS.Address;
    1171       Result   :    out RTEMS.Status_Codes
    1172    );
    1173 
    1174    --
    1175    --  Input/Output Manager
    1176    --
    1177 
    1178    procedure IO_Register_Name (
    1179       Name   : in     String;
    1180       Major  : in     RTEMS.Device_Major_Number;
    1181       Minor  : in     RTEMS.Device_Minor_Number;
    1182       Result :    out RTEMS.Status_Codes
    1183    );
    1184 
    1185    procedure IO_Lookup_Name (
    1186       Name         : in     String;
    1187       Device_Info  :    out RTEMS.Driver_Name_t;
    1188       Result       :    out RTEMS.Status_Codes
    1189    );
    1190 
    1191    procedure IO_Open (
    1192       Major        : in     RTEMS.Device_Major_Number;
    1193       Minor        : in     RTEMS.Device_Minor_Number;
    1194       Argument     : in     RTEMS.Address;
    1195       Result       :    out RTEMS.Status_Codes
    1196    );
    1197    pragma Inline (IO_Open);
    1198 
    1199    procedure IO_Close (
    1200       Major        : in     RTEMS.Device_Major_Number;
    1201       Minor        : in     RTEMS.Device_Minor_Number;
    1202       Argument     : in     RTEMS.Address;
    1203       Result       :    out RTEMS.Status_Codes
    1204    );
    1205    pragma Inline (IO_Close);
    1206 
    1207    procedure IO_Read (
    1208       Major        : in     RTEMS.Device_Major_Number;
    1209       Minor        : in     RTEMS.Device_Minor_Number;
    1210       Argument     : in     RTEMS.Address;
    1211       Result       :    out RTEMS.Status_Codes
    1212    );
    1213    pragma Inline (IO_Read);
    1214 
    1215    procedure IO_Write (
    1216       Major        : in     RTEMS.Device_Major_Number;
    1217       Minor        : in     RTEMS.Device_Minor_Number;
    1218       Argument     : in     RTEMS.Address;
    1219       Result       :    out RTEMS.Status_Codes
    1220    );
    1221    pragma Inline (IO_Write);
    1222 
    1223    procedure IO_Control (
    1224       Major        : in     RTEMS.Device_Major_Number;
    1225       Minor        : in     RTEMS.Device_Minor_Number;
    1226       Argument     : in     RTEMS.Address;
    1227       Result       :    out RTEMS.Status_Codes
    1228    );
    1229    pragma Inline (IO_Control);
    1230 
    1231    --
    1232    --  Fatal Error Manager
    1233    --
    1234 
    1235    procedure Fatal_Error_Occurred (
    1236       The_Error : in     RTEMS.Unsigned32
    1237    );
    1238 
    1239    --
    1240    --  Rate Monotonic Manager
    1241    --
    1242 
    1243    procedure Rate_Monotonic_Create (
    1244       Name   : in     RTEMS.Name;
    1245       ID     :    out RTEMS.ID;
    1246       Result :    out RTEMS.Status_Codes
    1247    );
    1248 
    1249    procedure Rate_Monotonic_Ident (
    1250       Name   : in     RTEMS.Name;
    1251       ID     :    out RTEMS.ID;
    1252       Result :    out RTEMS.Status_Codes
    1253    );
    1254 
    1255    procedure Rate_Monotonic_Delete (
    1256       ID     : in     RTEMS.ID;
    1257       Result :    out RTEMS.Status_Codes
    1258    );
    1259 
    1260    procedure Rate_Monotonic_Cancel (
    1261       ID     : in     RTEMS.ID;
    1262       Result :    out RTEMS.Status_Codes
    1263    );
    1264 
    1265    procedure Rate_Monotonic_Period (
    1266       ID      : in     RTEMS.ID;
    1267       Length  : in     RTEMS.Interval;
    1268       Result  :    out RTEMS.Status_Codes
    1269    );
    1270 
    1271    procedure Rate_Monotonic_Get_Status (
    1272       ID      : in     RTEMS.ID;
    1273       Status  :    out RTEMS.Rate_Monotonic_Period_Status;
    1274       Result  :    out RTEMS.Status_Codes
    1275    );
    1276 
    1277    procedure Rate_Monotonic_Reset_Statistics (
    1278       ID     : in     RTEMS.ID;
    1279       Result :    out RTEMS.Status_Codes
    1280    );
    1281 
    1282    procedure Rate_Monotonic_Reset_All_Statistics;
    1283    pragma Import (
    1284       C,
    1285       Rate_Monotonic_Reset_All_Statistics,
    1286       "rtems_rate_monotonic_reset_all_statistics"
    1287    );
    1288 
    1289    procedure Rate_Monotonic_Report_Statistics;
    1290    pragma Import (
    1291       C,
    1292       Rate_Monotonic_Report_Statistics,
    1293       "rtems_rate_monotonic_report_statistics"
    1294    );
    1295 
    1296    --
    1297    --  Barrier Manager
    1298    --
    1299 
    1300    procedure Barrier_Create (
    1301       Name            : in     RTEMS.Name;
    1302       Attribute_Set   : in     RTEMS.Attribute;
    1303       Maximum_Waiters : in     RTEMS.Unsigned32;
    1304       ID              :    out RTEMS.ID;
    1305       Result          :    out RTEMS.Status_Codes
    1306    );
    1307 
    1308    procedure Barrier_Ident (
    1309       Name   : in     RTEMS.Name;
    1310       ID     :    out RTEMS.ID;
    1311       Result :    out RTEMS.Status_Codes
    1312    );
    1313 
    1314    procedure Barrier_Delete (
    1315       ID     : in     RTEMS.ID;
    1316       Result :    out RTEMS.Status_Codes
    1317    );
    1318 
    1319    procedure Barrier_Wait (
    1320       ID         : in     RTEMS.ID;
    1321       Timeout    : in     RTEMS.Interval;
    1322       Result     :    out RTEMS.Status_Codes
    1323    );
    1324 
    1325    procedure Barrier_Release (
    1326       ID       : in     RTEMS.ID;
    1327       Released :    out RTEMS.Unsigned32;
    1328       Result   :    out RTEMS.Status_Codes
    1329    );
    1330 
    1331    --
    1332    --  Stack Bounds Checker
    1333    --
    1334 
    1335    function Stack_Checker_Is_Blown return RTEMS.Boolean;
    1336    pragma Interface (C, Stack_Checker_Is_Blown);
    1337    pragma Interface_Name
    1338      (Interrupt_Is_In_Progress, "rtems_stack_checker_is_blown");
    1339 
    1340    procedure Stack_Checker_Report_Usage;
    1341    pragma Import (
    1342       C, Stack_Checker_Report_Usage, "rtems_stack_checker_report_usage"
    1343    );
    1344 
    1345    --
    1346    --  CPU Usage Statistics
    1347    --
    1348 
    1349    procedure CPU_Usage_Report;
    1350    pragma Import (C, CPU_Usage_Report, "rtems_cpu_usage_report");
    1351 
    1352    procedure CPU_Usage_Reset;
    1353    pragma Import (C, CPU_Usage_Reset, "rtems_cpu_usage_reset");
    1354 
    1355    --
    1356    --  Debug Manager
    1357    --
    1358 
    1359    Debug_All_Mask : constant RTEMS.Debug_Set := 16#ffffffff#;
    1360    Debug_Region   : constant RTEMS.Debug_Set := 16#00000001#;
    1361 
    1362    procedure Debug_Enable (
    1363       To_Be_Enabled : in     RTEMS.Debug_Set
    1364    );
    1365 
    1366    procedure Debug_Disable (
    1367       To_Be_Disabled : in     RTEMS.Debug_Set
    1368    );
    1369 
    1370    function Debug_Is_Enabled (
    1371       Level : in     RTEMS.Debug_Set
    1372    ) return RTEMS.Boolean;
    1373 
    1374    --
    1375    --  Object Services
    1376532   --
    1377533
     
    1383539   ) return RTEMS.Name;
    1384540
    1385    procedure Object_Get_Classic_Name(
    1386       ID     : in     RTEMS.ID;
    1387       Name   :    out RTEMS.Name;
    1388       Result :    out RTEMS.Status_Codes
    1389    );
    1390 
    1391    procedure Object_Get_Name(
    1392       ID     : in     RTEMS.ID;
    1393       Name   :    out String;
    1394       Result :    out RTEMS.Address
    1395    );
    1396 
    1397    procedure Object_Set_Name(
    1398       ID     : in     RTEMS.ID;
    1399       Name   : in     String;
    1400       Result :    out RTEMS.Status_Codes
    1401    );
    1402 
    1403    procedure Object_Id_Get_API(
    1404       ID  : in     RTEMS.ID;
    1405       API :    out RTEMS.Unsigned32
    1406    );
    1407 
    1408    procedure Object_Id_Get_Class(
    1409       ID        : in     RTEMS.ID;
    1410       The_Class :    out RTEMS.Unsigned32
    1411    );
    1412 
    1413    procedure Object_Id_Get_Node(
    1414       ID   : in     RTEMS.ID;
    1415       Node :    out RTEMS.Unsigned32
    1416    );
    1417 
    1418    procedure Object_Id_Get_Index(
    1419       ID    : in     RTEMS.ID;
    1420       Index :    out RTEMS.Unsigned32
    1421    );
    1422 
    1423    function Build_Id(
    1424       The_API   : in     RTEMS.Unsigned32;
    1425       The_Class : in     RTEMS.Unsigned32;
    1426       The_Node  : in     RTEMS.Unsigned32;
    1427       The_Index : in     RTEMS.Unsigned32
    1428    ) return RTEMS.Id;
    1429 
    1430    function Object_Id_API_Minimum return RTEMS.Unsigned32;
    1431 
    1432    function Object_Id_API_Maximum return RTEMS.Unsigned32;
    1433 
    1434    procedure Object_API_Minimum_Class(
    1435       API     : in     RTEMS.Unsigned32;
    1436       Minimum :    out RTEMS.Unsigned32
    1437    );
    1438 
    1439    procedure Object_API_Maximum_Class(
    1440       API     : in     RTEMS.Unsigned32;
    1441       Maximum :    out RTEMS.Unsigned32
    1442    );
    1443 
    1444    procedure Object_Get_API_Name(
    1445       API  : in     RTEMS.Unsigned32;
    1446       Name :    out String
    1447    );
    1448 
    1449    procedure Object_Get_API_Class_Name(
    1450       The_API   : in     RTEMS.Unsigned32;
    1451       The_Class : in     RTEMS.Unsigned32;
    1452       Name      :    out String
    1453    );
    1454 
    1455    type Object_API_Class_Information is
    1456      record
    1457         Minimum_Id    : RTEMS.Id;
    1458         Maximum_Id    : RTEMS.Id;
    1459         Maximum       : RTEMS.Unsigned32;
    1460         AutoExtend    : RTEMS.Boolean;
    1461         Unallocated   : RTEMS.Unsigned32;
    1462      end record;
    1463 
    1464    procedure Object_Get_Class_Information(
    1465       The_API   : in     RTEMS.Unsigned32;
    1466       The_Class : in     RTEMS.Unsigned32;
    1467       Info      :    out RTEMS.Object_API_Class_Information;
    1468       Result    :    out RTEMS.Status_Codes
     541   --
     542   --  Initialization Manager -- Shutdown Only
     543   --
     544   procedure Shutdown_Executive (
     545      Status : in     RTEMS.Unsigned32
    1469546   );
    1470547
    1471548end RTEMS;
     549
Note: See TracChangeset for help on using the changeset viewer.