RTEMS Documentation Project
RTEMS Classic API Guide
5.2
1. Preface
2. Overview
2.1. Introduction
2.2. Real-time Application Systems
2.3. Real-time Executive
2.4. RTEMS Application Architecture
2.5. RTEMS Internal Architecture
2.6. User Customization and Extensibility
2.7. Portability
2.8. Memory Requirements
2.9. Audience
2.10. Conventions
2.11. Manual Organization
3. Key Concepts
3.1. Introduction
3.2. Objects
3.2.1. Object Names
3.2.2. Object IDs
3.2.2.1. Object ID Format
3.2.3. Object ID Description
3.3. Communication and Synchronization
3.4. Locking Protocols
3.4.1. Priority Inversion
3.4.2. Immediate Ceiling Priority Protocol (ICPP)
3.4.3. Priority Inheritance Protocol
3.4.4. Multiprocessor Resource Sharing Protocol (MrsP)
3.4.5. O(m) Independence-Preserving Protocol (OMIP)
3.5. Thread Queues
3.6. Time
3.7. Timer and Timeouts
3.8. Memory Management
4. RTEMS Data Types
4.1. Introduction
4.2. List of Data Types
5. Scheduling Concepts
5.1. Introduction
5.1.1. Scheduling Algorithms
5.1.2. Priority Scheduling
5.2. Uniprocessor Schedulers
5.2.1. Deterministic Priority Scheduler
5.2.2. Simple Priority Scheduler
5.2.3. Earliest Deadline First Scheduler
5.2.4. Constant Bandwidth Server Scheduling (CBS)
5.3. SMP Schedulers
5.3.1. Earliest Deadline First SMP Scheduler
5.3.2. Deterministic Priority SMP Scheduler
5.3.3. Simple Priority SMP Scheduler
5.3.4. Arbitrary Processor Affinity Priority SMP Scheduler
5.4. Scheduling Modification Mechanisms
5.4.1. Task Priority and Scheduling
5.4.2. Preemption
5.4.3. Timeslicing
5.4.4. Manual Round-Robin
5.5. Dispatching Tasks
5.6. Task State Transitions
5.7. Directives
5.7.1. SCHEDULER_IDENT - Get ID of a scheduler
5.7.2. SCHEDULER_IDENT_BY_PROCESSOR - Get ID of a scheduler by processor
5.7.3. SCHEDULER_IDENT_BY_PROCESSOR_SET - Get ID of a scheduler by processor set
5.7.4. SCHEDULER_GET_MAXIMUM_PRIORITY - Get maximum task priority of a scheduler
5.7.5. SCHEDULER_MAP_PRIORITY_TO_POSIX - Map task priority to POSIX thread prority
5.7.6. SCHEDULER_MAP_PRIORITY_FROM_POSIX - Map POSIX thread prority to task priority
5.7.7. SCHEDULER_GET_PROCESSOR - Get current processor index
5.7.8. SCHEDULER_GET_PROCESSOR_MAXIMUM - Get processor maximum
5.7.9. SCHEDULER_GET_PROCESSOR_SET - Get processor set of a scheduler
5.7.10. SCHEDULER_ADD_PROCESSOR - Add processor to a scheduler
5.7.11. SCHEDULER_REMOVE_PROCESSOR - Remove processor from a scheduler
6. Initialization Manager
6.1. Introduction
6.2. Background
6.2.1. Initialization Tasks
6.2.2. The Idle Task
6.2.3. Initialization Manager Failure
6.3. Operations
6.3.1. Initializing RTEMS
6.3.2. Global Construction
6.4. Directives
6.4.1. INITIALIZE_EXECUTIVE - Initialize RTEMS
7. Task Manager
7.1. Introduction
7.2. Background
7.2.1. Task Definition
7.2.2. Task Control Block
7.2.3. Task Memory
7.2.4. Task Name
7.2.5. Task States
7.2.6. Task Priority
7.2.7. Task Mode
7.2.8. Accessing Task Arguments
7.2.9. Floating Point Considerations
7.2.10. Building a Task Attribute Set
7.2.11. Building a Mode and Mask
7.3. Operations
7.3.1. Creating Tasks
7.3.2. Obtaining Task IDs
7.3.3. Starting and Restarting Tasks
7.3.4. Suspending and Resuming Tasks
7.3.5. Delaying the Currently Executing Task
7.3.6. Changing Task Priority
7.3.7. Changing Task Mode
7.3.8. Task Deletion
7.3.9. Setting Affinity to a Single Processor
7.3.10. Transition Advice for Removed Notepads
7.3.11. Transition Advice for Removed Task Variables
7.4. Directives
7.4.1. TASK_CREATE - Create a task
7.4.2. TASK_IDENT - Get ID of a task
7.4.3. TASK_SELF - Obtain ID of caller
7.4.4. TASK_START - Start a task
7.4.5. TASK_RESTART - Restart a task
7.4.6. TASK_DELETE - Delete a task
7.4.7. TASK_EXIT - Delete the calling task
7.4.8. TASK_SUSPEND - Suspend a task
7.4.9. TASK_RESUME - Resume a task
7.4.10. TASK_IS_SUSPENDED - Determine if a task is Suspended
7.4.11. TASK_SET_PRIORITY - Set task priority
7.4.12. TASK_GET_PRIORITY - Get task priority
7.4.13. TASK_MODE - Change the current task mode
7.4.14. TASK_WAKE_AFTER - Wake up after interval
7.4.15. TASK_WAKE_WHEN - Wake up when specified
7.4.16. TASK_GET_SCHEDULER - Get scheduler of a task
7.4.17. TASK_SET_SCHEDULER - Set scheduler of a task
7.4.18. TASK_GET_AFFINITY - Get task processor affinity
7.4.19. TASK_SET_AFFINITY - Set task processor affinity
7.4.20. TASK_ITERATE - Iterate Over Tasks
7.5. Deprecated Directives
7.5.1. ITERATE_OVER_ALL_THREADS - Iterate Over Tasks
7.6. Removed Directives
7.6.1. TASK_GET_NOTE - Get task notepad entry
7.6.2. TASK_SET_NOTE - Set task notepad entry
7.6.3. TASK_VARIABLE_ADD - Associate per task variable
7.6.4. TASK_VARIABLE_GET - Obtain value of a per task variable
7.6.5. TASK_VARIABLE_DELETE - Remove per task variable
8. Interrupt Manager
8.1. Introduction
8.2. Background
8.2.1. Processing an Interrupt
8.2.2. RTEMS Interrupt Levels
8.2.3. Disabling of Interrupts by RTEMS
8.3. Operations
8.3.1. Establishing an ISR
8.3.2. Directives Allowed from an ISR
8.4. Directives
8.4.1. INTERRUPT_CATCH - Establish an ISR
8.4.2. INTERRUPT_DISABLE - Disable Interrupts
8.4.3. INTERRUPT_ENABLE - Restore Interrupt Level
8.4.4. INTERRUPT_FLASH - Flash Interrupts
8.4.5. INTERRUPT_LOCAL_DISABLE - Disable Interrupts on Current Processor
8.4.6. INTERRUPT_LOCAL_ENABLE - Restore Interrupt Level on Current Processor
8.4.7. INTERRUPT_LOCK_INITIALIZE - Initialize an ISR Lock
8.4.8. INTERRUPT_LOCK_ACQUIRE - Acquire an ISR Lock
8.4.9. INTERRUPT_LOCK_RELEASE - Release an ISR Lock
8.4.10. INTERRUPT_LOCK_ACQUIRE_ISR - Acquire an ISR Lock from ISR
8.4.11. INTERRUPT_LOCK_RELEASE_ISR - Release an ISR Lock from ISR
8.4.12. INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress
9. Clock Manager
9.1. Introduction
9.2. Background
9.2.1. Required Support
9.2.2. Time and Date Data Structures
9.2.3. Clock Tick and Timeslicing
9.2.4. Delays
9.2.5. Timeouts
9.3. Operations
9.3.1. Announcing a Tick
9.3.2. Setting the Time
9.3.3. Obtaining the Time
9.3.4. Transition Advice for the Removed rtems_clock_get()
9.4. Directives
9.4.1. CLOCK_SET - Set date and time
9.4.2. CLOCK_GET_TOD - Get date and time in TOD format
9.4.3. CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format
9.4.4. CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch
9.4.5. CLOCK_GET_TICKS_PER_SECOND - Get ticks per second
9.4.6. CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value
9.4.7. CLOCK_TICK_LATER - Get tick value in the future
9.4.8. CLOCK_TICK_LATER_USEC - Get tick value in the future in microseconds
9.4.9. CLOCK_TICK_BEFORE - Is tick value is before a point in time
9.4.10. CLOCK_GET_UPTIME - Get the time since boot
9.4.11. CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format
9.4.12. CLOCK_GET_UPTIME_SECONDS - Get the seconds since boot
9.4.13. CLOCK_GET_UPTIME_NANOSECONDS - Get the nanoseconds since boot
9.5. Removed Directives
9.5.1. CLOCK_GET - Get date and time information
10. Timer Manager
10.1. Introduction
10.2. Background
10.2.1. Required Support
10.2.2. Timers
10.2.3. Timer Server
10.2.4. Timer Service Routines
10.3. Operations
10.3.1. Creating a Timer
10.3.2. Obtaining Timer IDs
10.3.3. Initiating an Interval Timer
10.3.4. Initiating a Time of Day Timer
10.3.5. Canceling a Timer
10.3.6. Resetting a Timer
10.3.7. Initiating the Timer Server
10.3.8. Deleting a Timer
10.4. Directives
10.4.1. TIMER_CREATE - Create a timer
10.4.2. TIMER_IDENT - Get ID of a timer
10.4.3. TIMER_CANCEL - Cancel a timer
10.4.4. TIMER_DELETE - Delete a timer
10.4.5. TIMER_FIRE_AFTER - Fire timer after interval
10.4.6. TIMER_FIRE_WHEN - Fire timer when specified
10.4.7. TIMER_INITIATE_SERVER - Initiate server for task-based timers
10.4.8. TIMER_SERVER_FIRE_AFTER - Fire task-based timer after interval
10.4.9. TIMER_SERVER_FIRE_WHEN - Fire task-based timer when specified
10.4.10. TIMER_RESET - Reset an interval timer
11. Rate Monotonic Manager
11.1. Introduction
11.2. Background
11.2.1. Rate Monotonic Manager Required Support
11.2.2. Period Statistics
11.2.3. Periodicity Definitions
11.2.4. Rate Monotonic Scheduling Algorithm
11.2.5. Schedulability Analysis
11.2.5.1. Assumptions
11.2.5.2. Processor Utilization Rule
11.2.5.3. Processor Utilization Rule Example
11.2.5.4. First Deadline Rule
11.2.5.5. First Deadline Rule Example
11.2.5.6. Relaxation of Assumptions
11.3. Operations
11.3.1. Creating a Rate Monotonic Period
11.3.2. Manipulating a Period
11.3.3. Obtaining the Status of a Period
11.3.4. Canceling a Period
11.3.5. Deleting a Rate Monotonic Period
11.3.6. Examples
11.3.7. Simple Periodic Task
11.3.8. Task with Multiple Periods
11.4. Directives
11.4.1. RATE_MONOTONIC_CREATE - Create a rate monotonic period
11.4.2. RATE_MONOTONIC_IDENT - Get ID of a period
11.4.3. RATE_MONOTONIC_CANCEL - Cancel a period
11.4.4. RATE_MONOTONIC_DELETE - Delete a rate monotonic period
11.4.5. RATE_MONOTONIC_PERIOD - Conclude current/Start next period
11.4.6. RATE_MONOTONIC_GET_STATUS - Obtain status from a period
11.4.7. RATE_MONOTONIC_GET_STATISTICS - Obtain statistics from a period
11.4.8. RATE_MONOTONIC_RESET_STATISTICS - Reset statistics for a period
11.4.9. RATE_MONOTONIC_RESET_ALL_STATISTICS - Reset statistics for all periods
11.4.10. RATE_MONOTONIC_REPORT_STATISTICS - Print period statistics report
12. Semaphore Manager
12.1. Introduction
12.2. Background
12.2.1. Nested Resource Access
12.2.2. Priority Inheritance
12.2.3. Priority Ceiling
12.2.4. Multiprocessor Resource Sharing Protocol
12.2.5. Building a Semaphore Attribute Set
12.2.6. Building a SEMAPHORE_OBTAIN Option Set
12.3. Operations
12.3.1. Creating a Semaphore
12.3.2. Obtaining Semaphore IDs
12.3.3. Acquiring a Semaphore
12.3.4. Releasing a Semaphore
12.3.5. Deleting a Semaphore
12.4. Directives
12.4.1. SEMAPHORE_CREATE - Create a semaphore
12.4.2. SEMAPHORE_IDENT - Get ID of a semaphore
12.4.3. SEMAPHORE_DELETE - Delete a semaphore
12.4.4. SEMAPHORE_OBTAIN - Acquire a semaphore
12.4.5. SEMAPHORE_RELEASE - Release a semaphore
12.4.6. SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore
12.4.7. SEMAPHORE_SET_PRIORITY - Set priority by scheduler for a semaphore
13. Barrier Manager
13.1. Introduction
13.2. Background
13.2.1. Automatic Versus Manual Barriers
13.2.2. Building a Barrier Attribute Set
13.3. Operations
13.3.1. Creating a Barrier
13.3.2. Obtaining Barrier IDs
13.3.3. Waiting at a Barrier
13.3.4. Releasing a Barrier
13.3.5. Deleting a Barrier
13.4. Directives
13.4.1. BARRIER_CREATE - Create a barrier
13.4.2. BARRIER_IDENT - Get ID of a barrier
13.4.3. BARRIER_DELETE - Delete a barrier
13.4.4. BARRIER_WAIT - Wait at a barrier
13.4.5. BARRIER_RELEASE - Release a barrier
14. Message Manager
14.1. Introduction
14.2. Background
14.2.1. Messages
14.2.2. Message Queues
14.2.3. Building a Message Queue Attribute Set
14.2.4. Building a MESSAGE_QUEUE_RECEIVE Option Set
14.3. Operations
14.3.1. Creating a Message Queue
14.3.2. Obtaining Message Queue IDs
14.3.3. Receiving a Message
14.3.4. Sending a Message
14.3.5. Broadcasting a Message
14.3.6. Deleting a Message Queue
14.4. Directives
14.4.1. MESSAGE_QUEUE_CREATE - Create a queue
14.4.2. MESSAGE_QUEUE_IDENT - Get ID of a queue
14.4.3. MESSAGE_QUEUE_DELETE - Delete a queue
14.4.4. MESSAGE_QUEUE_SEND - Put message at rear of a queue
14.4.5. MESSAGE_QUEUE_URGENT - Put message at front of a queue
14.4.6. MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue
14.4.7. MESSAGE_QUEUE_RECEIVE - Receive message from a queue
14.4.8. MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue
14.4.9. MESSAGE_QUEUE_FLUSH - Flush all messages on a queue
15. Event Manager
15.1. Introduction
15.2. Background
15.2.1. Event Sets
15.2.2. Building an Event Set or Condition
15.2.3. Building an EVENT_RECEIVE Option Set
15.3. Operations
15.3.1. Sending an Event Set
15.3.2. Receiving an Event Set
15.3.3. Determining the Pending Event Set
15.3.4. Receiving all Pending Events
15.4. Directives
15.4.1. EVENT_SEND - Send event set to a task
15.4.2. EVENT_RECEIVE - Receive event condition
16. Signal Manager
16.1. Introduction
16.2. Background
16.2.1. Signal Manager Definitions
16.2.2. A Comparison of ASRs and ISRs
16.2.3. Building a Signal Set
16.2.4. Building an ASR Mode
16.3. Operations
16.3.1. Establishing an ASR
16.3.2. Sending a Signal Set
16.3.3. Processing an ASR
16.4. Directives
16.4.1. SIGNAL_CATCH - Establish an ASR
16.4.2. SIGNAL_SEND - Send signal set to a task
17. Partition Manager
17.1. Introduction
17.2. Background
17.2.1. Partition Manager Definitions
17.2.2. Building a Partition Attribute Set
17.3. Operations
17.3.1. Creating a Partition
17.3.2. Obtaining Partition IDs
17.3.3. Acquiring a Buffer
17.3.4. Releasing a Buffer
17.3.5. Deleting a Partition
17.4. Directives
17.4.1. PARTITION_CREATE - Create a partition
17.4.2. PARTITION_IDENT - Get ID of a partition
17.4.3. PARTITION_DELETE - Delete a partition
17.4.4. PARTITION_GET_BUFFER - Get buffer from a partition
17.4.5. PARTITION_RETURN_BUFFER - Return buffer to a partition
18. Region Manager
18.1. Introduction
18.2. Background
18.2.1. Region Manager Definitions
18.2.2. Building an Attribute Set
18.2.3. Building an Option Set
18.3. Operations
18.3.1. Creating a Region
18.3.2. Obtaining Region IDs
18.3.3. Adding Memory to a Region
18.3.4. Acquiring a Segment
18.3.5. Releasing a Segment
18.3.6. Obtaining the Size of a Segment
18.3.7. Changing the Size of a Segment
18.3.8. Deleting a Region
18.4. Directives
18.4.1. REGION_CREATE - Create a region
18.4.2. REGION_IDENT - Get ID of a region
18.4.3. REGION_DELETE - Delete a region
18.4.4. REGION_EXTEND - Add memory to a region
18.4.5. REGION_GET_SEGMENT - Get segment from a region
18.4.6. REGION_RETURN_SEGMENT - Return segment to a region
18.4.7. REGION_GET_SEGMENT_SIZE - Obtain size of a segment
18.4.8. REGION_RESIZE_SEGMENT - Change size of a segment
18.4.9. REGION_GET_INFORMATION - Get region information
18.4.10. REGION_GET_FREE_INFORMATION - Get region free information
19. Dual-Ported Memory Manager
19.1. Introduction
19.2. Background
19.3. Operations
19.3.1. Creating a Port
19.3.2. Obtaining Port IDs
19.3.3. Converting an Address
19.3.4. Deleting a DPMA Port
19.4. Directives
19.4.1. PORT_CREATE - Create a port
19.4.2. PORT_IDENT - Get ID of a port
19.4.3. PORT_DELETE - Delete a port
19.4.4. PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address
19.4.5. PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address
20. I/O Manager
20.1. Introduction
20.2. Background
20.2.1. Device Driver Table
20.2.2. Major and Minor Device Numbers
20.2.3. Device Names
20.2.4. Device Driver Environment
20.2.5. Runtime Driver Registration
20.2.6. Device Driver Interface
20.2.7. Device Driver Initialization
20.3. Operations
20.3.1. Register and Lookup Name
20.3.2. Accessing an Device Driver
20.4. Directives
20.4.1. IO_REGISTER_DRIVER - Register a device driver
20.4.2. IO_UNREGISTER_DRIVER - Unregister a device driver
20.4.3. IO_INITIALIZE - Initialize a device driver
20.4.4. IO_REGISTER_NAME - Register a device
20.4.5. IO_LOOKUP_NAME - Lookup a device
20.4.6. IO_OPEN - Open a device
20.4.7. IO_CLOSE - Close a device
20.4.8. IO_READ - Read from a device
20.4.9. IO_WRITE - Write to a device
20.4.10. IO_CONTROL - Special device services
21. Fatal Error Manager
21.1. Introduction
21.2. Background
21.2.1. Overview
21.2.2. Fatal Sources
21.2.3. Internal Error Codes
21.3. Operations
21.3.1. Announcing a Fatal Error
21.4. Directives
21.4.1. FATAL - Invoke the fatal error handler
21.4.2. PANIC - Print a message and invoke the fatal error handler
21.4.3. SHUTDOWN_EXECUTIVE - Shutdown RTEMS
21.4.4. EXCEPTION_FRAME_PRINT - Prints the exception frame
21.4.5. FATAL_SOURCE_TEXT - Returns a text for a fatal source
21.4.6. INTERNAL_ERROR_TEXT - Returns a text for an internal error code
21.4.7. FATAL_ERROR_OCCURRED - Invoke the fatal error handler (deprecated)
22. Board Support Packages
22.1. Introduction
22.2. Reset and Initialization
22.2.1. Interrupt Stack Requirements
22.2.2. Processors with a Separate Interrupt Stack
22.2.3. Processors Without a Separate Interrupt Stack
22.3. Device Drivers
22.3.1. Clock Tick Device Driver
22.4. User Extensions
22.5. Multiprocessor Communications Interface (MPCI)
22.5.1. Tightly-Coupled Systems
22.5.2. Loosely-Coupled Systems
22.5.3. Systems with Mixed Coupling
22.5.4. Heterogeneous Systems
23. User Extensions Manager
23.1. Introduction
23.2. Background
23.2.1. Extension Sets
23.2.2. TCB Extension Area
23.2.3. Order of Invocation
23.2.4. Thread Create Extension
23.2.5. Thread Start Extension
23.2.6. Thread Restart Extension
23.2.7. Thread Switch Extension
23.2.8. Thread Begin Extension
23.2.9. Thread Exitted Extension
23.2.10. Thread Termination Extension
23.2.11. Thread Delete Extension
23.2.12. Fatal Error Extension
23.3. Directives
23.3.1. EXTENSION_CREATE - Create a extension set
23.3.2. EXTENSION_IDENT - Get ID of a extension set
23.3.3. EXTENSION_DELETE - Delete a extension set
24. Configuring a System
24.1. Introduction
24.2. Default Value Selection Philosophy
24.3. Sizing the RTEMS Workspace
24.4. Potential Issues with RTEMS Workspace Size Estimation
24.5. Configuration Example
24.6. Unlimited Objects
24.6.1. Unlimited Objects by Class
24.6.2. Unlimited Objects by Default
24.7. General System Configuration
24.7.1. CONFIGURE_DIRTY_MEMORY
24.7.2. CONFIGURE_DISABLE_NEWLIB_REENTRANCY
24.7.3. CONFIGURE_EXECUTIVE_RAM_SIZE
24.7.4. CONFIGURE_EXTRA_TASK_STACKS
24.7.5. CONFIGURE_INITIAL_EXTENSIONS
24.7.6. CONFIGURE_INTERRUPT_STACK_SIZE
24.7.7. CONFIGURE_MALLOC_DIRTY
24.7.8. CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
24.7.9. CONFIGURE_MAXIMUM_PROCESSORS
24.7.10. CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
24.7.11. CONFIGURE_MEMORY_OVERHEAD
24.7.12. CONFIGURE_MESSAGE_BUFFER_MEMORY
24.7.13. CONFIGURE_MICROSECONDS_PER_TICK
24.7.14. CONFIGURE_MINIMUM_TASK_STACK_SIZE
24.7.15. CONFIGURE_STACK_CHECKER_ENABLED
24.7.16. CONFIGURE_TICKS_PER_TIMESLICE
24.7.17. CONFIGURE_UNIFIED_WORK_AREAS
24.7.18. CONFIGURE_UNLIMITED_ALLOCATION_SIZE
24.7.19. CONFIGURE_UNLIMITED_OBJECTS
24.7.20. CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
24.7.21. CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
24.8. Device Driver Configuration
24.8.1. CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
24.8.2. CONFIGURE_APPLICATION_EXTRA_DRIVERS
24.8.3. CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
24.8.4. CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
24.8.5. CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
24.8.6. CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
24.8.7. CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
24.8.8. CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
24.8.9. CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
24.8.10. CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
24.8.11. CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
24.8.12. CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
24.8.13. CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
24.8.14. CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
24.8.15. CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
24.8.16. CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
24.8.17. CONFIGURE_ATA_DRIVER_TASK_PRIORITY
24.8.18. CONFIGURE_MAXIMUM_DRIVERS
24.9. Classic API Configuration
24.9.1. CONFIGURE_MAXIMUM_BARRIERS
24.9.2. CONFIGURE_MAXIMUM_MESSAGE_QUEUES
24.9.3. CONFIGURE_MAXIMUM_PARTITIONS
24.9.4. CONFIGURE_MAXIMUM_PERIODS
24.9.5. CONFIGURE_MAXIMUM_PORTS
24.9.6. CONFIGURE_MAXIMUM_REGIONS
24.9.7. CONFIGURE_MAXIMUM_SEMAPHORES
24.9.8. CONFIGURE_MAXIMUM_TASKS
24.9.9. CONFIGURE_MAXIMUM_TIMERS
24.9.10. CONFIGURE_MAXIMUM_USER_EXTENSIONS
24.10. Classic API Initialization Task Configuration
24.10.1. CONFIGURE_INIT_TASK_ARGUMENTS
24.10.2. CONFIGURE_INIT_TASK_ATTRIBUTES
24.10.3. CONFIGURE_INIT_TASK_ENTRY_POINT
24.10.4. CONFIGURE_INIT_TASK_INITIAL_MODES
24.10.5. CONFIGURE_INIT_TASK_NAME
24.10.6. CONFIGURE_INIT_TASK_PRIORITY
24.10.7. CONFIGURE_INIT_TASK_STACK_SIZE
24.10.8. CONFIGURE_RTEMS_INIT_TASKS_TABLE
24.11. POSIX API Configuration
24.11.1. CONFIGURE_MAXIMUM_POSIX_KEYS
24.11.2. CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
24.11.3. CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
24.11.4. CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
24.11.5. CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
24.11.6. CONFIGURE_MAXIMUM_POSIX_SHMS
24.11.7. CONFIGURE_MAXIMUM_POSIX_THREADS
24.11.8. CONFIGURE_MAXIMUM_POSIX_TIMERS
24.11.9. CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
24.12. POSIX Initialization Thread Configuration
24.12.1. CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
24.12.2. CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
24.12.3. CONFIGURE_POSIX_INIT_THREAD_TABLE
24.13. Event Recording Configuration
24.13.1. CONFIGURE_RECORD_EXTENSIONS_ENABLED
24.13.2. CONFIGURE_RECORD_FATAL_DUMP_BASE64
24.13.3. CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
24.13.4. CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
24.14. Filesystem Configuration
24.14.1. CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
24.14.2. CONFIGURE_FILESYSTEM_ALL
24.14.3. CONFIGURE_FILESYSTEM_DOSFS
24.14.4. CONFIGURE_FILESYSTEM_FTPFS
24.14.5. CONFIGURE_FILESYSTEM_IMFS
24.14.6. CONFIGURE_FILESYSTEM_JFFS2
24.14.7. CONFIGURE_FILESYSTEM_NFS
24.14.8. CONFIGURE_FILESYSTEM_RFS
24.14.9. CONFIGURE_FILESYSTEM_TFTPFS
24.14.10. CONFIGURE_IMFS_DISABLE_CHMOD
24.14.11. CONFIGURE_IMFS_DISABLE_CHOWN
24.14.12. CONFIGURE_IMFS_DISABLE_LINK
24.14.13. CONFIGURE_IMFS_DISABLE_MKNOD
24.14.14. CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
24.14.15. CONFIGURE_IMFS_DISABLE_MKNOD_FILE
24.14.16. CONFIGURE_IMFS_DISABLE_MOUNT
24.14.17. CONFIGURE_IMFS_DISABLE_READDIR
24.14.18. CONFIGURE_IMFS_DISABLE_READLINK
24.14.19. CONFIGURE_IMFS_DISABLE_RENAME
24.14.20. CONFIGURE_IMFS_DISABLE_RMNOD
24.14.21. CONFIGURE_IMFS_DISABLE_SYMLINK
24.14.22. CONFIGURE_IMFS_DISABLE_UNMOUNT
24.14.23. CONFIGURE_IMFS_DISABLE_UTIME
24.14.24. CONFIGURE_IMFS_ENABLE_MKFIFO
24.14.25. CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
24.14.26. CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
24.14.27. CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
24.15. Block Device Cache Configuration
24.15.1. CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
24.15.2. CONFIGURE_BDBUF_BUFFER_MAX_SIZE
24.15.3. CONFIGURE_BDBUF_BUFFER_MIN_SIZE
24.15.4. CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
24.15.5. CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
24.15.6. CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
24.15.7. CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
24.15.8. CONFIGURE_BDBUF_TASK_STACK_SIZE
24.15.9. CONFIGURE_SWAPOUT_BLOCK_HOLD
24.15.10. CONFIGURE_SWAPOUT_SWAP_PERIOD
24.15.11. CONFIGURE_SWAPOUT_TASK_PRIORITY
24.15.12. CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
24.15.13. CONFIGURE_SWAPOUT_WORKER_TASKS
24.16. Task Stack Allocator Configuration
24.16.1. CONFIGURE_TASK_STACK_ALLOCATOR
24.16.2. CONFIGURE_TASK_STACK_ALLOCATOR_INIT
24.16.3. CONFIGURE_TASK_STACK_DEALLOCATOR
24.16.4. CONFIGURE_TASK_STACK_FROM_ALLOCATOR
24.16.5. CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
24.16.6. CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
24.17. Idle Task Configuration
24.17.1. CONFIGURE_IDLE_TASK_BODY
24.17.2. CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
24.17.3. CONFIGURE_IDLE_TASK_STACK_SIZE
24.18. General Scheduler Configuration
24.18.1. CONFIGURE_CBS_MAXIMUM_SERVERS
24.18.2. CONFIGURE_MAXIMUM_PRIORITY
24.18.3. CONFIGURE_SCHEDULER_ASSIGNMENTS
24.18.4. CONFIGURE_SCHEDULER_CBS
24.18.5. CONFIGURE_SCHEDULER_EDF
24.18.6. CONFIGURE_SCHEDULER_EDF_SMP
24.18.7. CONFIGURE_SCHEDULER_NAME
24.18.8. CONFIGURE_SCHEDULER_PRIORITY
24.18.9. CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
24.18.10. CONFIGURE_SCHEDULER_PRIORITY_SMP
24.18.11. CONFIGURE_SCHEDULER_SIMPLE
24.18.12. CONFIGURE_SCHEDULER_SIMPLE_SMP
24.18.13. CONFIGURE_SCHEDULER_STRONG_APA
24.18.14. CONFIGURE_SCHEDULER_USER
24.19. Clustered Scheduler Configuration
24.19.1. Configuration Step 1 - Scheduler Algorithms
24.19.2. Configuration Step 2 - Schedulers
24.19.3. Configuration Step 3 - Scheduler Table
24.19.4. Configuration Step 4 - Processor to Scheduler Assignment
24.19.5. Configuration Example
24.19.6. Configuration Errors
24.20. BSP Related Configuration Options
24.20.1. BSP_IDLE_TASK_BODY
24.20.2. BSP_IDLE_TASK_STACK_SIZE
24.20.3. BSP_INITIAL_EXTENSION
24.20.4. BSP_INTERRUPT_STACK_SIZE
24.20.5. CONFIGURE_BSP_PREREQUISITE_DRIVERS
24.20.6. CONFIGURE_DISABLE_BSP_SETTINGS
24.20.7. CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
24.21. Multiprocessing Configuration
24.21.1. CONFIGURE_MP_APPLICATION
24.21.2. CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
24.21.3. CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
24.21.4. CONFIGURE_MP_MAXIMUM_NODES
24.21.5. CONFIGURE_MP_MAXIMUM_PROXIES
24.21.6. CONFIGURE_MP_MPCI_TABLE_POINTER
24.21.7. CONFIGURE_MP_NODE_NUMBER
24.22. PCI Library Configuration
24.23. Ada Configuration
24.24. Obsolete Configuration Options
24.24.1. CONFIGURE_BDBUF_BUFFER_COUNT
24.24.2. CONFIGURE_BDBUF_BUFFER_SIZE
24.24.3. CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
24.24.4. CONFIGURE_ENABLE_GO
24.24.5. CONFIGURE_GNAT_RTEMS
24.24.6. CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
24.24.7. CONFIGURE_HAS_OWN_BDBUF_TABLE
24.24.8. CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
24.24.9. CONFIGURE_HAS_OWN_INIT_TASK_TABLE
24.24.10. CONFIGURE_HAS_OWN_MOUNT_TABLE
24.24.11. CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
24.24.12. CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
24.24.13. CONFIGURE_MAXIMUM_ADA_TASKS
24.24.14. CONFIGURE_MAXIMUM_DEVICES
24.24.15. CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
24.24.16. CONFIGURE_MAXIMUM_GO_CHANNELS
24.24.17. CONFIGURE_MAXIMUM_GOROUTINES
24.24.18. CONFIGURE_MAXIMUM_MRSP_SEMAPHORES
24.24.19. CONFIGURE_NUMBER_OF_TERMIOS_PORTS
24.24.20. CONFIGURE_MAXIMUM_POSIX_BARRIERS
24.24.21. CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
24.24.22. CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
24.24.23. CONFIGURE_MAXIMUM_POSIX_MUTEXES
24.24.24. CONFIGURE_MAXIMUM_POSIX_RWLOCKS
24.24.25. CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
24.24.26. CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
24.24.27. CONFIGURE_SMP_APPLICATION
24.24.28. CONFIGURE_SMP_MAXIMUM_PROCESSORS
24.24.29. CONFIGURE_TERMIOS_DISABLED
25. Self-Contained Objects
25.1. Introduction
25.2. RTEMS Thread API
25.3. Mutual Exclusion
25.3.1. Static mutex initialization
25.3.2. Run-time mutex initialization
25.3.3. Lock the mutex
25.3.4. Unlock the mutex
25.3.5. Set mutex name
25.3.6. Get mutex name
25.3.7. Mutex destruction
25.4. Condition Variables
25.4.1. Static condition variable initialization
25.4.2. Run-time condition variable initialization
25.4.3. Wait for condition signal
25.4.4. Signals a condition change
25.4.5. Broadcasts a condition change
25.4.6. Set condition variable name
25.4.7. Get condition variable name
25.4.8. Condition variable destruction
25.5. Counting Semaphores
25.5.1. Static counting semaphore initialization
25.5.2. Run-time counting semaphore initialization
25.5.3. Wait for a counting semaphore
25.5.4. Post a counting semaphore
25.5.5. Set counting semaphore name
25.5.6. Get counting semaphore name
25.5.7. Counting semaphore destruction
25.6. Binary Semaphores
25.6.1. Static binary semaphore initialization
25.6.2. Run-time binary semaphore initialization
25.6.3. Wait for a binary semaphore
25.6.4. Wait for a binary semaphore with timeout in ticks
25.6.5. Tries to wait for a binary semaphore
25.6.6. Post a binary semaphore
25.6.7. Set binary semaphore name
25.6.8. Get binary semaphore name
25.6.9. Binary semaphore destruction
25.7. Threads
26. Multiprocessing Manager
26.1. Introduction
26.2. Background
26.2.1. Nodes
26.2.2. Global Objects
26.2.3. Global Object Table
26.2.4. Remote Operations
26.2.5. Proxies
26.2.6. Multiprocessor Configuration Table
26.3. Multiprocessor Communications Interface Layer
26.3.1. INITIALIZATION
26.3.2. GET_PACKET
26.3.3. RETURN_PACKET
26.3.4. RECEIVE_PACKET
26.3.5. SEND_PACKET
26.3.6. Supporting Heterogeneous Environments
26.4. Operations
26.4.1. Announcing a Packet
26.5. Directives
26.5.1. MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet
27. Symmetric Multiprocessing (SMP)
27.1. Introduction
27.2. Background
27.2.1. Application Configuration
27.2.2. Examples
27.2.3. Uniprocessor versus SMP Parallelism
27.2.4. Task Affinity
27.2.5. Task Migration
27.2.6. Clustered Scheduling
27.2.7. OpenMP
27.2.8. Atomic Operations
27.3. Application Issues
27.3.1. Task variables
27.3.2. Highest Priority Thread Never Walks Alone
27.3.3. Disabling of Thread Preemption
27.3.4. Disabling of Interrupts
27.3.5. Interrupt Service Routines Execute in Parallel With Threads
27.3.6. Timers Do Not Stop Immediately
27.3.7. False Sharing of Cache Lines Due to Objects Table
27.4. Implementation Details
27.4.1. Low-Level Synchronization
27.4.2. Internal Locking
27.4.3. Profiling
27.4.4. Scheduler Helping Protocol
27.4.5. Thread Dispatch Details
27.4.6. Per-Processor Data
27.4.7. Thread Pinning
28. PCI Library
28.1. Introduction
28.2. Background
28.2.1. Software Components
28.2.2. PCI Configuration
28.2.2.1. RTEMS Configuration selection
28.2.2.2. Auto Configuration
28.2.2.3. Read Configuration
28.2.2.4. Static Configuration
28.2.2.5. Peripheral Configuration
28.2.3. PCI Access
28.2.3.1. Configuration space
28.2.3.2. I/O space
28.2.3.3. Registers over Memory space
28.2.3.4. Access functions
28.2.3.5. PCI address translation
28.2.4. PCI Interrupt
28.2.5. PCI Shell command
29. Stack Bounds Checker
29.1. Introduction
29.2. Background
29.2.1. Task Stack
29.2.2. Execution
29.3. Operations
29.3.1. Initializing the Stack Bounds Checker
29.3.2. Checking for Blown Task Stack
29.3.3. Reporting Task Stack Usage
29.3.4. When a Task Overflows the Stack
29.4. Routines
29.4.1. STACK_CHECKER_IS_BLOWN - Has Current Task Blown Its Stack
29.4.2. STACK_CHECKER_REPORT_USAGE - Report Task Stack Usage
30. CPU Usage Statistics
30.1. Introduction
30.2. Background
30.3. Operations
30.3.1. Report CPU Usage Statistics
30.3.2. Reset CPU Usage Statistics
30.4. Directives
30.4.1. cpu_usage_report - Report CPU Usage Statistics
30.4.2. cpu_usage_reset - Reset CPU Usage Statistics
31. Object Services
31.1. Introduction
31.2. Background
31.2.1. APIs
31.2.2. Object Classes
31.2.3. Object Names
31.3. Operations
31.3.1. Decomposing and Recomposing an Object Id
31.3.2. Printing an Object Id
31.4. Directives
31.4.1. BUILD_NAME - Build object name from characters
31.4.2. OBJECT_GET_CLASSIC_NAME - Lookup name from id
31.4.3. OBJECT_GET_NAME - Obtain object name as string
31.4.4. OBJECT_SET_NAME - Set object name
31.4.5. OBJECT_ID_GET_API - Obtain API from Id
31.4.6. OBJECT_ID_GET_CLASS - Obtain Class from Id
31.4.7. OBJECT_ID_GET_NODE - Obtain Node from Id
31.4.8. OBJECT_ID_GET_INDEX - Obtain Index from Id
31.4.9. BUILD_ID - Build Object Id From Components
31.4.10. OBJECT_ID_API_MINIMUM - Obtain Minimum API Value
31.4.11. OBJECT_ID_API_MAXIMUM - Obtain Maximum API Value
31.4.12. OBJECT_API_MINIMUM_CLASS - Obtain Minimum Class Value
31.4.13. OBJECT_API_MAXIMUM_CLASS - Obtain Maximum Class Value
31.4.14. OBJECT_ID_API_MINIMUM_CLASS - Obtain Minimum Class Value for an API
31.4.15. OBJECT_ID_API_MAXIMUM_CLASS - Obtain Maximum Class Value for an API
31.4.16. OBJECT_GET_API_NAME - Obtain API Name
31.4.17. OBJECT_GET_API_CLASS_NAME - Obtain Class Name
31.4.18. OBJECT_GET_CLASS_INFORMATION - Obtain Class Information
31.4.19. OBJECT_GET_LOCAL_NODE - Obtain Local Node
32. Chains
32.1. Introduction
32.2. Background
32.2.1. Nodes
32.2.2. Controls
32.3. Operations
32.3.1. Multi-threading
32.3.2. Creating a Chain
32.3.3. Iterating a Chain
32.4. Directives
32.4.1. Initialize Chain With Nodes
32.4.2. Initialize Empty
32.4.3. Is Null Node ?
32.4.4. Head
32.4.5. Tail
32.4.6. Are Two Nodes Equal ?
32.4.7. Is the Chain Empty
32.4.8. Is this the First Node on the Chain ?
32.4.9. Is this the Last Node on the Chain ?
32.4.10. Does this Chain have only One Node ?
32.4.11. Returns the node count of the chain (unprotected)
32.4.12. Is this Node the Chain Head ?
32.4.13. Is this Node the Chain Tail ?
32.4.14. Extract a Node
32.4.15. Extract a Node (unprotected)
32.4.16. Get the First Node
32.4.17. Get the First Node (unprotected)
32.4.18. Insert a Node
32.4.19. Insert a Node (unprotected)
32.4.20. Append a Node
32.4.21. Append a Node (unprotected)
32.4.22. Prepend a Node
32.4.23. Prepend a Node (unprotected)
33. Red-Black Trees
33.1. Introduction
33.2. Background
33.2.1. Nodes
33.2.2. Controls
33.3. Operations
33.4. Directives
33.4.1. Documentation for the Red-Black Tree Directives
34. Timespec Helpers
34.1. Introduction
34.2. Background
34.2.1. Time Storage Conventions
34.3. Operations
34.3.1. Set and Obtain Timespec Value
34.3.2. Timespec Math
34.3.3. Comparing struct timespec Instances
34.3.4. Conversions and Validity Check
34.4. Directives
34.4.1. TIMESPEC_SET - Set struct timespec Instance
34.4.2. TIMESPEC_ZERO - Zero struct timespec Instance
34.4.3. TIMESPEC_IS_VALID - Check validity of a struct timespec instance
34.4.4. TIMESPEC_ADD_TO - Add Two struct timespec Instances
34.4.5. TIMESPEC_SUBTRACT - Subtract Two struct timespec Instances
34.4.6. TIMESPEC_DIVIDE - Divide Two struct timespec Instances
34.4.7. TIMESPEC_DIVIDE_BY_INTEGER - Divide a struct timespec Instance by an Integer
34.4.8. TIMESPEC_LESS_THAN - Less than operator
34.4.9. TIMESPEC_GREATER_THAN - Greater than operator
34.4.10. TIMESPEC_EQUAL_TO - Check equality of timespecs
34.4.11. TIMESPEC_GET_SECONDS - Get Seconds Portion of struct timespec Instance
34.4.12. TIMESPEC_GET_NANOSECONDS - Get Nanoseconds Portion of the struct timespec Instance
34.4.13. TIMESPEC_TO_TICKS - Convert struct timespec Instance to Ticks
34.4.14. TIMESPEC_FROM_TICKS - Convert Ticks to struct timespec Representation
35. Constant Bandwidth Server Scheduler API
35.1. Introduction
35.2. Background
35.2.1. Constant Bandwidth Server Definitions
35.2.2. Handling Periodic Tasks
35.2.3. Registering a Callback Function
35.2.4. Limitations
35.3. Operations
35.3.1. Setting up a server
35.3.2. Attaching Task to a Server
35.3.3. Detaching Task from a Server
35.3.4. Examples
35.4. Directives
35.4.1. CBS_INITIALIZE - Initialize the CBS library
35.4.2. CBS_CLEANUP - Cleanup the CBS library
35.4.3. CBS_CREATE_SERVER - Create a new bandwidth server
35.4.4. CBS_ATTACH_THREAD - Attach a thread to server
35.4.5. CBS_DETACH_THREAD - Detach a thread from server
35.4.6. CBS_DESTROY_SERVER - Destroy a bandwidth server
35.4.7. CBS_GET_SERVER_ID - Get an ID of a server
35.4.8. CBS_GET_PARAMETERS - Get scheduling parameters of a server
35.4.9. CBS_SET_PARAMETERS - Set scheduling parameters
35.4.10. CBS_GET_EXECUTION_TIME - Get elapsed execution time
35.4.11. CBS_GET_REMAINING_BUDGET - Get remaining execution time
35.4.12. CBS_GET_APPROVED_BUDGET - Get scheduler approved execution time
36. Ada Support
36.1. Introduction
36.2. Ada Programming Language Support
36.3. Classic API Ada Bindings
37. Linker Sets
37.1. Introduction
37.2. Background
37.3. Directives
37.3.1. RTEMS_LINKER_SET_BEGIN - Designator of the linker set begin marker
37.3.2. RTEMS_LINKER_SET_END - Designator of the linker set end marker
37.3.3. RTEMS_LINKER_SET_SIZE - The linker set size in characters
37.3.4. RTEMS_LINKER_SET_ITEM_COUNT - The linker set item count
37.3.5. RTEMS_LINKER_SET_IS_EMPTY - Is the linker set empty?
37.3.6. RTEMS_LINKER_SET_FOREACH - Iterate through the linker set items
37.3.7. RTEMS_LINKER_ROSET_DECLARE - Declares a read-only linker set
37.3.8. RTEMS_LINKER_ROSET - Defines a read-only linker set
37.3.9. RTEMS_LINKER_ROSET_ITEM_DECLARE - Declares a read-only linker set item
37.3.10. RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE - Declares an ordered read-only linker set item
37.3.11. RTEMS_LINKER_ROSET_ITEM_REFERENCE - References a read-only linker set item
37.3.12. RTEMS_LINKER_ROSET_ITEM - Defines a read-only linker set item
37.3.13. RTEMS_LINKER_ROSET_ITEM_ORDERED - Defines an ordered read-only linker set item
37.3.14. RTEMS_LINKER_ROSET_CONTENT - Marks a declaration as a read-only linker set content
37.3.15. RTEMS_LINKER_RWSET_DECLARE - Declares a read-write linker set
37.3.16. RTEMS_LINKER_RWSET - Defines a read-write linker set
37.3.17. RTEMS_LINKER_RWSET_ITEM_DECLARE - Declares a read-write linker set item
37.3.18. RTEMS_LINKER_RWSET_ITEM_ORDERED_DECLARE - Declares an ordered read-write linker set item
37.3.19. RTEMS_LINKER_RWSET_ITEM_REFERENCE - References a read-write linker set item
37.3.20. RTEMS_LINKER_RWSET_ITEM - Defines a read-write linker set item
37.3.21. RTEMS_LINKER_RWSET_ITEM_ORDERED - Defines an ordered read-write linker set item
37.3.22. RTEMS_LINKER_RWSET_CONTENT - Marks a declaration as a read-write linker set content
38. Directive Status Codes
38.1. Introduction
38.2. Directives
38.2.1. STATUS_TEXT - Returns the enumeration name for a status code
39. Example Application
40. Glossary
41. References
Index
RTEMS Classic API Guide
»
Search
Please activate JavaScript to enable the search functionality.