summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Humphrey <glenn.humphrey@oarcorp.com>2007-11-28 16:25:29 +0000
committerGlenn Humphrey <glenn.humphrey@oarcorp.com>2007-11-28 16:25:29 +0000
commitf68a8bf3efe2eda69c0d53f80ada96bb8a87970f (patch)
treed959c74ad8f050849b29bf3b95088d0d9c23b49d
parent2007-11-27 Kate Feng <feng1@bnl.gov> (diff)
downloadrtems-f68a8bf3efe2eda69c0d53f80ada96bb8a87970f.tar.bz2
2007-11-28 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* 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.
-rw-r--r--doc/ChangeLog7
-rw-r--r--doc/user/clock.t18
-rw-r--r--doc/user/concepts.t6
-rw-r--r--doc/user/conf.t438
-rw-r--r--doc/user/datatypes.t24
-rw-r--r--doc/user/dpmem.t10
-rw-r--r--doc/user/fatal.t2
-rw-r--r--doc/user/init.t8
-rw-r--r--doc/user/mp.t77
-rw-r--r--doc/user/msg.t48
-rw-r--r--doc/user/part.t18
-rw-r--r--doc/user/region.t34
-rw-r--r--doc/user/rtmon.t8
-rw-r--r--doc/user/sem.t14
-rw-r--r--doc/user/task.t22
-rw-r--r--doc/user/timer.t6
16 files changed, 230 insertions, 510 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 51424d109e..a6d45ec899 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,10 @@
+2007-11-28 Glenn Humphrey <glenn.humphrey@OARcorp.com>
+
+ * 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>
* develenv/develenv.texi, develenv/direct.t, develenv/intro.texi,
diff --git a/doc/user/clock.t b/doc/user/clock.t
index 24721ebe8c..a6ee969120 100644
--- a/doc/user/clock.t
+++ b/doc/user/clock.t
@@ -47,13 +47,13 @@ and time @value{STRUCTURE} for the native time and date format:
@findex rtems_time_of_day
@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 */
@};
typedef struct rtems_tod_control rtems_time_of_day;
@@ -88,8 +88,8 @@ following @value{STRUCTURE}:
@example
@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
@end example
diff --git a/doc/user/concepts.t b/doc/user/concepts.t
index adf8986e62..d18272bac3 100644
--- a/doc/user/concepts.t
+++ b/doc/user/concepts.t
@@ -210,9 +210,9 @@ prototyped as follows:
@findex rtems_get_index
@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
An object control block is a data structure defined
diff --git a/doc/user/conf.t b/doc/user/conf.t
index 2ea0320b17..561b6d4969 100644
--- a/doc/user/conf.t
+++ b/doc/user/conf.t
@@ -39,6 +39,14 @@ system initialization time. This chapter details the
format of these data structures as well as a simpler
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
@@ -704,62 +712,32 @@ implicitly uses the Ada run-time.
The RTEMS Configuration Table is used to tailor an
application for its specific needs. For example, the user can
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}
+The address of the user-defined Configuration Table is passed as an
+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}:
+The RTEMS Configuration Table is defined in the following C structure:
-@ifset is-C
@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_devices;
- 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_devices;
+ 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
@item work_space_start
@@ -768,7 +746,7 @@ This area contains items such as the
various object control blocks (TCBs, QCBs, ...) and task stacks.
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{confdefs.h} mechanism for configuring
an RTEMS application, the value for this field corresponds
to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}
@@ -929,49 +907,26 @@ The RTEMS API Configuration Table is used to configure the
managers which constitute the RTEMS API for a particular application.
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}:
+the following C structure:
-@ifset is-C
@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
@item maximum_tasks
@@ -1108,9 +1063,8 @@ The POSIX API Configuration Table is used to configure the
managers which constitute the POSIX API for a particular application.
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
@example
@@ -1126,52 +1080,16 @@ typedef struct @{
int maximum_keys;
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;
@} posix_api_configuration_table;
@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
@item maximum_threads
@@ -1256,7 +1174,7 @@ by the application, then this defaults to
is the address of the Initialization Threads Table. This table contains the
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{confdefs.h} mechanism for configuring
an RTEMS application, the value for this field corresponds
to the address of the @code{POSIX_Initialization_threads} structure.
@@ -1293,15 +1211,13 @@ found in the @code{number_of_initialization_tasks} entry in the
Configuration Table.
The format of each entry in the
-Initialization Task Table is defined in the following @value{LANGUAGE}
-@value{STRUCTURE}:
+Initialization Task Table is defined in the following C structure:
-@ifset is-C
@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;
rtems_task_entry entry_point;
@@ -1309,29 +1225,6 @@ typedef struct @{
rtems_task_argument argument;
@} 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
@item name
@@ -1359,7 +1252,6 @@ is the initial argument for this initialization task.
A typical declaration for an Initialization Task Table might appear as follows:
-@ifset is-C
@example
rtems_initialization_tasks_table
Initialization_tasks[2] = @{
@@ -1383,29 +1275,6 @@ Initialization_tasks[2] = @{
@}
@};
@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
@@ -1418,62 +1287,40 @@ The number of entries is defined in the number_of_device_drivers entry
in the Configuration Table. This table is copied to the Device Drive
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}:
+Driver Table is defined in the following C structure:
-@ifset is-C
@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 open_entry
+is the address of the entry point called by @code{rtems_io_open}.
-@item close
-is the address of the entry point called by @code{@value{DIRPREFIX}io_close}.
+@item close_entry
+is the address of the entry point called by @code{rtems_io_close}.
-@item read
-is the address of the entry point called by @code{@value{DIRPREFIX}io_read}.
+@item read_entry
+is the address of the entry point called by @code{rtems_io_read}.
-@item write
-is the address of the entry point called by @code{@value{DIRPREFIX}io_write}.
+@item write_entry
+is the address of the entry point called by @code{rtems_io_write}.
-@item control
-is the address of the entry point called by @code{@value{DIRPREFIX}io_control}.
+@item control_entry
+is the address of the entry point called by @code{rtems_io_control}.
@end table
@@ -1483,7 +1330,6 @@ executed in this situation.
A typical declaration for a Device Driver Table might appear as follows:
-@ifset is-C
@example
rtems_driver_address_table Driver_table[2] = @{
@{ tty_initialize, tty_open, tty_close, /* major = 0 */
@@ -1494,12 +1340,6 @@ rtems_driver_address_table Driver_table[2] = @{
@}
@};
@end example
-@end ifset
-
-@ifset is-Ada
-@example
-@end example
-@end ifset
More information regarding the construction and
operation of device drivers is provided in the I/O Manager
@@ -1515,29 +1355,41 @@ contains one entry for each possible extension. The entries are
called at critical times in the life of the system and
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}:
+in the User Extensions Table is defined in the following C structure:
-@ifset is-C
@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 @{
rtems_task_create_extension thread_create;
@@ -1548,26 +1400,8 @@ typedef struct @{
rtems_task_begin_extension thread_begin;
rtems_task_exitted_extension thread_exitted;
rtems_fatal_extension fatal;
-@} User_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;
+@} rtems_extensions_table;
@end example
-@end ifset
@table @b
@@ -1639,7 +1473,6 @@ A typical declaration for a User Extension Table
which defines the TASK_CREATE, TASK_DELETE, TASK_SWITCH, and
FATAL extension might appear as follows:
-@ifset is-C
@example
rtems_extensions_table User_extensions = @{
task_create_extension,
@@ -1652,23 +1485,6 @@ rtems_extensions_table User_extensions = @{
fatal_extension
@};
@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
provided in the User Extensions chapter.
@@ -1696,34 +1512,17 @@ If @code{CONFIGURE_MP_APPLICATION}, is not defined, then a NULL pointer
is configured as the address of this table.
The format of the Multiprocessor Configuration Table is defined in
-the following @value{LANGUAGE} @value{STRUCTURE}:
+the following C structure:
-@ifset is-C
@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
@item node
@@ -1810,38 +1609,19 @@ the @code{CONFIGURE_MP_MPCI_TABLE_POINTER} when configuring a
multiprocessing system.
The format of this table is defined in
-the following @value{LANGUAGE} @value{STRUCTURE}:
+the following C structure:
-@ifset is-C
@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
@item default_timeout
diff --git a/doc/user/datatypes.t b/doc/user/datatypes.t
index d842786676..da2c26b14e 100644
--- a/doc/user/datatypes.t
+++ b/doc/user/datatypes.t
@@ -280,30 +280,6 @@ return type for an RTEMS Timer Service Routine.
the entry point to an RTEMS TSR. It is equivalent to the
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
type used to manage and manipulate interrupt vector numbers.
diff --git a/doc/user/dpmem.t b/doc/user/dpmem.t
index b842b519b2..a6359c43ca 100644
--- a/doc/user/dpmem.t
+++ b/doc/user/dpmem.t
@@ -113,11 +113,11 @@ constants, usage, and status codes.
@findex rtems_port_create
@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
@end ifset
diff --git a/doc/user/fatal.t b/doc/user/fatal.t
index 9127f98b09..c23b3bcd5a 100644
--- a/doc/user/fatal.t
+++ b/doc/user/fatal.t
@@ -133,7 +133,7 @@ constants, usage, and status codes.
@findex rtems_fatal_error_occurred
@example
void volatile rtems_fatal_error_occurred(
- rtems_unsigned32 the_error
+ uint32_t the_error
);
@end example
@end ifset
diff --git a/doc/user/init.t b/doc/user/init.t
index 24625e4b6b..2a77874fe7 100644
--- a/doc/user/init.t
+++ b/doc/user/init.t
@@ -322,16 +322,14 @@ initialization sequences:
@findex rtems_initialize_executive_late
@example
void rtems_initialize_executive_late(
- rtems_interrupt_level bsp_level
+ rtems_interrupt_level bsp_level
);
@end example
@end ifset
@ifset is-Ada
@example
-procedure Initialize_Executive_Late(
- BSP_Level : in RTEMS.ISR_Level
-);
+NOT SUPPORTED FROM Ada BINDING
@end example
@end ifset
@@ -382,7 +380,7 @@ initialization sequences:
@findex rtems_shutdown_executive
@example
void rtems_shutdown_executive(
- rtems_unsigned32 result
+ uint32_t result
);
@end example
@end ifset
diff --git a/doc/user/mp.t b/doc/user/mp.t
index 7114151593..bf6102a82a 100644
--- a/doc/user/mp.t
+++ b/doc/user/mp.t
@@ -43,6 +43,17 @@ performs the actions required to access the desired object.
Simply stated, RTEMS allows the entire system, both hardware and
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
@cindex multiprocessing topologies
@@ -177,7 +188,7 @@ task.
@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.
@item The Multiprocessing Server calls the user-provided
@@ -186,7 +197,7 @@ builds an RR message, and returns it to the originating node.
@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.
@item The Multiprocessing Server calls the user-provided
@@ -284,7 +295,7 @@ If the target hardware supports it, the arrival of a
packet at a node may generate an interrupt. Otherwise, the
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
the packet. The Multiprocessing Server will call the get_packet
@@ -294,13 +305,12 @@ copy the message into the buffer obtained.
@subsection INITIALIZATION
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
been initialized. This component should be adhere to the
following prototype:
-@ifset is-C
@findex rtems_mpci_entry
@example
@group
@@ -311,14 +321,6 @@ rtems_mpci_entry user_mpci_initialization(
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure User_MPCI_Initialization (
- Configuration : in RTEMS.Configuration_Table_Pointer
-);
-@end example
-@end ifset
-
where configuration is the address of the user's
Configuration Table. Operations on global objects cannot be
performed until this component is invoked. The INITIALIZATION
@@ -339,7 +341,6 @@ layer is called when RTEMS must obtain a packet buffer to send
or broadcast a message. This component should be adhere to the
following prototype:
-@ifset is-C
@example
@group
rtems_mpci_entry user_mpci_get_packet(
@@ -349,14 +350,6 @@ rtems_mpci_entry user_mpci_get_packet(
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure User_MPCI_Get_Packet (
- Packet : access RTEMS.Packet_Prefix_Pointer
-);
-@end example
-@end ifset
-
where packet is the address of a pointer to a packet.
This routine always succeeds and, upon return, packet will
contain the address of a packet. If for any reason, a packet
@@ -376,7 +369,6 @@ layer is called when RTEMS needs to release a packet to the free
packet buffer pool. This component should be adhere to the
following prototype:
-@ifset is-C
@example
@group
rtems_mpci_entry user_mpci_return_packet(
@@ -386,14 +378,6 @@ rtems_mpci_entry user_mpci_return_packet(
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure User_MPCI_Return_Packet (
- Packet : in RTEMS.Packet_Prefix_Pointer
-);
-@end example
-@end ifset
-
where packet is the address of a packet. If the
packet cannot be successfully returned, the fatal error manager
should be invoked.
@@ -405,7 +389,6 @@ MPCI layer is called when RTEMS needs to obtain a packet which
has previously arrived. This component should be adhere to the
following prototype:
-@ifset is-C
@example
@group
rtems_mpci_entry user_mpci_receive_packet(
@@ -415,14 +398,6 @@ rtems_mpci_entry user_mpci_receive_packet(
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure User_MPCI_Receive_Packet (
- Packet : access RTEMS.Packet_Prefix_Pointer
-);
-@end example
-@end ifset
-
where packet is a pointer to the address of a packet
to place the message from another node. If a message is
available, then packet will contain the address of the message
@@ -436,7 +411,6 @@ layer is called when RTEMS needs to send a packet containing a
message to another node. This component should be adhere to the
following prototype:
-@ifset is-C
@example
@group
rtems_mpci_entry user_mpci_send_packet(
@@ -447,15 +421,6 @@ rtems_mpci_entry user_mpci_send_packet(
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure User_MPCI_Send_Packet (
- Node : in RTEMS.Unsigned32;
- Packet : access RTEMS.Packet_Prefix_Pointer
-);
-@end example
-@end ifset
-
where node is the node number of the destination and packet is the
address of a packet which containing a message. If the packet cannot
be successfully sent, the fatal error manager should be invoked.
@@ -468,12 +433,12 @@ of the packet for each node in the system.
@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.
@subsection Supporting Heterogeneous Environments
@@ -564,7 +529,7 @@ data component of the packet.
@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
service routine or from within a polling routine.
@@ -594,12 +559,6 @@ void rtems_multiprocessing_announce( void );
@end example
@end ifset
-@ifset is-Ada
-@example
-procedure Multiprocessing_Announce;
-@end example
-@end ifset
-
@subheading DIRECTIVE STATUS CODES:
NONE
diff --git a/doc/user/msg.t b/doc/user/msg.t
index 3b8775995b..501424f21d 100644
--- a/doc/user/msg.t
+++ b/doc/user/msg.t
@@ -231,8 +231,8 @@ constants, usage, and status codes.
@example
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
);
@@ -323,9 +323,9 @@ configuration table.
@findex rtems_message_queue_ident
@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
@end ifset
@@ -454,9 +454,9 @@ reclaimed when the message queue is deleted.
@findex rtems_message_queue_send
@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
@end ifset
@@ -519,9 +519,9 @@ proxy used to represent the task is reclaimed.
@findex rtems_message_queue_urgent
@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
@end ifset
@@ -585,10 +585,10 @@ proxy used to represent the task is reclaimed.
@findex rtems_message_queue_broadcast
@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
@end ifset
@@ -656,11 +656,11 @@ proxy used to represent the task is reclaimed.
@findex rtems_message_queue_receive
@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
@end ifset
@@ -750,8 +750,8 @@ this directive.
@findex rtems_message_queue_get_number_pending
@example
rtems_status_code rtems_message_queue_get_number_pending(
- rtems_id id,
- rtems_unsigned32 *count
+ rtems_id id,
+ uint32_t *count
);
@end example
@end ifset
@@ -799,8 +799,8 @@ the specified message queue.
@findex rtems_message_queue_flush
@example
rtems_status_code rtems_message_queue_flush(
- rtems_id id,
- rtems_unsigned32 *count
+ rtems_id id,
+ uint32_t *count
);
@end example
@end ifset
diff --git a/doc/user/part.t b/doc/user/part.t
index eef41e6308..fbb4ed4197 100644
--- a/doc/user/part.t
+++ b/doc/user/part.t
@@ -144,12 +144,12 @@ constants, usage, and status codes.
@findex rtems_partition_create
@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
@end ifset
@@ -239,9 +239,9 @@ the Configuration Table.
@findex rtems_partition_ident
@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
@end ifset
diff --git a/doc/user/region.t b/doc/user/region.t
index 088abe78b5..78686976fd 100644
--- a/doc/user/region.t
+++ b/doc/user/region.t
@@ -245,12 +245,12 @@ and status codes.
@findex rtems_region_create
@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
@end ifset
@@ -431,9 +431,9 @@ delete the region.
@findex rtems_region_extend
@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
@end ifset
@@ -483,11 +483,11 @@ extend the region.
@findex rtems_region_get_segment
@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
@end ifset
@@ -637,9 +637,9 @@ is less than or equal to the size of the segment returned.
@findex rtems_region_get_segment_size
@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
@end ifset
diff --git a/doc/user/rtmon.t b/doc/user/rtmon.t
index adbb7f5d36..a1374db516 100644
--- a/doc/user/rtmon.t
+++ b/doc/user/rtmon.t
@@ -1149,8 +1149,8 @@ the rate monotonic period id in the following data @value{STRUCTURE}:
@example
typedef struct @{
rtems_rate_monotonic_period_states state;
- rtems_unsigned32 ticks_since_last_period;
- rtems_unsigned32 ticks_executed_since_last_period;
+ uint32_t ticks_since_last_period;
+ uint32_t ticks_executed_since_last_period;
@} rtems_rate_monotonic_period_status;
@end example
@end ifset
@@ -1159,8 +1159,8 @@ typedef struct @{
@example
type Rate_Monotonic_Period_Status is
begin
- State : RTEMS.Rate_Monotonic_Period_States;
- Ticks_Since_Last_Period : RTEMS.Unsigned32;
+ State : RTEMS.Rate_Monotonic_Period_States;
+ Ticks_Since_Last_Period : RTEMS.Unsigned32;
Ticks_Executed_Since_Last_Period : RTEMS.Unsigned32;
end record;
@end example
diff --git a/doc/user/sem.t b/doc/user/sem.t
index dd51266892..bfa0ca39e9 100644
--- a/doc/user/sem.t
+++ b/doc/user/sem.t
@@ -386,7 +386,7 @@ constants, usage, and status codes.
@example
rtems_status_code rtems_semaphore_create(
rtems_name name,
- rtems_unsigned32 count,
+ uint32_t count,
rtems_attribute attribute_set,
rtems_task_priority priority_ceiling,
rtems_id *id
@@ -498,9 +498,9 @@ the Configuration Table.
@findex rtems_semaphore_ident
@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
@end ifset
@@ -626,9 +626,9 @@ reclaimed when the semaphore is deleted.
@findex rtems_semaphore_obtain
@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
@end ifset
diff --git a/doc/user/task.t b/doc/user/task.t
index 8e814a3959..2a638f1ad4 100644
--- a/doc/user/task.t
+++ b/doc/user/task.t
@@ -689,7 +689,7 @@ status codes.
rtems_status_code rtems_task_create(
rtems_name name,
rtems_task_priority initial_priority,
- rtems_unsigned32 stack_size,
+ size_t stack_size,
rtems_mode initial_modes,
rtems_attribute attribute_set,
rtems_id *id
@@ -801,9 +801,9 @@ by the maximum_global_objects field in the Configuration Table.
@findex rtems_task_ident
@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
@end ifset
@@ -1415,9 +1415,9 @@ mask constant is provided in the following table:
@findex rtems_task_get_note
@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
@end ifset
@@ -1472,9 +1472,9 @@ the notepad entry of the specified task.
@findex rtems_task_set_note
@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
@end ifset
@@ -1561,7 +1561,7 @@ A task may give up the processor and remain in the ready state
by specifying a value of @code{@value{RPREFIX}YIELD_PROCESSOR} in ticks.
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.
diff --git a/doc/user/timer.t b/doc/user/timer.t
index 88c59d7306..6c2e0e258a 100644
--- a/doc/user/timer.t
+++ b/doc/user/timer.t
@@ -515,9 +515,9 @@ preempted.
@findex rtems_timer_initiate_server
@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
)
);
@end example