Index: doc/ChangeLog
===================================================================
--- doc/ChangeLog	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/ChangeLog	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -1,2 +1,10 @@
+2007-11-28	Glenn Humphrey <glenn.humphrey@OARcorp.com>
+
+	* user/barrier.t, user/clock.t, user/concepts.t, user/conf.t,
+	user/datatypes.t, user/dpmem.t, user/fatal.t, user/init.t, user/mp.t,
+	user/msg.t, user/part.t, user/region.t, user/rtmon.t, user/sem.t,
+	user/task.t, user/timer.t: Corrected various errors in the
+	documentation.
+
 2007-11-27	Joel Sherrill <joel.sherrill@OARcorp.com>
 
Index: doc/user/barrier.t
===================================================================
--- doc/user/barrier.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/barrier.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -367,5 +367,4 @@
 rtems_status_code rtems_barrier_wait(
   rtems_id         id,
-  rtems_unsigned32 option_set,
   rtems_interval   timeout
 );
@@ -377,5 +376,4 @@
 procedure Barrier_Wait (
    ID         : in     RTEMS.ID;
-   Option_Set : in     RTEMS.Option;
    Timeout    : in     RTEMS.Interval;
    Result     :    out RTEMS.Status_Codes
@@ -443,5 +441,6 @@
 @example
 rtems_status_code rtems_barrier_release(
-  rtems_id id
+  rtems_id  id,
+  uint32_t *released
 );
 @end example
@@ -451,6 +450,7 @@
 @example
 procedure Barrier_Release (
-   ID     : in     RTEMS.ID;
-   Result :    out RTEMS.Status_Codes
+   ID       : in     RTEMS.ID;
+   Released :    out RTEMS.Unsigned32;
+   Result   :    out RTEMS.Status_Codes
 );
 @end example
Index: doc/user/clock.t
===================================================================
--- doc/user/clock.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/clock.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -50,11 +50,11 @@
 @example
 struct rtems_tod_control @{
-  rtems_unsigned32 year;   /* greater than 1987 */
-  rtems_unsigned32 month;  /* 1 - 12 */
-  rtems_unsigned32 day;    /* 1 - 31 */
-  rtems_unsigned32 hour;   /* 0 - 23 */
-  rtems_unsigned32 minute; /* 0 - 59 */
-  rtems_unsigned32 second; /* 0 - 59 */
-  rtems_unsigned32 ticks;  /* elapsed between seconds */
+  uint32_t year;   /* greater than 1987 */
+  uint32_t month;  /* 1 - 12 */
+  uint32_t day;    /* 1 - 31 */
+  uint32_t hour;   /* 0 - 23 */
+  uint32_t minute; /* 0 - 59 */
+  uint32_t second; /* 0 - 59 */
+  uint32_t ticks;  /* elapsed between seconds */
 @};
 
@@ -91,6 +91,6 @@
 @group
 typedef struct @{
-  rtems_unsigned32 seconds;       /* seconds since RTEMS epoch*/
-  rtems_unsigned32 microseconds;  /* since last second        */
+  uint32_t seconds;       /* seconds since RTEMS epoch*/
+  uint32_t microseconds;  /* since last second        */
 @} rtems_clock_time_value;
 @end group
Index: doc/user/concepts.t
===================================================================
--- doc/user/concepts.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/concepts.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -245,7 +245,7 @@
 
 @example
-rtems_unsigned32 rtems_get_class( rtems_id );
-rtems_unsigned32 rtems_get_node( rtems_id );
-rtems_unsigned32 rtems_get_index( rtems_id );
+uint32_t rtems_get_class( rtems_id );
+uint32_t rtems_get_node( rtems_id );
+uint32_t rtems_get_index( rtems_id );
 @end example
 
Index: doc/user/conf.t
===================================================================
--- doc/user/conf.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/conf.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -40,4 +40,12 @@
 mechanism to automate the generation of these structures.
 
+@ifset is-Ada
+System configuration is ALWAYS done from C.  When developing
+an Ada application, the user is responsible for creating at
+least one C file which contains the Ada run-time initialization
+and the RTEMS System Configuration.  There is no Ada binding
+for RTEMS System Configuration information.  Thus all examples
+and data structures shown in this chapter are in C.
+@end ifset
 
 @section Automatic Generation of System Configuration
@@ -719,58 +727,28 @@
 configure the number of device drivers or which APIs may be used.
 THe address of the user-defined Configuration Table is passed as an
-argument to the @code{@value{DIRPREFIX}initialize_executive}
+argument to the @code{rtems_initialize_executive}
 directive, which MUST be the first RTEMS directive called.  
-The RTEMS Configuration Table
-is defined in the following @value{LANGUAGE} @value{STRUCTURE}:
-
-@ifset is-C
+The RTEMS Configuration Table is defined in the following C structure:
+
 @findex rtems_configuration_table
 @example
 @group
 typedef struct @{
-  void                             *work_space_start;
-  rtems_unsigned32                  work_space_size;
-  rtems_unsigned32                  maximum_extensions;
-  rtems_unsigned32                  microseconds_per_tick;
-  rtems_unsigned32                  ticks_per_timeslice;
-  rtems_unsigned32                  maximum_drivers;
-  rtems_unsigned32                  number_of_device_drivers;
-  rtems_driver_address_table       *Device_driver_table;
-  rtems_unsigned32                  number_of_initial_extensions;
-  rtems_extensions_table           *User_extension_table;
-  rtems_multiprocessing_table      *User_multiprocessing_table;
-  rtems_api_configuration_table    *RTEMS_api_configuration;
-  posix_api_configuration_table    *POSIX_api_configuration;
+  void                           *work_space_start;
+  uint32_t                        work_space_size;
+  uint32_t                        maximum_extensions;
+  uint32_t                        microseconds_per_tick;
+  uint32_t                        ticks_per_timeslice;
+  uint32_t                        maximum_drivers;
+  uint32_t                        number_of_device_drivers;
+  rtems_driver_address_table     *Device_driver_table;
+  uint32_t                        number_of_initial_extensions;
+  rtems_extensions_table         *User_extension_table;
+  rtems_multiprocessing_table    *User_multiprocessing_table;
+  rtems_api_configuration_table  *RTEMS_api_configuration;
+  posix_api_configuration_table  *POSIX_api_configuration;
 @} rtems_configuration_table;
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-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;
-   end record;
-
-type Configuration_Table_Pointer is access all Configuration_Table;
-@end example
-@end ifset
 
 @table @b
@@ -781,5 +759,5 @@
 If the address is not aligned on a four-word boundary, then
 RTEMS will invoke the fatal error handler during
-@code{@value{DIRPREFIX}initialize_executive}.
+@code{rtems_initialize_executive}.
 When using the @code{rtems/confdefs.h} mechanism for configuring
 an RTEMS application, the value for this field corresponds
@@ -934,47 +912,24 @@
 For example, the user can configure the maximum number of tasks for 
 this application. The RTEMS API Configuration Table is defined in 
-the following @value{LANGUAGE} @value{STRUCTURE}:
-
-@ifset is-C
+the following C structure:
+
 @findex rtems_api_configuration_table
 @example
 @group
 typedef struct @{
-  rtems_unsigned32                  maximum_tasks;
-  rtems_unsigned32                  maximum_timers;
-  rtems_unsigned32                  maximum_semaphores;
-  rtems_unsigned32                  maximum_message_queues;
-  rtems_unsigned32                  maximum_partitions;
-  rtems_unsigned32                  maximum_regions;
-  rtems_unsigned32                  maximum_ports;
-  rtems_unsigned32                  maximum_periods;
-  rtems_unsigned32                  number_of_initialization_tasks;
+  uint32_t  maximum_tasks;
+  uint32_t  maximum_timers;
+  uint32_t  maximum_semaphores;
+  uint32_t  maximum_message_queues;
+  uint32_t  maximum_partitions;
+  uint32_t  maximum_regions;
+  uint32_t  maximum_ports;
+  uint32_t  maximum_periods;
+  uint32_t  maximum_barriers;
+  uint32_t  number_of_initialization_tasks;
   rtems_initialization_tasks_table *User_initialization_tasks_table;
 @} rtems_api_configuration_table;
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type API_Configuration_Table is
-   record
-      Maximum_Tasks                   : RTEMS.Unsigned32;
-      Maximum_Timers                  : RTEMS.Unsigned32;
-      Maximum_Semaphores              : RTEMS.Unsigned32;
-      Maximum_Message_queues          : RTEMS.Unsigned32;
-      Maximum_Partitions              : RTEMS.Unsigned32;
-      Maximum_Regions                 : RTEMS.Unsigned32;
-      Maximum_Ports                   : RTEMS.Unsigned32;
-      Maximum_Periods                 : RTEMS.Unsigned32;
-      Number_Of_Initialization_Tasks  : RTEMS.Unsigned32;
-      User_Initialization_Tasks_Table :
-           RTEMS.Initialization_Tasks_Table_Pointer;
-   end record;
-
-type API_Configuration_Table_Pointer is
-           access all API_Configuration_Table;
-@end example
-@end ifset
 
 @table @b
@@ -1113,7 +1068,6 @@
 For example, the user can configure the maximum number of threads for
 this application. The POSIX API Configuration Table is defined in
-the following @value{LANGUAGE} @value{STRUCTURE}:
+the following C structure:
  
-@ifset is-C
 @findex posix_initialization_threads_table
 @findex posix_api_configuration_table
@@ -1131,4 +1085,9 @@
   int                                 maximum_timers;
   int                                 maximum_queued_signals;
+  int                                 maximum_message_queues;
+  int                                 maximum_semaphores;
+  int                                 maximum_barriers;
+  int                                 maximum_rwlocks;
+  int                                 maximum_spinlocks;
   int                                 number_of_initialization_tasks;
   posix_initialization_threads_table *User_initialization_tasks_table;
@@ -1136,45 +1095,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-   type POSIX_Thread_Entry is access procedure (
-      Argument : in     RTEMS.Address
-   );
-
-   type POSIX_Initialization_Threads_Table_Entry is
-   record
-      Thread_Entry : RTEMS.POSIX_Thread_Entry;
-   end record;
-
-   type POSIX_Initialization_Threads_Table is array
-       ( RTEMS.Unsigned32 range <> ) of 
-       RTEMS.POSIX_Initialization_Threads_Table_Entry;
-
-   type POSIX_Initialization_Threads_Table_Pointer is access all
-       POSIX_Initialization_Threads_Table; 
-
-   type POSIX_API_Configuration_Table_Entry is
-      record
-         Maximum_Threads                 : Interfaces.C.Int;
-         Maximum_Mutexes                 : Interfaces.C.Int;
-         Maximum_Condition_Variables     : Interfaces.C.Int;
-         Maximum_Keys                    : Interfaces.C.Int;
-         Maximum_Timers                  : Interfaces.C.Int;
-         Maximum_Queued_Signals          : Interfaces.C.Int;
-         Number_Of_Initialization_Tasks  : Interfaces.C.Int;
-         User_Initialization_Tasks_Table : 
-            RTEMS.POSIX_Initialization_Threads_Table_Pointer;
-      end record;
-
-   type POSIX_API_Configuration_Table is array
-      ( RTEMS.Unsigned32 range <> ) of
-          RTEMS.POSIX_API_Configuration_Table_Entry;
-
-   type POSIX_API_Configuration_Table_Pointer is access all
-          RTEMS.POSIX_API_Configuration_Table;
-@end example
-@end ifset
  
 @table @b
@@ -1261,5 +1179,5 @@
 information needed to create and start each of the initialization threads.  
 The format of each entry in this table is defined in the 
-@code{posix_initialization_threads_table} @value{STRUCTURE}.
+@code{posix_initialization_threads_table} structure.
 When using the @code{rtems/confdefs.h} mechanism for configuring
 an RTEMS application, the value for this field corresponds
@@ -1298,13 +1216,11 @@
 
 The format of each entry in the
-Initialization Task Table is defined in the following @value{LANGUAGE}
-@value{STRUCTURE}:
-
-@ifset is-C
+Initialization Task Table is defined in the following C structure:
+
 @findex rtems_initialization_tasks_table
 @example
 typedef struct @{
   rtems_name           name;
-  rtems_unsigned32     stack_size;
+  size_t               stack_size;
   rtems_task_priority  initial_priority;
   rtems_attribute      attribute_set;
@@ -1314,27 +1230,4 @@
 @} rtems_initialization_tasks_table;
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type Initialization_Tasks_Table_Entry is
-   record
-      Name             : RTEMS.Name;          -- task name
-      Stack_Size       : RTEMS.Unsigned32;    -- task stack size
-      Initial_Priority : RTEMS.Task_priority; -- task priority
-      Attribute_Set    : RTEMS.Attribute;     -- task attributes
-      Entry_Point      : RTEMS.Task_Entry;    -- task entry point
-      Mode_Set         : RTEMS.Mode;          -- task initial mode
-      Argument         : RTEMS.Unsigned32;    -- task argument
-   end record;
-
-type Initialization_Tasks_Table is array
-    ( RTEMS.Unsigned32 range <> ) of
-      RTEMS.Initialization_Tasks_Table_Entry;
-
-type Initialization_Tasks_Table_Pointer is access all
-     Initialization_Tasks_Table;
-@end example
-@end ifset
 
 @table @b
@@ -1364,5 +1257,4 @@
 A typical declaration for an Initialization Task Table might appear as follows:
 
-@ifset is-C
 @example
 rtems_initialization_tasks_table
@@ -1388,27 +1280,4 @@
 @};
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-Initialization_Tasks : aliased
-  RTEMS.Initialization_Tasks_Table( 1 .. 2 ) := (
-   (INIT_1_NAME,
-    1024,
-    1,
-    RTEMS.Default_Attributes,
-    Init_1'Access,
-    RTEMS.Default_Modes,
-    1),
-   (INIT_2_NAME,
-    1024,
-    250,
-    RTEMS.Floating_Point,
-    Init_2'Access,
-    RTEMS.No_Preempt,
-    2)
-);
-@end example
-@end ifset
 
 @section Driver Address Table
@@ -1423,60 +1292,38 @@
 Table during the IO Manager's initialization giving the entries in this
 table the lower major numbers.  The format of each entry in the Device
-Driver Table is defined in the following @value{LANGUAGE}
-@value{STRUCTURE}:
-
-@ifset is-C
+Driver Table is defined in the following C structure:
+
 @findex rtems_driver_address_table
 @example
 typedef struct @{
-  rtems_device_driver_entry initialization;
-  rtems_device_driver_entry open;
-  rtems_device_driver_entry close;
-  rtems_device_driver_entry read;
-  rtems_device_driver_entry write;
-  rtems_device_driver_entry control;
+  rtems_device_driver_entry initialization_entry;
+  rtems_device_driver_entry open_entry;
+  rtems_device_driver_entry close_entry;
+  rtems_device_driver_entry read_entry;
+  rtems_device_driver_entry write_entry;
+  rtems_device_driver_entry control_entry;
 @} rtems_driver_address_table;
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type Driver_Address_Table_Entry is
-   record
-      Initialization : RTEMS.Device_Driver_Entry;
-      Open           : RTEMS.Device_Driver_Entry;
-      Close          : RTEMS.Device_Driver_Entry;
-      Read           : RTEMS.Device_Driver_Entry;
-      Write          : RTEMS.Device_Driver_Entry;
-      Control        : RTEMS.Device_Driver_Entry;
-   end record;
-
-type Driver_Address_Table is array ( RTEMS.Unsigned32 range <> ) of
-  RTEMS.Driver_Address_Table_Entry;
-
-type Driver_Address_Table_Pointer is access all Driver_Address_Table;
-@end example
-@end ifset
 
 @table @b
-@item initialization
+@item initialization_entry
 is the address of the entry point called by
-@code{@value{DIRPREFIX}io_initialize}
+@code{rtems_io_initialize}
 to initialize a device driver and its associated devices.
 
-@item open
-is the address of the entry point called by @code{@value{DIRPREFIX}io_open}.
-
-@item close
-is the address of the entry point called by @code{@value{DIRPREFIX}io_close}.
-
-@item read
-is the address of the entry point called by @code{@value{DIRPREFIX}io_read}.
-
-@item write
-is the address of the entry point called by @code{@value{DIRPREFIX}io_write}.
-
-@item control
-is the address of the entry point called by @code{@value{DIRPREFIX}io_control}.
+@item open_entry
+is the address of the entry point called by @code{rtems_io_open}.
+
+@item close_entry
+is the address of the entry point called by @code{rtems_io_close}.
+
+@item read_entry
+is the address of the entry point called by @code{rtems_io_read}.
+
+@item write_entry
+is the address of the entry point called by @code{rtems_io_write}.
+
+@item control_entry
+is the address of the entry point called by @code{rtems_io_control}.
 
 @end table
@@ -1488,5 +1335,4 @@
 A typical declaration for a Device Driver Table might appear as follows:
 
-@ifset is-C
 @example
 rtems_driver_address_table Driver_table[2] = @{
@@ -1499,10 +1345,4 @@
 @};
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-@end example
-@end ifset
 
 More information regarding the construction and
@@ -1520,27 +1360,39 @@
 individual tasks.  The application may create dynamic extensions
 in addition to this single static set.  The format of each entry
-in the User Extensions Table is defined in the following @value{LANGUAGE}
-@value{STRUCTURE}:
-
-@ifset is-C
+in the User Extensions Table is defined in the following C structure:
+
 @example
-typedef User_extensions_routine           rtems_extension;
-typedef User_extensions_thread_create_extension   
-           rtems_task_create_extension;
-typedef User_extensions_thread_delete_extension   
-           rtems_task_delete_extension;
-typedef User_extensions_thread_start_extension    
-           rtems_task_start_extension;
-typedef User_extensions_thread_restart_extension  
-           rtems_task_restart_extension;
-typedef User_extensions_thread_switch_extension   
-           rtems_task_switch_extension;
-typedef User_extensions_thread_begin_extension    
-           rtems_task_begin_extension;
-typedef User_extensions_thread_exitted_extension  
-           rtems_task_exitted_extension;
-typedef User_extensions_fatal_extension   rtems_fatal_extension;
-
-typedef User_extensions_Table             rtems_extensions_table;
+typedef void           rtems_extension;
+typedef rtems_extension (*rtems_task_create_extension)(
+   Thread_Control * /* executing */,
+   Thread_Control * /* created */
+);
+typedef rtems_extension (*rtems_task_delete_extension)(
+   Thread_Control * /* executing */,
+   Thread_Control * /* deleted */
+);
+typedef rtems_extension (*rtems_task_start_extension)(
+   Thread_Control * /* executing */,
+   Thread_Control * /* started */
+);
+typedef rtems_extension (*rtems_task_restart_extension)(
+   Thread_Control * /* executing */,
+   Thread_Control * /* restarted */
+);
+typedef rtems_extension (*rtems_task_switch_extension)(
+   Thread_Control * /* executing */,
+   Thread_Control * /* heir */
+);
+typedef rtems_extension (*rtems_task_begin_extension)(
+   Thread_Control * /* beginning */
+);
+typedef rtems_extension (*rtems_task_exitted_extension)(
+   Thread_Control * /* exiting */
+);
+typedef rtems_extension (*rtems_fatal_extension)(
+   Internal_errors_Source /* the_source */,
+   boolean                /* is_internal */,
+   uint32_t               /* the_error */
+);
 
 typedef struct @{
@@ -1553,24 +1405,6 @@
   rtems_task_exitted_extension     thread_exitted;
   rtems_fatal_extension            fatal;
-@} User_extensions_Table;
+@} rtems_extensions_table;
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type Extensions_Table_Entry is
-   record
-      Thread_Create      : RTEMS.Thread_Create_Extension;
-      Thread_Start       : RTEMS.Thread_Start_Extension;
-      Thread_Restart     : RTEMS.Thread_Restart_Extension;
-      Thread_Delete      : RTEMS.Thread_Delete_Extension;
-      Thread_Switch      : RTEMS.Thread_Switch_Extension;
-      Thread_Post_Switch : RTEMS.Thread_Post_Switch_Extension;
-      Thread_Begin       : RTEMS.Thread_Begin_Extension;
-      Thread_Exitted     : RTEMS.Thread_Exitted_Extension;
-      Fatal            : RTEMS.Fatal_Error_Extension;
-   end record;
-@end example
-@end ifset
 
 @table @b
@@ -1644,5 +1478,4 @@
 FATAL extension might appear as follows:
 
-@ifset is-C
 @example
 rtems_extensions_table User_extensions = @{
@@ -1657,21 +1490,4 @@
 @};
 @end example
-@end ifset
-
-@ifset is-Ada
-User_Extensions : RTEMS.Extensions_Table := (
-   Task_Create_Extension'Access,
-   null,
-   null,
-   Task_Delete_Extension'Access,
-   Task_Switch_Extension'Access,
-   null,
-   null,
-   Fatal_Extension'Access
-);
-@example
-
-@end example
-@end ifset
 
 More information regarding the user extensions is
@@ -1701,32 +1517,15 @@
 
 The format of the Multiprocessor Configuration Table is defined in 
-the following @value{LANGUAGE} @value{STRUCTURE}:
-
-@ifset is-C
+the following C structure:
+
 @example
 typedef struct @{
-  rtems_unsigned32  node;
-  rtems_unsigned32  maximum_nodes;
-  rtems_unsigned32  maximum_global_objects;
-  rtems_unsigned32  maximum_proxies;
+  uint32_t          node;
+  uint32_t          maximum_nodes;
+  uint32_t          maximum_global_objects;
+  uint32_t          maximum_proxies;
   rtems_mpci_table *User_mpci_table;
 @} rtems_multiprocessing_table;
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type Multiprocessing_Table is
-   record
-      Node                   : RTEMS.Unsigned32;
-      Maximum_Nodes          : RTEMS.Unsigned32;
-      Maximum_Global_Objects : RTEMS.Unsigned32;
-      Maximum_Proxies        : RTEMS.Unsigned32;
-      User_MPCI_Table        : RTEMS.MPCI_Table_Pointer;
-   end record;
-
-type Multiprocessing_Table_Pointer is access all Multiprocessing_Table;
-@end example
-@end ifset
 
 @table @b
@@ -1815,36 +1614,17 @@
 
 The format of this table is defined in 
-the following @value{LANGUAGE} @value{STRUCTURE}:
-
-@ifset is-C
+the following C structure:
+
 @example
 typedef struct @{
-  rtems_unsigned32                 default_timeout; /* in ticks */
-  rtems_unsigned32                 maximum_packet_size;
+  uint32_t                        default_timeout; /* in ticks */
+  uint32_t                        maximum_packet_size;
   rtems_mpci_initialization_entry initialization;
   rtems_mpci_get_packet_entry     get_packet;
   rtems_mpci_return_packet_entry  return_packet;
-  rtems_mpci_send_entry           send;
-  rtems_mpci_receive_entry        receive;
+  rtems_mpci_send_entry           send_packet;
+  rtems_mpci_receive_entry        receive_packet;
 @} rtems_mpci_table;
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-type MPCI_Table is
-   record
-      Default_Timeout     : RTEMS.Unsigned32; -- in ticks
-      Maximum_Packet_Size : RTEMS.Unsigned32;
-      Initialization      : RTEMS.MPCI_Initialization_Entry;
-      Get_Packet          : RTEMS.MPCI_Get_Packet_Entry;
-      Return_Packet       : RTEMS.MPCI_Return_Packet_Entry;
-      Send                : RTEMS.MPCI_Send_Entry;
-      Receive             : RTEMS.MPCI_Receive_Entry;
-   end record;
-
-type MPCI_Table_Pointer is access all MPCI_Table;
-@end example
-@end ifset
 
 @table @b
Index: doc/user/datatypes.t
===================================================================
--- doc/user/datatypes.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/datatypes.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -281,28 +281,4 @@
 entry point of the function implementing the TSR.
 
-@findex rtems_unsigned8
-@item @code{@value{DIRPREFIX}unsigned8} is the data
-type that corresponds to unsigned eight bit integers.
-This data type is defined by RTEMS in a manner that
-ensures it is portable across different target processors.
-
-@findex rtems_unsigned16
-@item @code{@value{DIRPREFIX}unsigned16} is the data
-type that corresponds to unsigned sixteen bit integers.
-This data type is defined by RTEMS in a manner that
-ensures it is portable across different target processors.
-
-@findex rtems_unsigned32
-@item @code{@value{DIRPREFIX}unsigned32} is the data
-type that corresponds to unsigned thirty-two bit integers.
-This data type is defined by RTEMS in a manner that
-ensures it is portable across different target processors.
-
-@findex rtems_unsigned64
-@item @code{@value{DIRPREFIX}unsigned64} is the data
-type that corresponds to unsigned sixty-four bit integers.
-This data type is defined by RTEMS in a manner that
-ensures it is portable across different target processors.
-
 @findex rtems_vector_number
 @item @code{@value{DIRPREFIX}vector_number} is the data
Index: doc/user/dpmem.t
===================================================================
--- doc/user/dpmem.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/dpmem.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -114,9 +114,9 @@
 @example
 rtems_status_code rtems_port_create(
-  rtems_name        name,
-  void             *internal_start,
-  void             *external_start,
-  rtems_unsigned32  length,
-  rtems_id         *id
+  rtems_name  name,
+  void       *internal_start,
+  void       *external_start,
+  uint32_t    length,
+  rtems_id   *id
 );
 @end example
Index: doc/user/fatal.t
===================================================================
--- doc/user/fatal.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/fatal.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -134,5 +134,5 @@
 @example
 void volatile rtems_fatal_error_occurred(
-  rtems_unsigned32        the_error
+  uint32_t  the_error
 );
 @end example
Index: doc/user/init.t
===================================================================
--- doc/user/init.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/init.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -315,13 +315,13 @@
 @findex rtems_initialize_executive_late
 @example
+void rtems_initialize_executive_late(
+  rtems_interrupt_level bsp_level
+);
+@end example
+@end ifset
+
+@ifset is-Ada
+@example
 NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
-
-@ifset is-Ada
-@example
-procedure Initialize_Executive_Late(
-  BSP_Level : in    RTEMS.ISR_Level
-);
 @end example
 @end ifset
@@ -374,5 +374,5 @@
 @example
 void rtems_shutdown_executive(
-  rtems_unsigned32 result
+  uint32_t result
 );
 @end example
Index: doc/user/mp.t
===================================================================
--- doc/user/mp.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/mp.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -44,4 +44,15 @@
 software, to be viewed logically as a single system.
 
+@ifset is-Ada
+Multiprocessing operations are transparent at the application level.
+Operations on remote objects are implicitly processed as remote
+procedure calls.  Although remote operations on objects are supported
+from Ada tasks, the calls used to support the multiprocessing
+communications should be implemented in C and are not supported
+in the Ada binding.  Since there is no Ada binding for RTEMS
+multiprocessing support services, all examples and data structures
+shown in this chapter are in C.
+@end ifset
+
 @section Background
 
@@ -178,5 +189,5 @@
 @item The MPCI layer on the destination node senses the
 arrival of a packet (commonly in an ISR), and calls the
-@code{@value{DIRPREFIX}multiprocessing_announce}
+@code{rtems_multiprocessing_announce}
 directive.  This directive readies the Multiprocessing Server.
 
@@ -187,5 +198,5 @@
 @item The MPCI layer on the originating node senses the
 arrival of a packet (typically via an interrupt), and calls the RTEMS
-@code{@value{DIRPREFIX}multiprocessing_announce} directive.  This directive
+@code{rtems_multiprocessing_announce} directive.  This directive
 readies the Multiprocessing Server.
 
@@ -285,5 +296,5 @@
 real-time clock ISR can check for the arrival of a packet.  In
 any case, the 
-@code{@value{DIRPREFIX}multiprocessing_announce} directive must be called
+@code{rtems_multiprocessing_announce} directive must be called
 to announce the arrival of a packet.  After exiting the ISR,
 control will be passed to the Multiprocessing Server to process
@@ -295,5 +306,5 @@
 
 The INITIALIZATION component of the user-provided
-MPCI layer is called as part of the @code{@value{DIRPREFIX}initialize_executive}
+MPCI layer is called as part of the @code{rtems_initialize_executive}
 directive to initialize the MPCI layer and associated hardware.
 It is invoked immediately after all of the device drivers have
@@ -301,5 +312,4 @@
 following prototype:
 
-@ifset is-C
 @findex rtems_mpci_entry
 @example
@@ -310,11 +320,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 where configuration is the address of the user's
@@ -338,5 +341,4 @@
 following prototype:
 
-@ifset is-C
 @example
 @group
@@ -346,11 +348,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 where packet is the address of a pointer to a packet.
@@ -373,5 +368,4 @@
 following prototype:
 
-@ifset is-C
 @example
 @group
@@ -381,11 +375,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 where packet is the address of a packet.  If the
@@ -400,5 +387,4 @@
 following prototype:
 
-@ifset is-C
 @example
 @group
@@ -408,11 +394,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 where packet is a pointer to the address of a packet
@@ -429,5 +408,4 @@
 following prototype:
 
-@ifset is-C
 @example
 @group
@@ -438,11 +416,4 @@
 @end group
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 where node is the node number of the destination and packet is the 
@@ -458,10 +429,10 @@
 @c XXX packet_prefix structure needs to be defined in this document
 Many MPCI layers use the @code{packet_length} field of the
-@code{@value{DIRPREFIX}packet_prefix} portion
+@code{rtems_packet_prefix} portion
 of the packet to avoid sending unnecessary data.  This is especially 
 useful if the media connecting the nodes is relatively slow.
 
 The to_convert field of the MP_packet_prefix portion of the packet indicates
-how much of the packet (in @code{@value{DIRPREFIX}unsigned32}'s) may require
+how much of the packet (in @code{rtems_unsigned32}'s) may require
 conversion in a heterogeneous system.
 
@@ -554,5 +525,5 @@
 @subsection Announcing a Packet
 
-The @code{@value{DIRPREFIX}multiprocessing_announce} directive is called by
+The @code{rtems_multiprocessing_announce} directive is called by
 the MPCI layer to inform RTEMS that a packet has arrived from
 another node.  This directive can be called from an interrupt
@@ -577,16 +548,8 @@
 @subheading CALLING SEQUENCE:
 
-@ifset is-C
 @findex rtems_multiprocessing_announce
 @example
 void rtems_multiprocessing_announce( void );
 @end example
-@end ifset
-
-@ifset is-Ada
-@example
-NOT SUPPORTED FROM Ada BINDING
-@end example
-@end ifset
 
 @subheading DIRECTIVE STATUS CODES:
Index: doc/user/msg.t
===================================================================
--- doc/user/msg.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/msg.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -232,6 +232,6 @@
 rtems_status_code rtems_message_queue_create(
   rtems_name        name,
-  rtems_unsigned32  count,
-  rtems_unsigned32  max_message_size,
+  uint32_t          count,
+  uint32_t          max_message_size,
   rtems_attribute   attribute_set,
   rtems_id         *id
@@ -324,7 +324,7 @@
 @example
 rtems_status_code rtems_message_queue_ident(
-  rtems_name        name,
-  rtems_unsigned32  node,
-  rtems_id         *id
+  rtems_name  name,
+  uint32_t    node,
+  rtems_id   *id
 );
 @end example
@@ -455,7 +455,7 @@
 @example
 rtems_status_code rtems_message_queue_send(
-  rtems_id           id,
-  void              *buffer,
-  rtems_unsigned32   size
+  rtems_id  id,
+  void     *buffer,
+  size_t    size
 );
 @end example
@@ -520,7 +520,7 @@
 @example
 rtems_status_code rtems_message_queue_urgent(
-  rtems_id           id,
-  void              *buffer,
-  rtems_unsigned32   size
+  rtems_id  id,
+  void     *buffer,
+  size_t    size
 );
 @end example
@@ -586,8 +586,8 @@
 @example
 rtems_status_code rtems_message_queue_broadcast(
-  rtems_id           id,
-  void              *buffer,
-  rtems_unsigned32   size,
-  rtems_unsigned32  *count
+  rtems_id  id,
+  void     *buffer,
+  size_t    size,
+  uint32_t *count
 );
 @end example
@@ -657,9 +657,9 @@
 @example
 rtems_status_code rtems_message_queue_receive(
-  rtems_id           id,
-  void              *buffer,
-  rtems_unsigned32  *size,
-  rtems_unsigned32   option_set,
-  rtems_interval     timeout
+  rtems_id        id,
+  void           *buffer,
+  size_t         *size,
+  uint32_t        option_set,
+  rtems_interval  timeout
 );
 @end example
@@ -751,6 +751,6 @@
 @example
 rtems_status_code rtems_message_queue_get_number_pending(
-  rtems_id          id,
-  rtems_unsigned32 *count
+  rtems_id  id,
+  uint32_t *count
 );
 @end example
@@ -800,6 +800,6 @@
 @example
 rtems_status_code rtems_message_queue_flush(
-  rtems_id          id,
-  rtems_unsigned32 *count
+  rtems_id  id,
+  uint32_t *count
 );
 @end example
Index: doc/user/part.t
===================================================================
--- doc/user/part.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/part.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -145,10 +145,10 @@
 @example
 rtems_status_code rtems_partition_create(
-  rtems_name        name,
-  void             *starting_address,
-  rtems_unsigned32  length,
-  rtems_unsigned32  buffer_size,
-  rtems_attribute   attribute_set,
-  rtems_id         *id
+  rtems_name       name,
+  void            *starting_address,
+  uint32_t         length,
+  uint32_t         buffer_size,
+  rtems_attribute  attribute_set,
+  rtems_id        *id
 );
 @end example
@@ -240,7 +240,7 @@
 @example
 rtems_status_code rtems_partition_ident(
-  rtems_name        name,
-  rtems_unsigned32  node,
-  rtems_id         *id
+  rtems_name  name,
+  uint32_t    node,
+  rtems_id   *id
 );
 @end example
Index: doc/user/region.t
===================================================================
--- doc/user/region.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/region.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -246,10 +246,10 @@
 @example
 rtems_status_code rtems_region_create(
-  rtems_name        name,
-  void             *starting_address,
-  rtems_unsigned32  length,
-  rtems_unsigned32  page_size,
-  rtems_attribute   attribute_set,
-  rtems_id         *id
+  rtems_name       name,
+  void            *starting_address,
+  uint32_t         length,
+  uint32_t         page_size,
+  rtems_attribute  attribute_set,
+  rtems_id        *id
 );
 @end example
@@ -432,7 +432,7 @@
 @example
 rtems_status_code rtems_region_extend(
-  rtems_id            id,
-  void               *starting_address,
-  rtems_unsigned32    length
+  rtems_id  id,
+  void     *starting_address,
+  uint32_t  length
 );
 @end example
@@ -484,9 +484,9 @@
 @example
 rtems_status_code rtems_region_get_segment(
-  rtems_id            id,
-  rtems_unsigned32    size,
-  rtems_option        option_set,
-  rtems_interval      timeout,
-  void              **segment
+  rtems_id         id,
+  uint32_t         size,
+  rtems_option     option_set,
+  rtems_interval   timeout,
+  void           **segment
 );
 @end example
@@ -638,7 +638,7 @@
 @example
 rtems_status_code rtems_region_get_segment_size(
-  rtems_id            id,
-  void               *segment,
-  rtems_unsigned32   *size
+  rtems_id  id,
+  void     *segment,
+  size_t   *size
 );
 @end example
Index: doc/user/rtmon.t
===================================================================
--- doc/user/rtmon.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/rtmon.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -826,5 +826,4 @@
 @end example
 
-
 The above task creates a rate monotonic period as
 part of its initialization.  The first time the loop is
@@ -1227,7 +1226,16 @@
 @example
 typedef struct @{
+  rtems_id                            owner;
   rtems_rate_monotonic_period_states  state;
-  rtems_unsigned32                    ticks_since_last_period;
-  rtems_unsigned32                    ticks_executed_since_last_period;
+  #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS
+    struct timespec                   since_last_period;
+  #else
+    uint32_t                          ticks_since_last_period;
+  #endif
+  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
+    struct timespec                   executed_since_last_period;
+  #else
+    uint32_t                          ticks_executed_since_last_period;
+  #endif
 @}  rtems_rate_monotonic_period_status;
 @end example
@@ -1238,4 +1246,5 @@
 type Rate_Monotonic_Period_Status is
    begin
+      Owner                            : RTEMS.ID;
       State                            : RTEMS.Rate_Monotonic_Period_States;
       Ticks_Since_Last_Period          : RTEMS.Unsigned32;
@@ -1247,13 +1256,16 @@
 @c RATE_MONOTONIC_INACTIVE does not have RTEMS_ in front of it.
 
-If the period's state is @code{RATE_MONOTONIC_INACTIVE}, both
-ticks_since_last_period and ticks_executed_since_last_period 
-will be set to 0.  Otherwise, ticks_since_last_period will
-contain the number of clock ticks which have occurred since
-the last invocation of the
+A configure time option can be used to select whether the time information is
+given in ticks or seconds and nanoseconds.  The default is seconds and
+nanoseconds.  If the period's state is @code{RATE_MONOTONIC_INACTIVE}, both
+time values will be set to 0.  Otherwise, both time values will contain
+time information since the last invocation of the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive.  More
+specifically, the (ticks_)since_last_period value contains the elapsed time
+which has occurred since the last invocation of the
+@code{@value{DIRPREFIX}rate_monotonic_period} directive and the
+(ticks_)executed_since_last_period contains how much processor time the
+owning task has consumed since the invocation of the
 @code{@value{DIRPREFIX}rate_monotonic_period} directive.
-Also in this case, the ticks_executed_since_last_period will indicate
-how much processor time the owning task has consumed since the invocation
-of the @code{@value{DIRPREFIX}rate_monotonic_period} directive.
 
 @subheading NOTES:
@@ -1302,12 +1314,24 @@
 @example
 typedef struct @{
- uint32_t     count;           /* periods executed */
- uint32_t     missed_count;    /* period deadlines missed */
- uint32_t     min_cpu_time;    /* minimum CPU time used in a period */
- uint32_t     max_cpu_time;    /* maximum CPU time used in a period */
- uint32_t     total_cpu_time;  /* total CPU time consumed */
- uint32_t     min_wall_time;   /* minimum wall time used in a period */
- uint32_t     max_wall_time;   /* maximum wall time used in a period */
- uint32_t     total_wall_time; /* total wall time consumed */
+  uint32_t     count;
+  uint32_t     missed_count;
+  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
+    struct timespec min_cpu_time;
+    struct timespec max_cpu_time;
+    struct timespec total_cpu_time;
+  #else
+    uint32_t  min_cpu_time;
+    uint32_t  max_cpu_time;
+    uint32_t  total_cpu_time;
+  #endif
+  #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS
+    struct timespec min_wall_time;
+    struct timespec max_wall_time;
+    struct timespec total_wall_time;
+  #else
+    uint32_t  min_wall_time;
+    uint32_t  max_wall_time;
+    uint32_t  total_wall_time;
+  #endif
 @}  rtems_rate_monotonic_period_statistics;
 @end example
Index: doc/user/sem.t
===================================================================
--- doc/user/sem.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/sem.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -387,5 +387,5 @@
 rtems_status_code rtems_semaphore_create(
   rtems_name           name,
-  rtems_unsigned32     count,
+  uint32_t             count,
   rtems_attribute      attribute_set,
   rtems_task_priority  priority_ceiling,
@@ -500,7 +500,7 @@
 @example
 rtems_status_code rtems_semaphore_ident(
-  rtems_name        name,
-  rtems_unsigned32  node,
-  rtems_id         *id
+  rtems_name  name,
+  uint32_t    node,
+  rtems_id   *id
 );
 @end example
@@ -628,7 +628,7 @@
 @example
 rtems_status_code rtems_semaphore_obtain(
-  rtems_id         id,
-  rtems_unsigned32 option_set,
-  rtems_interval   timeout
+  rtems_id        id,
+  uint32_t        option_set,
+  rtems_interval  timeout
 );
 @end example
Index: doc/user/task.t
===================================================================
--- doc/user/task.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/task.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -690,5 +690,5 @@
   rtems_name           name,
   rtems_task_priority  initial_priority,
-  rtems_unsigned32     stack_size,
+  size_t               stack_size,
   rtems_mode           initial_modes,
   rtems_attribute      attribute_set,
@@ -802,7 +802,7 @@
 @example
 rtems_status_code rtems_task_ident(
-  rtems_name        name,
-  rtems_unsigned32  node,
-  rtems_id         *id
+  rtems_name  name,
+  uint32_t    node,
+  rtems_id   *id
 );
 @end example
@@ -1416,7 +1416,7 @@
 @example
 rtems_status_code rtems_task_get_note(
-  rtems_id          id,
-  rtems_unsigned32  notepad,
-  rtems_unsigned32 *note
+  rtems_id  id,
+  uint32_t  notepad,
+  uint32_t *note
 );
 @end example
@@ -1473,7 +1473,7 @@
 @example
 rtems_status_code rtems_task_set_note(
-  rtems_id         id,
-  rtems_unsigned32 notepad,
-  rtems_unsigned32 note
+  rtems_id  id,
+  uint32_t  notepad,
+  uint32_t  note
 );
 @end example
@@ -1562,5 +1562,5 @@
 
 The maximum timer interval that can be specified is the maximum
-value which can be represented by the rtems_unsigned32 type.
+value which can be represented by the uint32_t type.
 
 A clock tick is required to support the functionality of this directive.
Index: doc/user/timer.t
===================================================================
--- doc/user/timer.t	(revision 29925d9971c9384210611af424dd4128f241a843)
+++ doc/user/timer.t	(revision ae10dbd9b6f57da2e6b8e0cc098620f902cbfd32)
@@ -516,7 +516,7 @@
 @example
 rtems_status_code rtems_timer_initiate_server(
-  rtems_unsigned32     priority,
-  rtems_unsigned32     stack_size,
-  rtems_attribute      attribute_set
+  uint32_t         priority,
+  uint32_t         stack_size,
+  rtems_attribute  attribute_set
 )
 );
