Changeset ae10dbd in rtems


Ignore:
Timestamp:
Nov 28, 2007, 4:23:59 PM (12 years ago)
Author:
Glenn Humphrey <glenn.humphrey@…>
Branches:
4.10, 4.11, 4.9, master
Children:
b8596d8
Parents:
29925d99
Message:

2007-11-28 Glenn Humphrey <glenn.humphrey@…>

  • 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.
Location:
doc
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • doc/ChangeLog

    r29925d99 rae10dbd  
     12007-11-28      Glenn Humphrey <glenn.humphrey@OARcorp.com>
     2
     3        * user/barrier.t, user/clock.t, user/concepts.t, user/conf.t,
     4        user/datatypes.t, user/dpmem.t, user/fatal.t, user/init.t, user/mp.t,
     5        user/msg.t, user/part.t, user/region.t, user/rtmon.t, user/sem.t,
     6        user/task.t, user/timer.t: Corrected various errors in the
     7        documentation.
     8
    192007-11-27      Joel Sherrill <joel.sherrill@OARcorp.com>
    210
  • doc/user/barrier.t

    r29925d99 rae10dbd  
    367367rtems_status_code rtems_barrier_wait(
    368368  rtems_id         id,
    369   rtems_unsigned32 option_set,
    370369  rtems_interval   timeout
    371370);
     
    377376procedure Barrier_Wait (
    378377   ID         : in     RTEMS.ID;
    379    Option_Set : in     RTEMS.Option;
    380378   Timeout    : in     RTEMS.Interval;
    381379   Result     :    out RTEMS.Status_Codes
     
    443441@example
    444442rtems_status_code rtems_barrier_release(
    445   rtems_id id
     443  rtems_id  id,
     444  uint32_t *released
    446445);
    447446@end example
     
    451450@example
    452451procedure Barrier_Release (
    453    ID     : in     RTEMS.ID;
    454    Result :    out RTEMS.Status_Codes
     452   ID       : in     RTEMS.ID;
     453   Released :    out RTEMS.Unsigned32;
     454   Result   :    out RTEMS.Status_Codes
    455455);
    456456@end example
  • doc/user/clock.t

    r29925d99 rae10dbd  
    5050@example
    5151struct rtems_tod_control @{
    52   rtems_unsigned32 year;   /* greater than 1987 */
    53   rtems_unsigned32 month;  /* 1 - 12 */
    54   rtems_unsigned32 day;    /* 1 - 31 */
    55   rtems_unsigned32 hour;   /* 0 - 23 */
    56   rtems_unsigned32 minute; /* 0 - 59 */
    57   rtems_unsigned32 second; /* 0 - 59 */
    58   rtems_unsigned32 ticks;  /* elapsed between seconds */
     52  uint32_t year;   /* greater than 1987 */
     53  uint32_t month;  /* 1 - 12 */
     54  uint32_t day;    /* 1 - 31 */
     55  uint32_t hour;   /* 0 - 23 */
     56  uint32_t minute; /* 0 - 59 */
     57  uint32_t second; /* 0 - 59 */
     58  uint32_t ticks;  /* elapsed between seconds */
    5959@};
    6060
     
    9191@group
    9292typedef struct @{
    93   rtems_unsigned32 seconds;       /* seconds since RTEMS epoch*/
    94   rtems_unsigned32 microseconds;  /* since last second        */
     93  uint32_t seconds;       /* seconds since RTEMS epoch*/
     94  uint32_t microseconds;  /* since last second        */
    9595@} rtems_clock_time_value;
    9696@end group
  • doc/user/concepts.t

    r29925d99 rae10dbd  
    245245
    246246@example
    247 rtems_unsigned32 rtems_get_class( rtems_id );
    248 rtems_unsigned32 rtems_get_node( rtems_id );
    249 rtems_unsigned32 rtems_get_index( rtems_id );
     247uint32_t rtems_get_class( rtems_id );
     248uint32_t rtems_get_node( rtems_id );
     249uint32_t rtems_get_index( rtems_id );
    250250@end example
    251251
  • doc/user/conf.t

    r29925d99 rae10dbd  
    4040mechanism to automate the generation of these structures.
    4141
     42@ifset is-Ada
     43System configuration is ALWAYS done from C.  When developing
     44an Ada application, the user is responsible for creating at
     45least one C file which contains the Ada run-time initialization
     46and the RTEMS System Configuration.  There is no Ada binding
     47for RTEMS System Configuration information.  Thus all examples
     48and data structures shown in this chapter are in C.
     49@end ifset
    4250
    4351@section Automatic Generation of System Configuration
     
    719727configure the number of device drivers or which APIs may be used.
    720728THe address of the user-defined Configuration Table is passed as an
    721 argument to the @code{@value{DIRPREFIX}initialize_executive}
     729argument to the @code{rtems_initialize_executive}
    722730directive, which MUST be the first RTEMS directive called. 
    723 The RTEMS Configuration Table
    724 is defined in the following @value{LANGUAGE} @value{STRUCTURE}:
    725 
    726 @ifset is-C
     731The RTEMS Configuration Table is defined in the following C structure:
     732
    727733@findex rtems_configuration_table
    728734@example
    729735@group
    730736typedef struct @{
    731   void                             *work_space_start;
    732   rtems_unsigned32                  work_space_size;
    733   rtems_unsigned32                  maximum_extensions;
    734   rtems_unsigned32                  microseconds_per_tick;
    735   rtems_unsigned32                  ticks_per_timeslice;
    736   rtems_unsigned32                  maximum_drivers;
    737   rtems_unsigned32                  number_of_device_drivers;
    738   rtems_driver_address_table       *Device_driver_table;
    739   rtems_unsigned32                  number_of_initial_extensions;
    740   rtems_extensions_table           *User_extension_table;
    741   rtems_multiprocessing_table      *User_multiprocessing_table;
    742   rtems_api_configuration_table    *RTEMS_api_configuration;
    743   posix_api_configuration_table    *POSIX_api_configuration;
     737  void                           *work_space_start;
     738  uint32_t                        work_space_size;
     739  uint32_t                        maximum_extensions;
     740  uint32_t                        microseconds_per_tick;
     741  uint32_t                        ticks_per_timeslice;
     742  uint32_t                        maximum_drivers;
     743  uint32_t                        number_of_device_drivers;
     744  rtems_driver_address_table     *Device_driver_table;
     745  uint32_t                        number_of_initial_extensions;
     746  rtems_extensions_table         *User_extension_table;
     747  rtems_multiprocessing_table    *User_multiprocessing_table;
     748  rtems_api_configuration_table  *RTEMS_api_configuration;
     749  posix_api_configuration_table  *POSIX_api_configuration;
    744750@} rtems_configuration_table;
    745751@end group
    746752@end example
    747 @end ifset
    748 
    749 @ifset is-Ada
    750 @example
    751 type Configuration_Table is
    752    record
    753        Work_Space_Start             : RTEMS.Address;
    754        Work_Space_Size              : RTEMS.Unsigned32;
    755        Maximum_Extensions           : RTEMS.Unsigned32;
    756        Microseconds_Per_Tick        : RTEMS.Unsigned32;
    757        Ticks_Per_Timeslice          : RTEMS.Unsigned32;
    758        Maximum_Devices              : RTEMS.Unsigned32;
    759        Number_Of_Device_Drivers     : RTEMS.Unsigned32;
    760        Device_Driver_Table          :
    761             RTEMS.Driver_Address_Table_Pointer;
    762        Number_Of_Initial_Extensions : RTEMS.Unsigned32;
    763        User_Extension_Table         : RTEMS.Extensions_Table_Pointer;
    764        User_Multiprocessing_Table   :
    765             RTEMS.Multiprocessing_Table_Pointer;
    766        RTEMS_API_Configuration      :
    767             RTEMS.API_Configuration_Table_Pointer;
    768        POSIX_API_Configuration      :
    769             RTEMS.POSIX_API_Configuration_Table_Pointer;
    770    end record;
    771 
    772 type Configuration_Table_Pointer is access all Configuration_Table;
    773 @end example
    774 @end ifset
    775753
    776754@table @b
     
    781759If the address is not aligned on a four-word boundary, then
    782760RTEMS will invoke the fatal error handler during
    783 @code{@value{DIRPREFIX}initialize_executive}.
     761@code{rtems_initialize_executive}.
    784762When using the @code{rtems/confdefs.h} mechanism for configuring
    785763an RTEMS application, the value for this field corresponds
     
    934912For example, the user can configure the maximum number of tasks for
    935913this application. The RTEMS API Configuration Table is defined in
    936 the following @value{LANGUAGE} @value{STRUCTURE}:
    937 
    938 @ifset is-C
     914the following C structure:
     915
    939916@findex rtems_api_configuration_table
    940917@example
    941918@group
    942919typedef struct @{
    943   rtems_unsigned32                  maximum_tasks;
    944   rtems_unsigned32                  maximum_timers;
    945   rtems_unsigned32                  maximum_semaphores;
    946   rtems_unsigned32                  maximum_message_queues;
    947   rtems_unsigned32                  maximum_partitions;
    948   rtems_unsigned32                  maximum_regions;
    949   rtems_unsigned32                  maximum_ports;
    950   rtems_unsigned32                  maximum_periods;
    951   rtems_unsigned32                  number_of_initialization_tasks;
     920  uint32_t  maximum_tasks;
     921  uint32_t  maximum_timers;
     922  uint32_t  maximum_semaphores;
     923  uint32_t  maximum_message_queues;
     924  uint32_t  maximum_partitions;
     925  uint32_t  maximum_regions;
     926  uint32_t  maximum_ports;
     927  uint32_t  maximum_periods;
     928  uint32_t  maximum_barriers;
     929  uint32_t  number_of_initialization_tasks;
    952930  rtems_initialization_tasks_table *User_initialization_tasks_table;
    953931@} rtems_api_configuration_table;
    954932@end group
    955933@end example
    956 @end ifset
    957 
    958 @ifset is-Ada
    959 @example
    960 type API_Configuration_Table is
    961    record
    962       Maximum_Tasks                   : RTEMS.Unsigned32;
    963       Maximum_Timers                  : RTEMS.Unsigned32;
    964       Maximum_Semaphores              : RTEMS.Unsigned32;
    965       Maximum_Message_queues          : RTEMS.Unsigned32;
    966       Maximum_Partitions              : RTEMS.Unsigned32;
    967       Maximum_Regions                 : RTEMS.Unsigned32;
    968       Maximum_Ports                   : RTEMS.Unsigned32;
    969       Maximum_Periods                 : RTEMS.Unsigned32;
    970       Number_Of_Initialization_Tasks  : RTEMS.Unsigned32;
    971       User_Initialization_Tasks_Table :
    972            RTEMS.Initialization_Tasks_Table_Pointer;
    973    end record;
    974 
    975 type API_Configuration_Table_Pointer is
    976            access all API_Configuration_Table;
    977 @end example
    978 @end ifset
    979934
    980935@table @b
     
    11131068For example, the user can configure the maximum number of threads for
    11141069this application. The POSIX API Configuration Table is defined in
    1115 the following @value{LANGUAGE} @value{STRUCTURE}:
     1070the following C structure:
    11161071 
    1117 @ifset is-C
    11181072@findex posix_initialization_threads_table
    11191073@findex posix_api_configuration_table
     
    11311085  int                                 maximum_timers;
    11321086  int                                 maximum_queued_signals;
     1087  int                                 maximum_message_queues;
     1088  int                                 maximum_semaphores;
     1089  int                                 maximum_barriers;
     1090  int                                 maximum_rwlocks;
     1091  int                                 maximum_spinlocks;
    11331092  int                                 number_of_initialization_tasks;
    11341093  posix_initialization_threads_table *User_initialization_tasks_table;
     
    11361095@end group
    11371096@end example
    1138 @end ifset
    1139 
    1140 @ifset is-Ada
    1141 @example
    1142    type POSIX_Thread_Entry is access procedure (
    1143       Argument : in     RTEMS.Address
    1144    );
    1145 
    1146    type POSIX_Initialization_Threads_Table_Entry is
    1147    record
    1148       Thread_Entry : RTEMS.POSIX_Thread_Entry;
    1149    end record;
    1150 
    1151    type POSIX_Initialization_Threads_Table is array
    1152        ( RTEMS.Unsigned32 range <> ) of
    1153        RTEMS.POSIX_Initialization_Threads_Table_Entry;
    1154 
    1155    type POSIX_Initialization_Threads_Table_Pointer is access all
    1156        POSIX_Initialization_Threads_Table;
    1157 
    1158    type POSIX_API_Configuration_Table_Entry is
    1159       record
    1160          Maximum_Threads                 : Interfaces.C.Int;
    1161          Maximum_Mutexes                 : Interfaces.C.Int;
    1162          Maximum_Condition_Variables     : Interfaces.C.Int;
    1163          Maximum_Keys                    : Interfaces.C.Int;
    1164          Maximum_Timers                  : Interfaces.C.Int;
    1165          Maximum_Queued_Signals          : Interfaces.C.Int;
    1166          Number_Of_Initialization_Tasks  : Interfaces.C.Int;
    1167          User_Initialization_Tasks_Table :
    1168             RTEMS.POSIX_Initialization_Threads_Table_Pointer;
    1169       end record;
    1170 
    1171    type POSIX_API_Configuration_Table is array
    1172       ( RTEMS.Unsigned32 range <> ) of
    1173           RTEMS.POSIX_API_Configuration_Table_Entry;
    1174 
    1175    type POSIX_API_Configuration_Table_Pointer is access all
    1176           RTEMS.POSIX_API_Configuration_Table;
    1177 @end example
    1178 @end ifset
    11791097 
    11801098@table @b
     
    12611179information needed to create and start each of the initialization threads. 
    12621180The format of each entry in this table is defined in the
    1263 @code{posix_initialization_threads_table} @value{STRUCTURE}.
     1181@code{posix_initialization_threads_table} structure.
    12641182When using the @code{rtems/confdefs.h} mechanism for configuring
    12651183an RTEMS application, the value for this field corresponds
     
    12981216
    12991217The format of each entry in the
    1300 Initialization Task Table is defined in the following @value{LANGUAGE}
    1301 @value{STRUCTURE}:
    1302 
    1303 @ifset is-C
     1218Initialization Task Table is defined in the following C structure:
     1219
    13041220@findex rtems_initialization_tasks_table
    13051221@example
    13061222typedef struct @{
    13071223  rtems_name           name;
    1308   rtems_unsigned32     stack_size;
     1224  size_t               stack_size;
    13091225  rtems_task_priority  initial_priority;
    13101226  rtems_attribute      attribute_set;
     
    13141230@} rtems_initialization_tasks_table;
    13151231@end example
    1316 @end ifset
    1317 
    1318 @ifset is-Ada
    1319 @example
    1320 type Initialization_Tasks_Table_Entry is
    1321    record
    1322       Name             : RTEMS.Name;          -- task name
    1323       Stack_Size       : RTEMS.Unsigned32;    -- task stack size
    1324       Initial_Priority : RTEMS.Task_priority; -- task priority
    1325       Attribute_Set    : RTEMS.Attribute;     -- task attributes
    1326       Entry_Point      : RTEMS.Task_Entry;    -- task entry point
    1327       Mode_Set         : RTEMS.Mode;          -- task initial mode
    1328       Argument         : RTEMS.Unsigned32;    -- task argument
    1329    end record;
    1330 
    1331 type Initialization_Tasks_Table is array
    1332     ( RTEMS.Unsigned32 range <> ) of
    1333       RTEMS.Initialization_Tasks_Table_Entry;
    1334 
    1335 type Initialization_Tasks_Table_Pointer is access all
    1336      Initialization_Tasks_Table;
    1337 @end example
    1338 @end ifset
    13391232
    13401233@table @b
     
    13641257A typical declaration for an Initialization Task Table might appear as follows:
    13651258
    1366 @ifset is-C
    13671259@example
    13681260rtems_initialization_tasks_table
     
    13881280@};
    13891281@end example
    1390 @end ifset
    1391 
    1392 @ifset is-Ada
    1393 @example
    1394 Initialization_Tasks : aliased
    1395   RTEMS.Initialization_Tasks_Table( 1 .. 2 ) := (
    1396    (INIT_1_NAME,
    1397     1024,
    1398     1,
    1399     RTEMS.Default_Attributes,
    1400     Init_1'Access,
    1401     RTEMS.Default_Modes,
    1402     1),
    1403    (INIT_2_NAME,
    1404     1024,
    1405     250,
    1406     RTEMS.Floating_Point,
    1407     Init_2'Access,
    1408     RTEMS.No_Preempt,
    1409     2)
    1410 );
    1411 @end example
    1412 @end ifset
    14131282
    14141283@section Driver Address Table
     
    14231292Table during the IO Manager's initialization giving the entries in this
    14241293table the lower major numbers.  The format of each entry in the Device
    1425 Driver Table is defined in the following @value{LANGUAGE}
    1426 @value{STRUCTURE}:
    1427 
    1428 @ifset is-C
     1294Driver Table is defined in the following C structure:
     1295
    14291296@findex rtems_driver_address_table
    14301297@example
    14311298typedef struct @{
    1432   rtems_device_driver_entry initialization;
    1433   rtems_device_driver_entry open;
    1434   rtems_device_driver_entry close;
    1435   rtems_device_driver_entry read;
    1436   rtems_device_driver_entry write;
    1437   rtems_device_driver_entry control;
     1299  rtems_device_driver_entry initialization_entry;
     1300  rtems_device_driver_entry open_entry;
     1301  rtems_device_driver_entry close_entry;
     1302  rtems_device_driver_entry read_entry;
     1303  rtems_device_driver_entry write_entry;
     1304  rtems_device_driver_entry control_entry;
    14381305@} rtems_driver_address_table;
    14391306@end example
    1440 @end ifset
    1441 
    1442 @ifset is-Ada
    1443 @example
    1444 type Driver_Address_Table_Entry is
    1445    record
    1446       Initialization : RTEMS.Device_Driver_Entry;
    1447       Open           : RTEMS.Device_Driver_Entry;
    1448       Close          : RTEMS.Device_Driver_Entry;
    1449       Read           : RTEMS.Device_Driver_Entry;
    1450       Write          : RTEMS.Device_Driver_Entry;
    1451       Control        : RTEMS.Device_Driver_Entry;
    1452    end record;
    1453 
    1454 type Driver_Address_Table is array ( RTEMS.Unsigned32 range <> ) of
    1455   RTEMS.Driver_Address_Table_Entry;
    1456 
    1457 type Driver_Address_Table_Pointer is access all Driver_Address_Table;
    1458 @end example
    1459 @end ifset
    14601307
    14611308@table @b
    1462 @item initialization
     1309@item initialization_entry
    14631310is the address of the entry point called by
    1464 @code{@value{DIRPREFIX}io_initialize}
     1311@code{rtems_io_initialize}
    14651312to initialize a device driver and its associated devices.
    14661313
    1467 @item open
    1468 is the address of the entry point called by @code{@value{DIRPREFIX}io_open}.
    1469 
    1470 @item close
    1471 is the address of the entry point called by @code{@value{DIRPREFIX}io_close}.
    1472 
    1473 @item read
    1474 is the address of the entry point called by @code{@value{DIRPREFIX}io_read}.
    1475 
    1476 @item write
    1477 is the address of the entry point called by @code{@value{DIRPREFIX}io_write}.
    1478 
    1479 @item control
    1480 is the address of the entry point called by @code{@value{DIRPREFIX}io_control}.
     1314@item open_entry
     1315is the address of the entry point called by @code{rtems_io_open}.
     1316
     1317@item close_entry
     1318is the address of the entry point called by @code{rtems_io_close}.
     1319
     1320@item read_entry
     1321is the address of the entry point called by @code{rtems_io_read}.
     1322
     1323@item write_entry
     1324is the address of the entry point called by @code{rtems_io_write}.
     1325
     1326@item control_entry
     1327is the address of the entry point called by @code{rtems_io_control}.
    14811328
    14821329@end table
     
    14881335A typical declaration for a Device Driver Table might appear as follows:
    14891336
    1490 @ifset is-C
    14911337@example
    14921338rtems_driver_address_table Driver_table[2] = @{
     
    14991345@};
    15001346@end example
    1501 @end ifset
    1502 
    1503 @ifset is-Ada
    1504 @example
    1505 @end example
    1506 @end ifset
    15071347
    15081348More information regarding the construction and
     
    15201360individual tasks.  The application may create dynamic extensions
    15211361in addition to this single static set.  The format of each entry
    1522 in the User Extensions Table is defined in the following @value{LANGUAGE}
    1523 @value{STRUCTURE}:
    1524 
    1525 @ifset is-C
     1362in the User Extensions Table is defined in the following C structure:
     1363
    15261364@example
    1527 typedef User_extensions_routine           rtems_extension;
    1528 typedef User_extensions_thread_create_extension   
    1529            rtems_task_create_extension;
    1530 typedef User_extensions_thread_delete_extension   
    1531            rtems_task_delete_extension;
    1532 typedef User_extensions_thread_start_extension   
    1533            rtems_task_start_extension;
    1534 typedef User_extensions_thread_restart_extension 
    1535            rtems_task_restart_extension;
    1536 typedef User_extensions_thread_switch_extension   
    1537            rtems_task_switch_extension;
    1538 typedef User_extensions_thread_begin_extension   
    1539            rtems_task_begin_extension;
    1540 typedef User_extensions_thread_exitted_extension 
    1541            rtems_task_exitted_extension;
    1542 typedef User_extensions_fatal_extension   rtems_fatal_extension;
    1543 
    1544 typedef User_extensions_Table             rtems_extensions_table;
     1365typedef void           rtems_extension;
     1366typedef rtems_extension (*rtems_task_create_extension)(
     1367   Thread_Control * /* executing */,
     1368   Thread_Control * /* created */
     1369);
     1370typedef rtems_extension (*rtems_task_delete_extension)(
     1371   Thread_Control * /* executing */,
     1372   Thread_Control * /* deleted */
     1373);
     1374typedef rtems_extension (*rtems_task_start_extension)(
     1375   Thread_Control * /* executing */,
     1376   Thread_Control * /* started */
     1377);
     1378typedef rtems_extension (*rtems_task_restart_extension)(
     1379   Thread_Control * /* executing */,
     1380   Thread_Control * /* restarted */
     1381);
     1382typedef rtems_extension (*rtems_task_switch_extension)(
     1383   Thread_Control * /* executing */,
     1384   Thread_Control * /* heir */
     1385);
     1386typedef rtems_extension (*rtems_task_begin_extension)(
     1387   Thread_Control * /* beginning */
     1388);
     1389typedef rtems_extension (*rtems_task_exitted_extension)(
     1390   Thread_Control * /* exiting */
     1391);
     1392typedef rtems_extension (*rtems_fatal_extension)(
     1393   Internal_errors_Source /* the_source */,
     1394   boolean                /* is_internal */,
     1395   uint32_t               /* the_error */
     1396);
    15451397
    15461398typedef struct @{
     
    15531405  rtems_task_exitted_extension     thread_exitted;
    15541406  rtems_fatal_extension            fatal;
    1555 @} User_extensions_Table;
     1407@} rtems_extensions_table;
    15561408@end example
    1557 @end ifset
    1558 
    1559 @ifset is-Ada
    1560 @example
    1561 type Extensions_Table_Entry is
    1562    record
    1563       Thread_Create      : RTEMS.Thread_Create_Extension;
    1564       Thread_Start       : RTEMS.Thread_Start_Extension;
    1565       Thread_Restart     : RTEMS.Thread_Restart_Extension;
    1566       Thread_Delete      : RTEMS.Thread_Delete_Extension;
    1567       Thread_Switch      : RTEMS.Thread_Switch_Extension;
    1568       Thread_Post_Switch : RTEMS.Thread_Post_Switch_Extension;
    1569       Thread_Begin       : RTEMS.Thread_Begin_Extension;
    1570       Thread_Exitted     : RTEMS.Thread_Exitted_Extension;
    1571       Fatal            : RTEMS.Fatal_Error_Extension;
    1572    end record;
    1573 @end example
    1574 @end ifset
    15751409
    15761410@table @b
     
    16441478FATAL extension might appear as follows:
    16451479
    1646 @ifset is-C
    16471480@example
    16481481rtems_extensions_table User_extensions = @{
     
    16571490@};
    16581491@end example
    1659 @end ifset
    1660 
    1661 @ifset is-Ada
    1662 User_Extensions : RTEMS.Extensions_Table := (
    1663    Task_Create_Extension'Access,
    1664    null,
    1665    null,
    1666    Task_Delete_Extension'Access,
    1667    Task_Switch_Extension'Access,
    1668    null,
    1669    null,
    1670    Fatal_Extension'Access
    1671 );
    1672 @example
    1673 
    1674 @end example
    1675 @end ifset
    16761492
    16771493More information regarding the user extensions is
     
    17011517
    17021518The format of the Multiprocessor Configuration Table is defined in
    1703 the following @value{LANGUAGE} @value{STRUCTURE}:
    1704 
    1705 @ifset is-C
     1519the following C structure:
     1520
    17061521@example
    17071522typedef struct @{
    1708   rtems_unsigned32  node;
    1709   rtems_unsigned32  maximum_nodes;
    1710   rtems_unsigned32  maximum_global_objects;
    1711   rtems_unsigned32  maximum_proxies;
     1523  uint32_t          node;
     1524  uint32_t          maximum_nodes;
     1525  uint32_t          maximum_global_objects;
     1526  uint32_t          maximum_proxies;
    17121527  rtems_mpci_table *User_mpci_table;
    17131528@} rtems_multiprocessing_table;
    17141529@end example
    1715 @end ifset
    1716 
    1717 @ifset is-Ada
    1718 @example
    1719 type Multiprocessing_Table is
    1720    record
    1721       Node                   : RTEMS.Unsigned32;
    1722       Maximum_Nodes          : RTEMS.Unsigned32;
    1723       Maximum_Global_Objects : RTEMS.Unsigned32;
    1724       Maximum_Proxies        : RTEMS.Unsigned32;
    1725       User_MPCI_Table        : RTEMS.MPCI_Table_Pointer;
    1726    end record;
    1727 
    1728 type Multiprocessing_Table_Pointer is access all Multiprocessing_Table;
    1729 @end example
    1730 @end ifset
    17311530
    17321531@table @b
     
    18151614
    18161615The format of this table is defined in
    1817 the following @value{LANGUAGE} @value{STRUCTURE}:
    1818 
    1819 @ifset is-C
     1616the following C structure:
     1617
    18201618@example
    18211619typedef struct @{
    1822   rtems_unsigned32                 default_timeout; /* in ticks */
    1823   rtems_unsigned32                 maximum_packet_size;
     1620  uint32_t                        default_timeout; /* in ticks */
     1621  uint32_t                        maximum_packet_size;
    18241622  rtems_mpci_initialization_entry initialization;
    18251623  rtems_mpci_get_packet_entry     get_packet;
    18261624  rtems_mpci_return_packet_entry  return_packet;
    1827   rtems_mpci_send_entry           send;
    1828   rtems_mpci_receive_entry        receive;
     1625  rtems_mpci_send_entry           send_packet;
     1626  rtems_mpci_receive_entry        receive_packet;
    18291627@} rtems_mpci_table;
    18301628@end example
    1831 @end ifset
    1832 
    1833 @ifset is-Ada
    1834 @example
    1835 type MPCI_Table is
    1836    record
    1837       Default_Timeout     : RTEMS.Unsigned32; -- in ticks
    1838       Maximum_Packet_Size : RTEMS.Unsigned32;
    1839       Initialization      : RTEMS.MPCI_Initialization_Entry;
    1840       Get_Packet          : RTEMS.MPCI_Get_Packet_Entry;
    1841       Return_Packet       : RTEMS.MPCI_Return_Packet_Entry;
    1842       Send                : RTEMS.MPCI_Send_Entry;
    1843       Receive             : RTEMS.MPCI_Receive_Entry;
    1844    end record;
    1845 
    1846 type MPCI_Table_Pointer is access all MPCI_Table;
    1847 @end example
    1848 @end ifset
    18491629
    18501630@table @b
  • doc/user/datatypes.t

    r29925d99 rae10dbd  
    281281entry point of the function implementing the TSR.
    282282
    283 @findex rtems_unsigned8
    284 @item @code{@value{DIRPREFIX}unsigned8} is the data
    285 type that corresponds to unsigned eight bit integers.
    286 This data type is defined by RTEMS in a manner that
    287 ensures it is portable across different target processors.
    288 
    289 @findex rtems_unsigned16
    290 @item @code{@value{DIRPREFIX}unsigned16} is the data
    291 type that corresponds to unsigned sixteen bit integers.
    292 This data type is defined by RTEMS in a manner that
    293 ensures it is portable across different target processors.
    294 
    295 @findex rtems_unsigned32
    296 @item @code{@value{DIRPREFIX}unsigned32} is the data
    297 type that corresponds to unsigned thirty-two bit integers.
    298 This data type is defined by RTEMS in a manner that
    299 ensures it is portable across different target processors.
    300 
    301 @findex rtems_unsigned64
    302 @item @code{@value{DIRPREFIX}unsigned64} is the data
    303 type that corresponds to unsigned sixty-four bit integers.
    304 This data type is defined by RTEMS in a manner that
    305 ensures it is portable across different target processors.
    306 
    307283@findex rtems_vector_number
    308284@item @code{@value{DIRPREFIX}vector_number} is the data
  • doc/user/dpmem.t

    r29925d99 rae10dbd  
    114114@example
    115115rtems_status_code rtems_port_create(
    116   rtems_name        name,
    117   void             *internal_start,
    118   void             *external_start,
    119   rtems_unsigned32  length,
    120   rtems_id         *id
     116  rtems_name  name,
     117  void       *internal_start,
     118  void       *external_start,
     119  uint32_t    length,
     120  rtems_id   *id
    121121);
    122122@end example
  • doc/user/fatal.t

    r29925d99 rae10dbd  
    134134@example
    135135void volatile rtems_fatal_error_occurred(
    136   rtems_unsigned32        the_error
     136  uint32_t  the_error
    137137);
    138138@end example
  • doc/user/init.t

    r29925d99 rae10dbd  
    315315@findex rtems_initialize_executive_late
    316316@example
     317void rtems_initialize_executive_late(
     318  rtems_interrupt_level bsp_level
     319);
     320@end example
     321@end ifset
     322
     323@ifset is-Ada
     324@example
    317325NOT SUPPORTED FROM Ada BINDING
    318 @end example
    319 @end ifset
    320 
    321 @ifset is-Ada
    322 @example
    323 procedure Initialize_Executive_Late(
    324   BSP_Level : in    RTEMS.ISR_Level
    325 );
    326326@end example
    327327@end ifset
     
    374374@example
    375375void rtems_shutdown_executive(
    376   rtems_unsigned32 result
     376  uint32_t result
    377377);
    378378@end example
  • doc/user/mp.t

    r29925d99 rae10dbd  
    4444software, to be viewed logically as a single system.
    4545
     46@ifset is-Ada
     47Multiprocessing operations are transparent at the application level.
     48Operations on remote objects are implicitly processed as remote
     49procedure calls.  Although remote operations on objects are supported
     50from Ada tasks, the calls used to support the multiprocessing
     51communications should be implemented in C and are not supported
     52in the Ada binding.  Since there is no Ada binding for RTEMS
     53multiprocessing support services, all examples and data structures
     54shown in this chapter are in C.
     55@end ifset
     56
    4657@section Background
    4758
     
    178189@item The MPCI layer on the destination node senses the
    179190arrival of a packet (commonly in an ISR), and calls the
    180 @code{@value{DIRPREFIX}multiprocessing_announce}
     191@code{rtems_multiprocessing_announce}
    181192directive.  This directive readies the Multiprocessing Server.
    182193
     
    187198@item The MPCI layer on the originating node senses the
    188199arrival of a packet (typically via an interrupt), and calls the RTEMS
    189 @code{@value{DIRPREFIX}multiprocessing_announce} directive.  This directive
     200@code{rtems_multiprocessing_announce} directive.  This directive
    190201readies the Multiprocessing Server.
    191202
     
    285296real-time clock ISR can check for the arrival of a packet.  In
    286297any case, the
    287 @code{@value{DIRPREFIX}multiprocessing_announce} directive must be called
     298@code{rtems_multiprocessing_announce} directive must be called
    288299to announce the arrival of a packet.  After exiting the ISR,
    289300control will be passed to the Multiprocessing Server to process
     
    295306
    296307The INITIALIZATION component of the user-provided
    297 MPCI layer is called as part of the @code{@value{DIRPREFIX}initialize_executive}
     308MPCI layer is called as part of the @code{rtems_initialize_executive}
    298309directive to initialize the MPCI layer and associated hardware.
    299310It is invoked immediately after all of the device drivers have
     
    301312following prototype:
    302313
    303 @ifset is-C
    304314@findex rtems_mpci_entry
    305315@example
     
    310320@end group
    311321@end example
    312 @end ifset
    313 
    314 @ifset is-Ada
    315 @example
    316 NOT SUPPORTED FROM Ada BINDING
    317 @end example
    318 @end ifset
    319322
    320323where configuration is the address of the user's
     
    338341following prototype:
    339342
    340 @ifset is-C
    341343@example
    342344@group
     
    346348@end group
    347349@end example
    348 @end ifset
    349 
    350 @ifset is-Ada
    351 @example
    352 NOT SUPPORTED FROM Ada BINDING
    353 @end example
    354 @end ifset
    355350
    356351where packet is the address of a pointer to a packet.
     
    373368following prototype:
    374369
    375 @ifset is-C
    376370@example
    377371@group
     
    381375@end group
    382376@end example
    383 @end ifset
    384 
    385 @ifset is-Ada
    386 @example
    387 NOT SUPPORTED FROM Ada BINDING
    388 @end example
    389 @end ifset
    390377
    391378where packet is the address of a packet.  If the
     
    400387following prototype:
    401388
    402 @ifset is-C
    403389@example
    404390@group
     
    408394@end group
    409395@end example
    410 @end ifset
    411 
    412 @ifset is-Ada
    413 @example
    414 NOT SUPPORTED FROM Ada BINDING
    415 @end example
    416 @end ifset
    417396
    418397where packet is a pointer to the address of a packet
     
    429408following prototype:
    430409
    431 @ifset is-C
    432410@example
    433411@group
     
    438416@end group
    439417@end example
    440 @end ifset
    441 
    442 @ifset is-Ada
    443 @example
    444 NOT SUPPORTED FROM Ada BINDING
    445 @end example
    446 @end ifset
    447418
    448419where node is the node number of the destination and packet is the
     
    458429@c XXX packet_prefix structure needs to be defined in this document
    459430Many MPCI layers use the @code{packet_length} field of the
    460 @code{@value{DIRPREFIX}packet_prefix} portion
     431@code{rtems_packet_prefix} portion
    461432of the packet to avoid sending unnecessary data.  This is especially
    462433useful if the media connecting the nodes is relatively slow.
    463434
    464435The to_convert field of the MP_packet_prefix portion of the packet indicates
    465 how much of the packet (in @code{@value{DIRPREFIX}unsigned32}'s) may require
     436how much of the packet (in @code{rtems_unsigned32}'s) may require
    466437conversion in a heterogeneous system.
    467438
     
    554525@subsection Announcing a Packet
    555526
    556 The @code{@value{DIRPREFIX}multiprocessing_announce} directive is called by
     527The @code{rtems_multiprocessing_announce} directive is called by
    557528the MPCI layer to inform RTEMS that a packet has arrived from
    558529another node.  This directive can be called from an interrupt
     
    577548@subheading CALLING SEQUENCE:
    578549
    579 @ifset is-C
    580550@findex rtems_multiprocessing_announce
    581551@example
    582552void rtems_multiprocessing_announce( void );
    583553@end example
    584 @end ifset
    585 
    586 @ifset is-Ada
    587 @example
    588 NOT SUPPORTED FROM Ada BINDING
    589 @end example
    590 @end ifset
    591554
    592555@subheading DIRECTIVE STATUS CODES:
  • doc/user/msg.t

    r29925d99 rae10dbd  
    232232rtems_status_code rtems_message_queue_create(
    233233  rtems_name        name,
    234   rtems_unsigned32  count,
    235   rtems_unsigned32  max_message_size,
     234  uint32_t          count,
     235  uint32_t          max_message_size,
    236236  rtems_attribute   attribute_set,
    237237  rtems_id         *id
     
    324324@example
    325325rtems_status_code rtems_message_queue_ident(
    326   rtems_name        name,
    327   rtems_unsigned32  node,
    328   rtems_id         *id
     326  rtems_name  name,
     327  uint32_t    node,
     328  rtems_id   *id
    329329);
    330330@end example
     
    455455@example
    456456rtems_status_code rtems_message_queue_send(
    457   rtems_id           id,
    458   void              *buffer,
    459   rtems_unsigned32   size
     457  rtems_id  id,
     458  void     *buffer,
     459  size_t    size
    460460);
    461461@end example
     
    520520@example
    521521rtems_status_code rtems_message_queue_urgent(
    522   rtems_id           id,
    523   void              *buffer,
    524   rtems_unsigned32   size
     522  rtems_id  id,
     523  void     *buffer,
     524  size_t    size
    525525);
    526526@end example
     
    586586@example
    587587rtems_status_code rtems_message_queue_broadcast(
    588   rtems_id           id,
    589   void              *buffer,
    590   rtems_unsigned32   size,
    591   rtems_unsigned32 *count
     588  rtems_id  id,
     589  void     *buffer,
     590  size_t    size,
     591  uint32_t *count
    592592);
    593593@end example
     
    657657@example
    658658rtems_status_code rtems_message_queue_receive(
    659   rtems_id           id,
    660   void              *buffer,
    661   rtems_unsigned32  *size,
    662   rtems_unsigned32   option_set,
    663   rtems_interval     timeout
     659  rtems_id        id,
     660  void           *buffer,
     661  size_t         *size,
     662  uint32_t        option_set,
     663  rtems_interval  timeout
    664664);
    665665@end example
     
    751751@example
    752752rtems_status_code rtems_message_queue_get_number_pending(
    753   rtems_id          id,
    754   rtems_unsigned32 *count
     753  rtems_id  id,
     754  uint32_t *count
    755755);
    756756@end example
     
    800800@example
    801801rtems_status_code rtems_message_queue_flush(
    802   rtems_id          id,
    803   rtems_unsigned32 *count
     802  rtems_id  id,
     803  uint32_t *count
    804804);
    805805@end example
  • doc/user/part.t

    r29925d99 rae10dbd  
    145145@example
    146146rtems_status_code rtems_partition_create(
    147   rtems_name        name,
    148   void             *starting_address,
    149   rtems_unsigned32  length,
    150   rtems_unsigned32  buffer_size,
    151   rtems_attribute   attribute_set,
    152   rtems_id         *id
     147  rtems_name       name,
     148  void            *starting_address,
     149  uint32_t         length,
     150  uint32_t         buffer_size,
     151  rtems_attribute  attribute_set,
     152  rtems_id        *id
    153153);
    154154@end example
     
    240240@example
    241241rtems_status_code rtems_partition_ident(
    242   rtems_name        name,
    243   rtems_unsigned32  node,
    244   rtems_id         *id
     242  rtems_name  name,
     243  uint32_t    node,
     244  rtems_id   *id
    245245);
    246246@end example
  • doc/user/region.t

    r29925d99 rae10dbd  
    246246@example
    247247rtems_status_code rtems_region_create(
    248   rtems_name        name,
    249   void             *starting_address,
    250   rtems_unsigned32  length,
    251   rtems_unsigned32  page_size,
    252   rtems_attribute   attribute_set,
    253   rtems_id         *id
     248  rtems_name       name,
     249  void            *starting_address,
     250  uint32_t         length,
     251  uint32_t         page_size,
     252  rtems_attribute  attribute_set,
     253  rtems_id        *id
    254254);
    255255@end example
     
    432432@example
    433433rtems_status_code rtems_region_extend(
    434   rtems_id            id,
    435   void               *starting_address,
    436   rtems_unsigned32    length
     434  rtems_id  id,
     435  void     *starting_address,
     436  uint32_t  length
    437437);
    438438@end example
     
    484484@example
    485485rtems_status_code rtems_region_get_segment(
    486   rtems_id            id,
    487   rtems_unsigned32    size,
    488   rtems_option        option_set,
    489   rtems_interval      timeout,
    490   void              **segment
     486  rtems_id         id,
     487  uint32_t         size,
     488  rtems_option     option_set,
     489  rtems_interval   timeout,
     490  void           **segment
    491491);
    492492@end example
     
    638638@example
    639639rtems_status_code rtems_region_get_segment_size(
    640   rtems_id            id,
    641   void               *segment,
    642   rtems_unsigned32   *size
     640  rtems_id  id,
     641  void     *segment,
     642  size_t   *size
    643643);
    644644@end example
  • doc/user/rtmon.t

    r29925d99 rae10dbd  
    826826@end example
    827827
    828 
    829828The above task creates a rate monotonic period as
    830829part of its initialization.  The first time the loop is
     
    12271226@example
    12281227typedef struct @{
     1228  rtems_id                            owner;
    12291229  rtems_rate_monotonic_period_states  state;
    1230   rtems_unsigned32                    ticks_since_last_period;
    1231   rtems_unsigned32                    ticks_executed_since_last_period;
     1230  #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS
     1231    struct timespec                   since_last_period;
     1232  #else
     1233    uint32_t                          ticks_since_last_period;
     1234  #endif
     1235  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
     1236    struct timespec                   executed_since_last_period;
     1237  #else
     1238    uint32_t                          ticks_executed_since_last_period;
     1239  #endif
    12321240@}  rtems_rate_monotonic_period_status;
    12331241@end example
     
    12381246type Rate_Monotonic_Period_Status is
    12391247   begin
     1248      Owner                            : RTEMS.ID;
    12401249      State                            : RTEMS.Rate_Monotonic_Period_States;
    12411250      Ticks_Since_Last_Period          : RTEMS.Unsigned32;
     
    12471256@c RATE_MONOTONIC_INACTIVE does not have RTEMS_ in front of it.
    12481257
    1249 If the period's state is @code{RATE_MONOTONIC_INACTIVE}, both
    1250 ticks_since_last_period and ticks_executed_since_last_period
    1251 will be set to 0.  Otherwise, ticks_since_last_period will
    1252 contain the number of clock ticks which have occurred since
    1253 the last invocation of the
     1258A configure time option can be used to select whether the time information is
     1259given in ticks or seconds and nanoseconds.  The default is seconds and
     1260nanoseconds.  If the period's state is @code{RATE_MONOTONIC_INACTIVE}, both
     1261time values will be set to 0.  Otherwise, both time values will contain
     1262time information since the last invocation of the
     1263@code{@value{DIRPREFIX}rate_monotonic_period} directive.  More
     1264specifically, the (ticks_)since_last_period value contains the elapsed time
     1265which has occurred since the last invocation of the
     1266@code{@value{DIRPREFIX}rate_monotonic_period} directive and the
     1267(ticks_)executed_since_last_period contains how much processor time the
     1268owning task has consumed since the invocation of the
    12541269@code{@value{DIRPREFIX}rate_monotonic_period} directive.
    1255 Also in this case, the ticks_executed_since_last_period will indicate
    1256 how much processor time the owning task has consumed since the invocation
    1257 of the @code{@value{DIRPREFIX}rate_monotonic_period} directive.
    12581270
    12591271@subheading NOTES:
     
    13021314@example
    13031315typedef struct @{
    1304  uint32_t     count;           /* periods executed */
    1305  uint32_t     missed_count;    /* period deadlines missed */
    1306  uint32_t     min_cpu_time;    /* minimum CPU time used in a period */
    1307  uint32_t     max_cpu_time;    /* maximum CPU time used in a period */
    1308  uint32_t     total_cpu_time;  /* total CPU time consumed */
    1309  uint32_t     min_wall_time;   /* minimum wall time used in a period */
    1310  uint32_t     max_wall_time;   /* maximum wall time used in a period */
    1311  uint32_t     total_wall_time; /* total wall time consumed */
     1316  uint32_t     count;
     1317  uint32_t     missed_count;
     1318  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
     1319    struct timespec min_cpu_time;
     1320    struct timespec max_cpu_time;
     1321    struct timespec total_cpu_time;
     1322  #else
     1323    uint32_t  min_cpu_time;
     1324    uint32_t  max_cpu_time;
     1325    uint32_t  total_cpu_time;
     1326  #endif
     1327  #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS
     1328    struct timespec min_wall_time;
     1329    struct timespec max_wall_time;
     1330    struct timespec total_wall_time;
     1331  #else
     1332    uint32_t  min_wall_time;
     1333    uint32_t  max_wall_time;
     1334    uint32_t  total_wall_time;
     1335  #endif
    13121336@}  rtems_rate_monotonic_period_statistics;
    13131337@end example
  • doc/user/sem.t

    r29925d99 rae10dbd  
    387387rtems_status_code rtems_semaphore_create(
    388388  rtems_name           name,
    389   rtems_unsigned32     count,
     389  uint32_t             count,
    390390  rtems_attribute      attribute_set,
    391391  rtems_task_priority  priority_ceiling,
     
    500500@example
    501501rtems_status_code rtems_semaphore_ident(
    502   rtems_name        name,
    503   rtems_unsigned32  node,
    504   rtems_id         *id
     502  rtems_name  name,
     503  uint32_t    node,
     504  rtems_id   *id
    505505);
    506506@end example
     
    628628@example
    629629rtems_status_code rtems_semaphore_obtain(
    630   rtems_id         id,
    631   rtems_unsigned32 option_set,
    632   rtems_interval   timeout
     630  rtems_id        id,
     631  uint32_t        option_set,
     632  rtems_interval  timeout
    633633);
    634634@end example
  • doc/user/task.t

    r29925d99 rae10dbd  
    690690  rtems_name           name,
    691691  rtems_task_priority  initial_priority,
    692   rtems_unsigned32     stack_size,
     692  size_t               stack_size,
    693693  rtems_mode           initial_modes,
    694694  rtems_attribute      attribute_set,
     
    802802@example
    803803rtems_status_code rtems_task_ident(
    804   rtems_name        name,
    805   rtems_unsigned32  node,
    806   rtems_id         *id
     804  rtems_name  name,
     805  uint32_t    node,
     806  rtems_id   *id
    807807);
    808808@end example
     
    14161416@example
    14171417rtems_status_code rtems_task_get_note(
    1418   rtems_id          id,
    1419   rtems_unsigned32  notepad,
    1420   rtems_unsigned32 *note
     1418  rtems_id  id,
     1419  uint32_t  notepad,
     1420  uint32_t *note
    14211421);
    14221422@end example
     
    14731473@example
    14741474rtems_status_code rtems_task_set_note(
    1475   rtems_id         id,
    1476   rtems_unsigned32 notepad,
    1477   rtems_unsigned32 note
     1475  rtems_id  id,
     1476  uint32_t notepad,
     1477  uint32_t note
    14781478);
    14791479@end example
     
    15621562
    15631563The maximum timer interval that can be specified is the maximum
    1564 value which can be represented by the rtems_unsigned32 type.
     1564value which can be represented by the uint32_t type.
    15651565
    15661566A clock tick is required to support the functionality of this directive.
  • doc/user/timer.t

    r29925d99 rae10dbd  
    516516@example
    517517rtems_status_code rtems_timer_initiate_server(
    518   rtems_unsigned32     priority,
    519   rtems_unsigned32     stack_size,
    520   rtems_attribute      attribute_set
     518  uint32_t         priority,
     519  uint32_t         stack_size,
     520  rtems_attribute  attribute_set
    521521)
    522522);
Note: See TracChangeset for help on using the changeset viewer.