Index: c/src/ada/ChangeLog
===================================================================
--- c/src/ada/ChangeLog	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ c/src/ada/ChangeLog	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -1,2 +1,8 @@
+2001-02-01	Joel Sherrill <joel@OARcorp.com>
+
+	* rtems.ads, rtems.adb: Formatting cleaned up.  Task based timer
+	directives added.  This is Timer_Initiate_Server, 
+	Timer_Server_Fire_After, and Timer_Server_Fire_When. 
+
 2001-02-01	Joel Sherrill <joel@OARcorp.com>
 
Index: c/src/ada/rtems-multiprocessing.adb
===================================================================
--- c/src/ada/rtems-multiprocessing.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
+++ c/src/ada/rtems-multiprocessing.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -0,0 +1,38 @@
+--
+--  RTEMS Multiprocessing Manager/ Body
+--  
+--  DESCRIPTION:
+--  
+--  This package provides the interface to the Multiprocessing Manager
+--  of the RTEMS API.
+--
+--  DEPENDENCIES:
+--
+--
+--  COPYRIGHT (c) 1997.
+--  On-Line Applications Research Corporation (OAR).
+--
+--  The license and distribution terms for this file may in
+--  the file LICENSE in this distribution or at
+--  http://www.OARcorp.com/rtems/license.html.
+--
+--  $Id$
+--
+
+package body RTEMS.Multiprocessing is
+
+   --
+   --  Announce
+   --
+
+   procedure Announce is
+      procedure Multiprocessing_Announce_Base;
+      pragma Import (C, Multiprocessing_Announce_Base,
+         "rtems_multiprocessing_announce");
+   begin
+
+      Multiprocessing_Announce_Base;
+
+   end Announce;
+
+end RTEMS.Multiprocessing;
Index: c/src/ada/rtems-multiprocessing.ads
===================================================================
--- c/src/ada/rtems-multiprocessing.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
+++ c/src/ada/rtems-multiprocessing.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -0,0 +1,30 @@
+--
+--  RTEMS Multiprocessing Manager/ Specification
+--  
+--  DESCRIPTION:
+--  
+--  This package provides the interface to the Multiprocessing Manager
+--  of the RTEMS API.
+--
+--  DEPENDENCIES:
+--
+--
+--  COPYRIGHT (c) 1997.
+--  On-Line Applications Research Corporation (OAR).
+--
+--  The license and distribution terms for this file may in
+--  the file LICENSE in this distribution or at
+--  http://www.OARcorp.com/rtems/license.html.
+--
+--  $Id$
+--
+
+package RTEMS.Multiprocessing is
+
+   --
+   --  Multiprocessing Manager
+   --
+
+   procedure Announce;
+
+end RTEMS.Multiprocessing;
Index: c/src/ada/rtems.adb
===================================================================
--- c/src/ada/rtems.adb	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ c/src/ada/rtems.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -1,4 +1,5 @@
 --
 --  RTEMS / Body
+--
 --  DESCRIPTION:
 --
@@ -161,5 +162,4 @@
    end Get_Index;
 
-
    function Are_Statuses_Equal (
       Status  : in     RTEMS.Status_Codes;
@@ -211,5 +211,4 @@
    end Are_Equal;
 
-
    --
    --
@@ -281,5 +280,4 @@
 
    end Shutdown_Executive;
-
 
    --
@@ -304,18 +302,17 @@
          ID               : access RTEMS.ID
       )  return RTEMS.Status_Codes;
-         pragma Import (C, Task_Create_Base, "rtems_task_create");
-         ID_Base : aliased RTEMS.ID := ID;
+      pragma Import (C, Task_Create_Base, "rtems_task_create");
+      ID_Base : aliased RTEMS.ID := ID;
    begin
       Result := Task_Create_Base (
-                   Name,
-                   Initial_Priority,
-                   Stack_Size,
-                   Initial_Modes,
-                   Attribute_Set,
-                   ID_Base'Unchecked_Access
-                );
+        Name,
+        Initial_Priority,
+        Stack_Size,
+        Initial_Modes,
+        Attribute_Set,
+        ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
    end Task_Create;
-
 
    procedure Task_Ident (
@@ -336,10 +333,5 @@
    begin
 
-      Result := Task_Ident_Base (
-                        Name,
-                        Node,
-                        ID_Base'Unchecked_Access
-                     );
-
+      Result := Task_Ident_Base ( Name, Node, ID_Base'Unchecked_Access ); 
       ID := ID_Base;
 
@@ -352,5 +344,4 @@
       Result      :    out RTEMS.Status_Codes
    ) is
-
       function Task_Start_Base (
          ID          : RTEMS.ID;
@@ -359,12 +350,7 @@
       )  return RTEMS.Status_Codes;
       pragma Import (C, Task_Start_Base, "rtems_task_start");
-
-   begin
-
-      Result := Task_Start_Base (
-                        ID,
-                        Entry_Point,
-                        Argument
-                     );
+   begin
+
+      Result := Task_Start_Base ( ID, Entry_Point, Argument );
 
    end Task_Start;
@@ -382,8 +368,5 @@
    begin
 
-      Result := Task_Restart_Base (
-                        ID,
-                        Argument
-                     );
+      Result := Task_Restart_Base ( ID, Argument );
  
    end Task_Restart;
@@ -430,19 +413,4 @@
 
    end Task_Resume;
-
-   procedure Task_Is_Suspended (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   ) is
-      function Task_Is_Suspended (
-         ID : RTEMS.ID
-      )  return RTEMS.Status_Codes;
-      pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
-   begin
-
-      Result := Task_Is_Suspended_Base ( ID );
-
-   end Task_Is_Suspended;
-
  
    procedure Task_Set_Priority (
@@ -459,13 +427,11 @@
       pragma Import (C, Task_Set_Priority_Base, "rtems_task_set_priority");
       Old_Priority_Base : aliased RTEMS.Task_Priority := Old_Priority;
- 
    begin
  
       Result := Task_Set_Priority_Base (
-                        ID,
-                        New_Priority,
-                        Old_Priority_Base'Unchecked_Access
-                     );
- 
+         ID,
+         New_Priority,
+         Old_Priority_Base'Unchecked_Access
+      );
       Old_Priority := Old_Priority_Base;
 
@@ -492,5 +458,4 @@
          Previous_Mode_Set_Base'Unchecked_Access
       );
-
       Previous_Mode_Set := Previous_Mode_Set_Base;
 
@@ -512,10 +477,5 @@
    begin
 
-      Result := Task_Get_Note_Base (
-         ID,
-         Notepad,
-         Note_Base'Unchecked_Access
-      );
- 
+      Result := Task_Get_Note_Base ( ID, Notepad, Note_Base'Unchecked_Access );
       Note := NOTE_Base;
 
@@ -592,35 +552,12 @@
          OLD_ISR_HANDLER_Base'Unchecked_Access
       );
- 
       Old_ISR_Handler := OLD_ISR_HANDLER_Base;
  
    end Interrupt_Catch;
 
-   -- XXX
-   function Interrupt_Disable
-   return RTEMS.ISR_Level is
-   begin
-      return 0;
-   end Interrupt_Disable;
-
-   procedure Interrupt_Enable (
-      Level : in     RTEMS.ISR_Level
-   ) is
-   begin
-      Null;
-   end Interrupt_Enable;
-
-   procedure Interrupt_Flash (
-      Level : in     RTEMS.ISR_Level
-   ) is
-   begin
-      Null;
-   end Interrupt_Flash;
-
-   function Interrupt_Is_In_Progress
-   return RTEMS.Boolean is
-   begin
-      return RTEMS.From_Ada_Boolean (Standard.True);
-   end Interrupt_Is_In_Progress;
+   -- Interrupt_Disable is interfaced in the specification
+   -- Interrupt_Enable is interfaced in the specification
+   -- Interrupt_Flash is interfaced in the specification
+   -- Interrupt_Is_In_Progress is interfaced in the specification
 
    --
@@ -688,10 +625,5 @@
    begin
  
-      Result := Extension_Create_Base (
-         Name,
-         Table,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Extension_Create_Base ( Name, Table, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -711,9 +643,5 @@
    begin
  
-      Result := Extension_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Extension_Ident_Base ( Name, ID_Base'Unchecked_Access ); 
       ID := ID_Base;
 
@@ -751,9 +679,5 @@
    begin
  
-      Result := Timer_Create_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Timer_Create_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -773,9 +697,5 @@
    begin
  
-      Result := Timer_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Timer_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -812,12 +732,31 @@
    begin
  
-      Result := Timer_Fire_After_Base ( 
-                   ID,
-                   Ticks,
-                   Routine,
-                   User_Data
-                );
+      Result := Timer_Fire_After_Base ( ID, Ticks, Routine, User_Data );
 
    end Timer_Fire_After;
+ 
+   procedure Timer_Server_Fire_After (
+      ID        : in     RTEMS.ID;
+      Ticks     : in     RTEMS.Interval;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Server_Fire_After_Base (
+         ID        : RTEMS.ID;
+         Ticks     : RTEMS.Interval;
+         Routine   : RTEMS.Timer_Service_Routine;
+         User_Data : RTEMS.Address
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+        C,
+        Timer_Server_Fire_After_Base,
+        "rtems_timer_server_fire_after"
+      );
+   begin
+ 
+      Result := Timer_Server_Fire_After_Base ( ID, Ticks, Routine, User_Data ); 
+
+   end Timer_Server_Fire_After;
  
    procedure Timer_Fire_When (
@@ -828,21 +767,40 @@
       Result    :    out RTEMS.Status_Codes
    ) is
-      function Timer_Fire_When (
+      function Timer_Fire_When_Base (
          ID        : RTEMS.ID;
-         Wall_Time : in     RTEMS.Time_Of_Day;
+         Wall_Time : RTEMS.Time_Of_Day;
          Routine   : RTEMS.Timer_Service_Routine;
          User_Data : RTEMS.Address
       )  return RTEMS.Status_Codes;
-      pragma Import (C, Timer_Fire_When, "rtems_timer_fire_when");
-   begin
- 
-      Result := Timer_Fire_When ( 
-                   ID,
-                   Wall_Time,
-                   Routine,
-                   User_Data
-                );
+      pragma Import (C, Timer_Fire_When_Base, "rtems_timer_fire_when");
+   begin
+ 
+      Result := Timer_Fire_When_Base ( ID, Wall_Time, Routine, User_Data );
 
    end Timer_Fire_When;
+ 
+   procedure Timer_Server_Fire_When (
+      ID        : in     RTEMS.ID;
+      Wall_Time : in     RTEMS.Time_Of_Day;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Server_Fire_When_Base (
+         ID        : RTEMS.ID;
+         Wall_Time : RTEMS.Time_Of_Day;
+         Routine   : RTEMS.Timer_Service_Routine;
+         User_Data : RTEMS.Address
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+         C,
+         Timer_Server_Fire_When_Base,
+         "rtems_timer_server_fire_when"
+      );
+   begin
+ 
+      Result :=
+         Timer_Server_Fire_When_Base ( ID, Wall_Time, Routine, User_Data ); 
+   end Timer_Server_Fire_When;
  
    procedure Timer_Reset (
@@ -874,4 +832,28 @@
    end Timer_Cancel;
  
+   procedure Timer_Initiate_Server (
+      Server_Priority : in     RTEMS.Task_Priority;
+      Stack_Size      : in     RTEMS.Unsigned32;
+      Attribute_Set   : in     RTEMS.Attribute;
+      Result          :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Initiate_Server_Base (
+         Server_Priority : RTEMS.Task_Priority;
+         Stack_Size      : RTEMS.Unsigned32;
+         Attribute_Set   : RTEMS.Attribute
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+         C,
+         Timer_Initiate_Server_Base,
+         "rtems_timer_initiate_server"
+      );
+   begin
+      Result := Timer_Initiate_Server_Base (
+         Server_Priority,
+         Stack_Size,
+         Attribute_Set
+      );
+   end Timer_Initiate_Server;
+
    --
    -- Semaphore Manager
@@ -904,5 +886,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
 
@@ -938,10 +919,5 @@
    begin
  
-      Result := Semaphore_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Semaphore_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -977,18 +953,4 @@
  
       Result := Semaphore_Release_Base ( ID );
-
-   end Semaphore_Release;
- 
-   procedure Semaphore_Flush (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   ) is
-      function Semaphore_Flush_Base (
-         ID : RTEMS.ID
-      )  return RTEMS.Status_Codes;
-      pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
-   begin
- 
-      Result := Semaphore_Flush_Base ( ID );
 
    end Semaphore_Release;
@@ -1026,5 +988,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
 
@@ -1046,10 +1007,6 @@
    begin
  
-      Result := Message_Queue_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result :=
+         Message_Queue_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1063,6 +1020,6 @@
          ID : RTEMS.ID
       )  return RTEMS.Status_Codes;
-      pragma Import (C, Message_Queue_Delete_Base,
-         "rtems_message_queue_delete");
+      pragma Import (
+         C, Message_Queue_Delete_Base, "rtems_message_queue_delete");
    begin
  
@@ -1127,10 +1084,9 @@
  
       Result := Message_Queue_Broadcast_Base ( 
-                   ID, 
-                   Buffer, 
-                   Size,
-                   Count_Base'Unchecked_Access
-                );
- 
+         ID, 
+         Buffer, 
+         Size,
+         Count_Base'Unchecked_Access
+      );
       Count := Count_Base;
 
@@ -1158,11 +1114,10 @@
  
       Result := Message_Queue_Receive_Base ( 
-                   ID,
-                   Buffer, 
-                   Size_Base'Unchecked_Access,
-                   Option_Set, 
-                   Timeout 
-                 );
-
+         ID,
+         Buffer, 
+         Size_Base'Unchecked_Access,
+         Option_Set, 
+         Timeout 
+      );
       Size := Size_Base;
 
@@ -1182,14 +1137,9 @@
    begin
  
-      Result := Message_Queue_Flush_Base (
-                   ID,
-                   COUNT_Base'Unchecked_Access
-                );
- 
+      Result := Message_Queue_Flush_Base ( ID, COUNT_Base'Unchecked_Access );
       Count := COUNT_Base;
 
    end Message_Queue_Flush;
  
-
    --
    -- Event Manager
@@ -1208,8 +1158,5 @@
    begin
 
-      Result := Event_Send_Base (
-                   ID,
-                   Event_In
-                );
+      Result := Event_Send_Base ( ID, Event_In );
 
    end Event_Send;
@@ -1233,10 +1180,9 @@
 
       Result := Event_Receive_Base (
-                   Event_In,
-                   Option_Set,
-                   Ticks,
-                   Event_Out_Base'Access
-                );
-
+         Event_In,
+         Option_Set,
+         Ticks,
+         Event_Out_Base'Access
+      ); 
       Event_Out := Event_Out_Base;
 
@@ -1313,5 +1259,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
  
@@ -1333,10 +1278,5 @@
    begin
  
-      Result := Partition_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Partition_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1371,9 +1311,5 @@
    begin
  
-      Result := Partition_Get_Buffer_Base (
-         ID,
-         Buffer_Base'Unchecked_Access
-      );
- 
+      Result := Partition_Get_Buffer_Base ( ID, Buffer_Base'Unchecked_Access );
       Buffer := Buffer_Base;
 
@@ -1420,16 +1356,14 @@
       pragma Import (C, Region_Create_Base, "rtems_region_create");
       ID_Base : aliased RTEMS.ID := ID;
- 
    begin
  
       Result := Region_Create_Base (
-                        Name,
-                        Starting_Address,
-                        Length,
-                        Page_Size,
-                        Attribute_Set,
-                        ID_Base'Unchecked_Access
-                     );
- 
+         Name,
+         Starting_Address,
+         Length,
+         Page_Size,
+         Attribute_Set,
+         ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
 
@@ -1449,9 +1383,5 @@
    begin
  
-      Result := Region_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Region_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1516,5 +1446,4 @@
          Segment_Base'Unchecked_Access
       );
- 
       Segment := SEGMENT_Base;
 
@@ -1542,5 +1471,4 @@
          Size_Base'Unchecked_Access
       );
- 
       Size := SIZE_Base;
 
@@ -1564,5 +1492,4 @@
    end Region_Return_Segment;
  
-
    --
    -- Dual Ported Memory Manager
@@ -1586,15 +1513,13 @@
       pragma Import (C, Port_Create_Base, "rtems_port_create");
       ID_Base : aliased RTEMS.ID := ID;
- 
    begin
  
       Result := Port_Create_Base (
-                   Name,
-                   Internal_Start,
-                   External_Start,
-                   Length,
-                   ID_Base'Unchecked_Access
-                );
- 
+         Name,
+         Internal_Start,
+         External_Start,
+         Length,
+         ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
 
@@ -1614,9 +1539,5 @@
    begin
  
-      Result := Port_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Port_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1658,5 +1579,4 @@
          Internal_Base'Unchecked_Access
       );
- 
       Internal := INTERNAL_Base;
 
@@ -1684,5 +1604,4 @@
          External_Base'Unchecked_Access
       );
- 
       External := EXTERNAL_Base;
 
@@ -1716,5 +1635,4 @@
          Return_Value_Base'Unchecked_Access
       );
- 
       Return_Value := Return_Value_Base;
 
@@ -1735,9 +1653,6 @@
    begin
 
-      Result := IO_Register_Name_Base (
-         Interfaces.C.To_C (Name),
-         Major,
-         Minor
-      );
+      Result :=
+         IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
 
    end IO_Register_Name;
@@ -1753,5 +1668,4 @@
       )  return RTEMS.Status_Codes;
       pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
-
       Device_Info_Base : aliased RTEMS.Driver_Name_t;
    begin
@@ -1761,5 +1675,4 @@
          Device_Info_Base'Unchecked_Access
       );
-
       Device_Info := Device_Info_Base;
 
@@ -1856,5 +1769,4 @@
    end IO_Control;
  
- 
    --
    -- Fatal Error Manager
@@ -1872,5 +1784,7 @@
       Fatal_Error_Occurred_Base ( The_Error );
 
-   end Fatal_Error_Occurred; 
+   end Fatal_Error_Occurred;
+
+
    --
    -- Rate Monotonic Manager
@@ -1890,9 +1804,5 @@
    begin
  
-      Result := Rate_Monotonic_Create_base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Rate_Monotonic_Create_base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1912,8 +1822,5 @@
    begin
  
-      Result := Rate_Monotonic_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
+      Result := Rate_Monotonic_Ident_Base ( Name, ID_Base'Unchecked_Access );
  
       ID := ID_Base;
@@ -1994,18 +1901,4 @@
    end Rate_Monotonic_Get_Status;
 
-   --
-   -- Multiprocessing Manager
-   --
- 
-   procedure Multiprocessing_Announce is
-      procedure Multiprocessing_Announce_Base;
-      pragma Import (C, Multiprocessing_Announce_Base,
-         "rtems_multiprocessing_announce");
-   begin
- 
-      Multiprocessing_Announce_Base;
-
-   end Multiprocessing_Announce;
- 
  
    --
@@ -2062,3 +1955,2 @@
 
 end RTEMS;
-
Index: c/src/ada/rtems.ads
===================================================================
--- c/src/ada/rtems.ads	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ c/src/ada/rtems.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -26,4 +26,5 @@
 
 package RTEMS is
+pragma Elaborate_Body (RTEMS);
 
    Structure_Alignment : constant := 8;
@@ -36,8 +37,10 @@
    subtype Unsigned16 is Interfaces.Unsigned_16;
    subtype Unsigned32 is Interfaces.Unsigned_32;
+   subtype Signed32   is Interfaces.Integer_32;
 
    type Unsigned32_Pointer     is access all RTEMS.Unsigned32;
    type Unsigned16_Pointer     is access all RTEMS.Unsigned16;
    type Unsigned8_Pointer      is access all RTEMS.Unsigned8;
+   type Signed32_Pointer       is access all RTEMS.Signed32;
 
    subtype Boolean             is RTEMS.Unsigned32;
@@ -236,5 +239,4 @@
    ) return RTEMS.Attribute;
    pragma Import (C, Interrupt_Level, "rtems_interrupt_level_attribute");
-   
 
    Minimum_Stack_Size : RTEMS.Unsigned32;
@@ -698,17 +700,16 @@
    type Configuration_Table is
       record
-          Work_Space_Start             : RTEMS.Address;
-          Work_Space_Size              : RTEMS.Unsigned32;
-          Maximum_Extensions           : RTEMS.Unsigned32;
-          Microseconds_Per_Tick        : RTEMS.Unsigned32;
-          Ticks_Per_Timeslice          : RTEMS.Unsigned32;
-          Maximum_Devices              : RTEMS.Unsigned32;
-          Number_Of_Device_Drivers     : RTEMS.Unsigned32;
-          Device_Driver_Table          : RTEMS.Driver_Address_Table_Pointer;
-          Number_Of_Initial_Extensions : RTEMS.Unsigned32;
-          User_Extension_Table         : RTEMS.Extensions_Table_Pointer;
-          User_Multiprocessing_Table   : RTEMS.Multiprocessing_Table_Pointer;
-          RTEMS_API_Configuration      : RTEMS.API_Configuration_Table_Pointer;
-          POSIX_API_Configuration      : RTEMS.POSIX_API_Configuration_Table_Pointer;
+          Work_Space_Start           : RTEMS.Address;
+          Work_Space_Size            : RTEMS.Unsigned32;
+          Maximum_Extensions         : RTEMS.Unsigned32;
+          Microseconds_Per_Tick      : RTEMS.Unsigned32;
+          Ticks_Per_Timeslice        : RTEMS.Unsigned32;
+          Maximum_Devices            : RTEMS.Unsigned32;
+          Number_Of_Device_Drivers   : RTEMS.Unsigned32;
+          Device_Driver_Table        : RTEMS.Driver_Address_Table_Pointer;
+          User_Extension_Table       : RTEMS.Extensions_Table_Pointer;
+          User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
+          RTEMS_API_Configuration    : RTEMS.API_Configuration_Table_Pointer;
+          POSIX_API_Configuration    : RTEMS.POSIX_API_Configuration_Table_Pointer;
       end record;
 
@@ -865,9 +866,4 @@
    );
 
-   procedure Task_Is_Suspended (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   );
-
    procedure Task_Set_Priority (
       ID           : in     RTEMS.ID;
@@ -919,17 +915,24 @@
    );
 
-   function Interrupt_Disable
-   return RTEMS.ISR_Level;
+   function Interrupt_Disable return RTEMS.ISR_Level;
+   pragma Interface (C, Interrupt_Disable);
+   pragma Interface_Name (Interrupt_Disable, "rtems_interrupt_disable");
 
    procedure Interrupt_Enable (
       Level : in     RTEMS.ISR_Level
    );
+   pragma Interface (C, Interrupt_Enable);
+   pragma Interface_Name (Interrupt_Enable, "rtems_interrupt_enable");
 
    procedure Interrupt_Flash (
       Level : in     RTEMS.ISR_Level
    );
-
-   function Interrupt_Is_In_Progress
-   return RTEMS.Boolean;
+   pragma Interface (C, Interrupt_Flash);
+   pragma Interface_Name (Interrupt_Flash, "rtems_interrupt_flash");
+
+   function Interrupt_Is_In_Progress return RTEMS.Boolean;
+   pragma Interface (C, Interrupt_Is_In_Progress);
+   pragma Interface_Name
+     (Interrupt_Is_In_Progress, "rtems_interrupt_is_in_progress");
 
    --
@@ -1004,4 +1007,12 @@
    );
 
+   procedure Timer_Server_Fire_After (
+      ID        : in     RTEMS.ID;
+      Ticks     : in     RTEMS.Interval;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   );
+
    procedure Timer_Fire_When (
       ID        : in     RTEMS.ID;
@@ -1012,4 +1023,12 @@
    );
 
+   procedure Timer_Server_Fire_When (
+      ID        : in     RTEMS.ID;
+      Wall_Time : in     RTEMS.Time_Of_Day;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   );
+
    procedure Timer_Reset (
       ID     : in     RTEMS.ID;
@@ -1020,4 +1039,11 @@
       ID     : in     RTEMS.ID;
       Result :    out RTEMS.Status_Codes
+   );
+
+   procedure Timer_Initiate_Server (
+      Server_Priority : in     RTEMS.Task_Priority;
+      Stack_Size      : in     Unsigned32;
+      Attribute_Set   : in     RTEMS.Attribute;
+      Result          :    out RTEMS.Status_Codes
    );
 
@@ -1059,8 +1085,4 @@
    );
 
-   procedure Semaphore_Flush (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   );
 
    --
@@ -1402,10 +1424,4 @@
    );
 
-   --
-   --  Multiprocessing Manager
-   --
-
-   procedure Multiprocessing_Announce;
-
 
    --
@@ -1435,5 +1451,3 @@
   pragma Import (C, Configuration, "_Configuration_Table");
 
-
-private
 end RTEMS;
Index: cpukit/ada/ChangeLog
===================================================================
--- cpukit/ada/ChangeLog	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ cpukit/ada/ChangeLog	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -1,2 +1,8 @@
+2001-02-01	Joel Sherrill <joel@OARcorp.com>
+
+	* rtems.ads, rtems.adb: Formatting cleaned up.  Task based timer
+	directives added.  This is Timer_Initiate_Server, 
+	Timer_Server_Fire_After, and Timer_Server_Fire_When. 
+
 2001-02-01	Joel Sherrill <joel@OARcorp.com>
 
Index: cpukit/ada/rtems-multiprocessing.adb
===================================================================
--- cpukit/ada/rtems-multiprocessing.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
+++ cpukit/ada/rtems-multiprocessing.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -0,0 +1,38 @@
+--
+--  RTEMS Multiprocessing Manager/ Body
+--  
+--  DESCRIPTION:
+--  
+--  This package provides the interface to the Multiprocessing Manager
+--  of the RTEMS API.
+--
+--  DEPENDENCIES:
+--
+--
+--  COPYRIGHT (c) 1997.
+--  On-Line Applications Research Corporation (OAR).
+--
+--  The license and distribution terms for this file may in
+--  the file LICENSE in this distribution or at
+--  http://www.OARcorp.com/rtems/license.html.
+--
+--  $Id$
+--
+
+package body RTEMS.Multiprocessing is
+
+   --
+   --  Announce
+   --
+
+   procedure Announce is
+      procedure Multiprocessing_Announce_Base;
+      pragma Import (C, Multiprocessing_Announce_Base,
+         "rtems_multiprocessing_announce");
+   begin
+
+      Multiprocessing_Announce_Base;
+
+   end Announce;
+
+end RTEMS.Multiprocessing;
Index: cpukit/ada/rtems-multiprocessing.ads
===================================================================
--- cpukit/ada/rtems-multiprocessing.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
+++ cpukit/ada/rtems-multiprocessing.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -0,0 +1,30 @@
+--
+--  RTEMS Multiprocessing Manager/ Specification
+--  
+--  DESCRIPTION:
+--  
+--  This package provides the interface to the Multiprocessing Manager
+--  of the RTEMS API.
+--
+--  DEPENDENCIES:
+--
+--
+--  COPYRIGHT (c) 1997.
+--  On-Line Applications Research Corporation (OAR).
+--
+--  The license and distribution terms for this file may in
+--  the file LICENSE in this distribution or at
+--  http://www.OARcorp.com/rtems/license.html.
+--
+--  $Id$
+--
+
+package RTEMS.Multiprocessing is
+
+   --
+   --  Multiprocessing Manager
+   --
+
+   procedure Announce;
+
+end RTEMS.Multiprocessing;
Index: cpukit/ada/rtems.adb
===================================================================
--- cpukit/ada/rtems.adb	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ cpukit/ada/rtems.adb	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -1,4 +1,5 @@
 --
 --  RTEMS / Body
+--
 --  DESCRIPTION:
 --
@@ -161,5 +162,4 @@
    end Get_Index;
 
-
    function Are_Statuses_Equal (
       Status  : in     RTEMS.Status_Codes;
@@ -211,5 +211,4 @@
    end Are_Equal;
 
-
    --
    --
@@ -281,5 +280,4 @@
 
    end Shutdown_Executive;
-
 
    --
@@ -304,18 +302,17 @@
          ID               : access RTEMS.ID
       )  return RTEMS.Status_Codes;
-         pragma Import (C, Task_Create_Base, "rtems_task_create");
-         ID_Base : aliased RTEMS.ID := ID;
+      pragma Import (C, Task_Create_Base, "rtems_task_create");
+      ID_Base : aliased RTEMS.ID := ID;
    begin
       Result := Task_Create_Base (
-                   Name,
-                   Initial_Priority,
-                   Stack_Size,
-                   Initial_Modes,
-                   Attribute_Set,
-                   ID_Base'Unchecked_Access
-                );
+        Name,
+        Initial_Priority,
+        Stack_Size,
+        Initial_Modes,
+        Attribute_Set,
+        ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
    end Task_Create;
-
 
    procedure Task_Ident (
@@ -336,10 +333,5 @@
    begin
 
-      Result := Task_Ident_Base (
-                        Name,
-                        Node,
-                        ID_Base'Unchecked_Access
-                     );
-
+      Result := Task_Ident_Base ( Name, Node, ID_Base'Unchecked_Access ); 
       ID := ID_Base;
 
@@ -352,5 +344,4 @@
       Result      :    out RTEMS.Status_Codes
    ) is
-
       function Task_Start_Base (
          ID          : RTEMS.ID;
@@ -359,12 +350,7 @@
       )  return RTEMS.Status_Codes;
       pragma Import (C, Task_Start_Base, "rtems_task_start");
-
-   begin
-
-      Result := Task_Start_Base (
-                        ID,
-                        Entry_Point,
-                        Argument
-                     );
+   begin
+
+      Result := Task_Start_Base ( ID, Entry_Point, Argument );
 
    end Task_Start;
@@ -382,8 +368,5 @@
    begin
 
-      Result := Task_Restart_Base (
-                        ID,
-                        Argument
-                     );
+      Result := Task_Restart_Base ( ID, Argument );
  
    end Task_Restart;
@@ -430,19 +413,4 @@
 
    end Task_Resume;
-
-   procedure Task_Is_Suspended (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   ) is
-      function Task_Is_Suspended (
-         ID : RTEMS.ID
-      )  return RTEMS.Status_Codes;
-      pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
-   begin
-
-      Result := Task_Is_Suspended_Base ( ID );
-
-   end Task_Is_Suspended;
-
  
    procedure Task_Set_Priority (
@@ -459,13 +427,11 @@
       pragma Import (C, Task_Set_Priority_Base, "rtems_task_set_priority");
       Old_Priority_Base : aliased RTEMS.Task_Priority := Old_Priority;
- 
    begin
  
       Result := Task_Set_Priority_Base (
-                        ID,
-                        New_Priority,
-                        Old_Priority_Base'Unchecked_Access
-                     );
- 
+         ID,
+         New_Priority,
+         Old_Priority_Base'Unchecked_Access
+      );
       Old_Priority := Old_Priority_Base;
 
@@ -492,5 +458,4 @@
          Previous_Mode_Set_Base'Unchecked_Access
       );
-
       Previous_Mode_Set := Previous_Mode_Set_Base;
 
@@ -512,10 +477,5 @@
    begin
 
-      Result := Task_Get_Note_Base (
-         ID,
-         Notepad,
-         Note_Base'Unchecked_Access
-      );
- 
+      Result := Task_Get_Note_Base ( ID, Notepad, Note_Base'Unchecked_Access );
       Note := NOTE_Base;
 
@@ -592,35 +552,12 @@
          OLD_ISR_HANDLER_Base'Unchecked_Access
       );
- 
       Old_ISR_Handler := OLD_ISR_HANDLER_Base;
  
    end Interrupt_Catch;
 
-   -- XXX
-   function Interrupt_Disable
-   return RTEMS.ISR_Level is
-   begin
-      return 0;
-   end Interrupt_Disable;
-
-   procedure Interrupt_Enable (
-      Level : in     RTEMS.ISR_Level
-   ) is
-   begin
-      Null;
-   end Interrupt_Enable;
-
-   procedure Interrupt_Flash (
-      Level : in     RTEMS.ISR_Level
-   ) is
-   begin
-      Null;
-   end Interrupt_Flash;
-
-   function Interrupt_Is_In_Progress
-   return RTEMS.Boolean is
-   begin
-      return RTEMS.From_Ada_Boolean (Standard.True);
-   end Interrupt_Is_In_Progress;
+   -- Interrupt_Disable is interfaced in the specification
+   -- Interrupt_Enable is interfaced in the specification
+   -- Interrupt_Flash is interfaced in the specification
+   -- Interrupt_Is_In_Progress is interfaced in the specification
 
    --
@@ -688,10 +625,5 @@
    begin
  
-      Result := Extension_Create_Base (
-         Name,
-         Table,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Extension_Create_Base ( Name, Table, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -711,9 +643,5 @@
    begin
  
-      Result := Extension_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Extension_Ident_Base ( Name, ID_Base'Unchecked_Access ); 
       ID := ID_Base;
 
@@ -751,9 +679,5 @@
    begin
  
-      Result := Timer_Create_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Timer_Create_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -773,9 +697,5 @@
    begin
  
-      Result := Timer_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Timer_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -812,12 +732,31 @@
    begin
  
-      Result := Timer_Fire_After_Base ( 
-                   ID,
-                   Ticks,
-                   Routine,
-                   User_Data
-                );
+      Result := Timer_Fire_After_Base ( ID, Ticks, Routine, User_Data );
 
    end Timer_Fire_After;
+ 
+   procedure Timer_Server_Fire_After (
+      ID        : in     RTEMS.ID;
+      Ticks     : in     RTEMS.Interval;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Server_Fire_After_Base (
+         ID        : RTEMS.ID;
+         Ticks     : RTEMS.Interval;
+         Routine   : RTEMS.Timer_Service_Routine;
+         User_Data : RTEMS.Address
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+        C,
+        Timer_Server_Fire_After_Base,
+        "rtems_timer_server_fire_after"
+      );
+   begin
+ 
+      Result := Timer_Server_Fire_After_Base ( ID, Ticks, Routine, User_Data ); 
+
+   end Timer_Server_Fire_After;
  
    procedure Timer_Fire_When (
@@ -828,21 +767,40 @@
       Result    :    out RTEMS.Status_Codes
    ) is
-      function Timer_Fire_When (
+      function Timer_Fire_When_Base (
          ID        : RTEMS.ID;
-         Wall_Time : in     RTEMS.Time_Of_Day;
+         Wall_Time : RTEMS.Time_Of_Day;
          Routine   : RTEMS.Timer_Service_Routine;
          User_Data : RTEMS.Address
       )  return RTEMS.Status_Codes;
-      pragma Import (C, Timer_Fire_When, "rtems_timer_fire_when");
-   begin
- 
-      Result := Timer_Fire_When ( 
-                   ID,
-                   Wall_Time,
-                   Routine,
-                   User_Data
-                );
+      pragma Import (C, Timer_Fire_When_Base, "rtems_timer_fire_when");
+   begin
+ 
+      Result := Timer_Fire_When_Base ( ID, Wall_Time, Routine, User_Data );
 
    end Timer_Fire_When;
+ 
+   procedure Timer_Server_Fire_When (
+      ID        : in     RTEMS.ID;
+      Wall_Time : in     RTEMS.Time_Of_Day;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Server_Fire_When_Base (
+         ID        : RTEMS.ID;
+         Wall_Time : RTEMS.Time_Of_Day;
+         Routine   : RTEMS.Timer_Service_Routine;
+         User_Data : RTEMS.Address
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+         C,
+         Timer_Server_Fire_When_Base,
+         "rtems_timer_server_fire_when"
+      );
+   begin
+ 
+      Result :=
+         Timer_Server_Fire_When_Base ( ID, Wall_Time, Routine, User_Data ); 
+   end Timer_Server_Fire_When;
  
    procedure Timer_Reset (
@@ -874,4 +832,28 @@
    end Timer_Cancel;
  
+   procedure Timer_Initiate_Server (
+      Server_Priority : in     RTEMS.Task_Priority;
+      Stack_Size      : in     RTEMS.Unsigned32;
+      Attribute_Set   : in     RTEMS.Attribute;
+      Result          :    out RTEMS.Status_Codes
+   ) is
+      function Timer_Initiate_Server_Base (
+         Server_Priority : RTEMS.Task_Priority;
+         Stack_Size      : RTEMS.Unsigned32;
+         Attribute_Set   : RTEMS.Attribute
+      )  return RTEMS.Status_Codes;
+      pragma Import (
+         C,
+         Timer_Initiate_Server_Base,
+         "rtems_timer_initiate_server"
+      );
+   begin
+      Result := Timer_Initiate_Server_Base (
+         Server_Priority,
+         Stack_Size,
+         Attribute_Set
+      );
+   end Timer_Initiate_Server;
+
    --
    -- Semaphore Manager
@@ -904,5 +886,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
 
@@ -938,10 +919,5 @@
    begin
  
-      Result := Semaphore_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Semaphore_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -977,18 +953,4 @@
  
       Result := Semaphore_Release_Base ( ID );
-
-   end Semaphore_Release;
- 
-   procedure Semaphore_Flush (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   ) is
-      function Semaphore_Flush_Base (
-         ID : RTEMS.ID
-      )  return RTEMS.Status_Codes;
-      pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
-   begin
- 
-      Result := Semaphore_Flush_Base ( ID );
 
    end Semaphore_Release;
@@ -1026,5 +988,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
 
@@ -1046,10 +1007,6 @@
    begin
  
-      Result := Message_Queue_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result :=
+         Message_Queue_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1063,6 +1020,6 @@
          ID : RTEMS.ID
       )  return RTEMS.Status_Codes;
-      pragma Import (C, Message_Queue_Delete_Base,
-         "rtems_message_queue_delete");
+      pragma Import (
+         C, Message_Queue_Delete_Base, "rtems_message_queue_delete");
    begin
  
@@ -1127,10 +1084,9 @@
  
       Result := Message_Queue_Broadcast_Base ( 
-                   ID, 
-                   Buffer, 
-                   Size,
-                   Count_Base'Unchecked_Access
-                );
- 
+         ID, 
+         Buffer, 
+         Size,
+         Count_Base'Unchecked_Access
+      );
       Count := Count_Base;
 
@@ -1158,11 +1114,10 @@
  
       Result := Message_Queue_Receive_Base ( 
-                   ID,
-                   Buffer, 
-                   Size_Base'Unchecked_Access,
-                   Option_Set, 
-                   Timeout 
-                 );
-
+         ID,
+         Buffer, 
+         Size_Base'Unchecked_Access,
+         Option_Set, 
+         Timeout 
+      );
       Size := Size_Base;
 
@@ -1182,14 +1137,9 @@
    begin
  
-      Result := Message_Queue_Flush_Base (
-                   ID,
-                   COUNT_Base'Unchecked_Access
-                );
- 
+      Result := Message_Queue_Flush_Base ( ID, COUNT_Base'Unchecked_Access );
       Count := COUNT_Base;
 
    end Message_Queue_Flush;
  
-
    --
    -- Event Manager
@@ -1208,8 +1158,5 @@
    begin
 
-      Result := Event_Send_Base (
-                   ID,
-                   Event_In
-                );
+      Result := Event_Send_Base ( ID, Event_In );
 
    end Event_Send;
@@ -1233,10 +1180,9 @@
 
       Result := Event_Receive_Base (
-                   Event_In,
-                   Option_Set,
-                   Ticks,
-                   Event_Out_Base'Access
-                );
-
+         Event_In,
+         Option_Set,
+         Ticks,
+         Event_Out_Base'Access
+      ); 
       Event_Out := Event_Out_Base;
 
@@ -1313,5 +1259,4 @@
          ID_Base'Unchecked_Access
       );
- 
       ID := ID_Base;
  
@@ -1333,10 +1278,5 @@
    begin
  
-      Result := Partition_Ident_Base (
-         Name,
-         Node,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Partition_Ident_Base ( Name, Node, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1371,9 +1311,5 @@
    begin
  
-      Result := Partition_Get_Buffer_Base (
-         ID,
-         Buffer_Base'Unchecked_Access
-      );
- 
+      Result := Partition_Get_Buffer_Base ( ID, Buffer_Base'Unchecked_Access );
       Buffer := Buffer_Base;
 
@@ -1420,16 +1356,14 @@
       pragma Import (C, Region_Create_Base, "rtems_region_create");
       ID_Base : aliased RTEMS.ID := ID;
- 
    begin
  
       Result := Region_Create_Base (
-                        Name,
-                        Starting_Address,
-                        Length,
-                        Page_Size,
-                        Attribute_Set,
-                        ID_Base'Unchecked_Access
-                     );
- 
+         Name,
+         Starting_Address,
+         Length,
+         Page_Size,
+         Attribute_Set,
+         ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
 
@@ -1449,9 +1383,5 @@
    begin
  
-      Result := Region_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Region_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1516,5 +1446,4 @@
          Segment_Base'Unchecked_Access
       );
- 
       Segment := SEGMENT_Base;
 
@@ -1542,5 +1471,4 @@
          Size_Base'Unchecked_Access
       );
- 
       Size := SIZE_Base;
 
@@ -1564,5 +1492,4 @@
    end Region_Return_Segment;
  
-
    --
    -- Dual Ported Memory Manager
@@ -1586,15 +1513,13 @@
       pragma Import (C, Port_Create_Base, "rtems_port_create");
       ID_Base : aliased RTEMS.ID := ID;
- 
    begin
  
       Result := Port_Create_Base (
-                   Name,
-                   Internal_Start,
-                   External_Start,
-                   Length,
-                   ID_Base'Unchecked_Access
-                );
- 
+         Name,
+         Internal_Start,
+         External_Start,
+         Length,
+         ID_Base'Unchecked_Access
+      );
       ID := ID_Base;
 
@@ -1614,9 +1539,5 @@
    begin
  
-      Result := Port_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Port_Ident_Base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1658,5 +1579,4 @@
          Internal_Base'Unchecked_Access
       );
- 
       Internal := INTERNAL_Base;
 
@@ -1684,5 +1604,4 @@
          External_Base'Unchecked_Access
       );
- 
       External := EXTERNAL_Base;
 
@@ -1716,5 +1635,4 @@
          Return_Value_Base'Unchecked_Access
       );
- 
       Return_Value := Return_Value_Base;
 
@@ -1735,9 +1653,6 @@
    begin
 
-      Result := IO_Register_Name_Base (
-         Interfaces.C.To_C (Name),
-         Major,
-         Minor
-      );
+      Result :=
+         IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
 
    end IO_Register_Name;
@@ -1753,5 +1668,4 @@
       )  return RTEMS.Status_Codes;
       pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
-
       Device_Info_Base : aliased RTEMS.Driver_Name_t;
    begin
@@ -1761,5 +1675,4 @@
          Device_Info_Base'Unchecked_Access
       );
-
       Device_Info := Device_Info_Base;
 
@@ -1856,5 +1769,4 @@
    end IO_Control;
  
- 
    --
    -- Fatal Error Manager
@@ -1872,5 +1784,7 @@
       Fatal_Error_Occurred_Base ( The_Error );
 
-   end Fatal_Error_Occurred; 
+   end Fatal_Error_Occurred;
+
+
    --
    -- Rate Monotonic Manager
@@ -1890,9 +1804,5 @@
    begin
  
-      Result := Rate_Monotonic_Create_base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
- 
+      Result := Rate_Monotonic_Create_base ( Name, ID_Base'Unchecked_Access );
       ID := ID_Base;
 
@@ -1912,8 +1822,5 @@
    begin
  
-      Result := Rate_Monotonic_Ident_Base (
-         Name,
-         ID_Base'Unchecked_Access
-      );
+      Result := Rate_Monotonic_Ident_Base ( Name, ID_Base'Unchecked_Access );
  
       ID := ID_Base;
@@ -1994,18 +1901,4 @@
    end Rate_Monotonic_Get_Status;
 
-   --
-   -- Multiprocessing Manager
-   --
- 
-   procedure Multiprocessing_Announce is
-      procedure Multiprocessing_Announce_Base;
-      pragma Import (C, Multiprocessing_Announce_Base,
-         "rtems_multiprocessing_announce");
-   begin
- 
-      Multiprocessing_Announce_Base;
-
-   end Multiprocessing_Announce;
- 
  
    --
@@ -2062,3 +1955,2 @@
 
 end RTEMS;
-
Index: cpukit/ada/rtems.ads
===================================================================
--- cpukit/ada/rtems.ads	(revision 569a01fed1adb8c5c125054ab18604663a88ccc2)
+++ cpukit/ada/rtems.ads	(revision 7003847359db0ba1e394d2f3f3782f805c9fbb39)
@@ -26,4 +26,5 @@
 
 package RTEMS is
+pragma Elaborate_Body (RTEMS);
 
    Structure_Alignment : constant := 8;
@@ -36,8 +37,10 @@
    subtype Unsigned16 is Interfaces.Unsigned_16;
    subtype Unsigned32 is Interfaces.Unsigned_32;
+   subtype Signed32   is Interfaces.Integer_32;
 
    type Unsigned32_Pointer     is access all RTEMS.Unsigned32;
    type Unsigned16_Pointer     is access all RTEMS.Unsigned16;
    type Unsigned8_Pointer      is access all RTEMS.Unsigned8;
+   type Signed32_Pointer       is access all RTEMS.Signed32;
 
    subtype Boolean             is RTEMS.Unsigned32;
@@ -236,5 +239,4 @@
    ) return RTEMS.Attribute;
    pragma Import (C, Interrupt_Level, "rtems_interrupt_level_attribute");
-   
 
    Minimum_Stack_Size : RTEMS.Unsigned32;
@@ -698,17 +700,16 @@
    type Configuration_Table is
       record
-          Work_Space_Start             : RTEMS.Address;
-          Work_Space_Size              : RTEMS.Unsigned32;
-          Maximum_Extensions           : RTEMS.Unsigned32;
-          Microseconds_Per_Tick        : RTEMS.Unsigned32;
-          Ticks_Per_Timeslice          : RTEMS.Unsigned32;
-          Maximum_Devices              : RTEMS.Unsigned32;
-          Number_Of_Device_Drivers     : RTEMS.Unsigned32;
-          Device_Driver_Table          : RTEMS.Driver_Address_Table_Pointer;
-          Number_Of_Initial_Extensions : RTEMS.Unsigned32;
-          User_Extension_Table         : RTEMS.Extensions_Table_Pointer;
-          User_Multiprocessing_Table   : RTEMS.Multiprocessing_Table_Pointer;
-          RTEMS_API_Configuration      : RTEMS.API_Configuration_Table_Pointer;
-          POSIX_API_Configuration      : RTEMS.POSIX_API_Configuration_Table_Pointer;
+          Work_Space_Start           : RTEMS.Address;
+          Work_Space_Size            : RTEMS.Unsigned32;
+          Maximum_Extensions         : RTEMS.Unsigned32;
+          Microseconds_Per_Tick      : RTEMS.Unsigned32;
+          Ticks_Per_Timeslice        : RTEMS.Unsigned32;
+          Maximum_Devices            : RTEMS.Unsigned32;
+          Number_Of_Device_Drivers   : RTEMS.Unsigned32;
+          Device_Driver_Table        : RTEMS.Driver_Address_Table_Pointer;
+          User_Extension_Table       : RTEMS.Extensions_Table_Pointer;
+          User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
+          RTEMS_API_Configuration    : RTEMS.API_Configuration_Table_Pointer;
+          POSIX_API_Configuration    : RTEMS.POSIX_API_Configuration_Table_Pointer;
       end record;
 
@@ -865,9 +866,4 @@
    );
 
-   procedure Task_Is_Suspended (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   );
-
    procedure Task_Set_Priority (
       ID           : in     RTEMS.ID;
@@ -919,17 +915,24 @@
    );
 
-   function Interrupt_Disable
-   return RTEMS.ISR_Level;
+   function Interrupt_Disable return RTEMS.ISR_Level;
+   pragma Interface (C, Interrupt_Disable);
+   pragma Interface_Name (Interrupt_Disable, "rtems_interrupt_disable");
 
    procedure Interrupt_Enable (
       Level : in     RTEMS.ISR_Level
    );
+   pragma Interface (C, Interrupt_Enable);
+   pragma Interface_Name (Interrupt_Enable, "rtems_interrupt_enable");
 
    procedure Interrupt_Flash (
       Level : in     RTEMS.ISR_Level
    );
-
-   function Interrupt_Is_In_Progress
-   return RTEMS.Boolean;
+   pragma Interface (C, Interrupt_Flash);
+   pragma Interface_Name (Interrupt_Flash, "rtems_interrupt_flash");
+
+   function Interrupt_Is_In_Progress return RTEMS.Boolean;
+   pragma Interface (C, Interrupt_Is_In_Progress);
+   pragma Interface_Name
+     (Interrupt_Is_In_Progress, "rtems_interrupt_is_in_progress");
 
    --
@@ -1004,4 +1007,12 @@
    );
 
+   procedure Timer_Server_Fire_After (
+      ID        : in     RTEMS.ID;
+      Ticks     : in     RTEMS.Interval;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   );
+
    procedure Timer_Fire_When (
       ID        : in     RTEMS.ID;
@@ -1012,4 +1023,12 @@
    );
 
+   procedure Timer_Server_Fire_When (
+      ID        : in     RTEMS.ID;
+      Wall_Time : in     RTEMS.Time_Of_Day;
+      Routine   : in     RTEMS.Timer_Service_Routine;
+      User_Data : in     RTEMS.Address;
+      Result    :    out RTEMS.Status_Codes
+   );
+
    procedure Timer_Reset (
       ID     : in     RTEMS.ID;
@@ -1020,4 +1039,11 @@
       ID     : in     RTEMS.ID;
       Result :    out RTEMS.Status_Codes
+   );
+
+   procedure Timer_Initiate_Server (
+      Server_Priority : in     RTEMS.Task_Priority;
+      Stack_Size      : in     Unsigned32;
+      Attribute_Set   : in     RTEMS.Attribute;
+      Result          :    out RTEMS.Status_Codes
    );
 
@@ -1059,8 +1085,4 @@
    );
 
-   procedure Semaphore_Flush (
-      ID     : in     RTEMS.ID;
-      Result :    out RTEMS.Status_Codes
-   );
 
    --
@@ -1402,10 +1424,4 @@
    );
 
-   --
-   --  Multiprocessing Manager
-   --
-
-   procedure Multiprocessing_Announce;
-
 
    --
@@ -1435,5 +1451,3 @@
   pragma Import (C, Configuration, "_Configuration_Table");
 
-
-private
 end RTEMS;
