From 20515fc1f810b6cad86a73b976ddc01eeef95d24 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 27 Mar 1998 18:53:17 +0000 Subject: Nodes, menus, etc are automatically generated now --- doc/user/Makefile | 128 +++++++++++++++++++++++++++++++++++++- doc/user/bsp.t | 73 +--------------------- doc/user/clock.t | 85 +------------------------ doc/user/concepts.t | 30 +-------- doc/user/conf.t | 53 +--------------- doc/user/dirstat.texi | 2 +- doc/user/dpmem.t | 71 +-------------------- doc/user/event.t | 77 +---------------------- doc/user/fatal.t | 43 +------------ doc/user/init.t | 81 +----------------------- doc/user/intr.t | 81 +----------------------- doc/user/io.t | 107 +------------------------------- doc/user/mp.t | 103 +----------------------------- doc/user/msg.t | 117 +--------------------------------- doc/user/overview.t | 53 +--------------- doc/user/part.t | 89 +------------------------- doc/user/region.t | 109 +------------------------------- doc/user/rtmon.t | 139 +---------------------------------------- doc/user/schedule.t | 45 +------------- doc/user/sem.t | 103 +----------------------------- doc/user/signal.t | 77 +---------------------- doc/user/task.t | 169 -------------------------------------------------- doc/user/timer.t | 109 +------------------------------- doc/user/userext.t | 115 +--------------------------------- 24 files changed, 176 insertions(+), 1883 deletions(-) diff --git a/doc/user/Makefile b/doc/user/Makefile index 0e751a27c7..294a4e2a09 100644 --- a/doc/user/Makefile +++ b/doc/user/Makefile @@ -19,6 +19,12 @@ glossary.texi init.texi intr.texi io.texi mp.texi msg.texi overview.texi \ part.texi preface.texi region.texi rtmon.texi schedule.texi sem.texi \ signal.texi task.texi timer.texi userext.texi $(COMMON_FILES) +GENERATED_FILES=overview.texi concepts.texi init.texi task.texi \ + intr.texi clock.texi timer.texi sem.texi msg.texi \ + event.texi signal.texi part.texi region.texi \ + dpmem.texi io.texi fatal.texi schedule.texi rtmon.texi \ + bsp.texi userext.texi conf.texi mp.texi + all: INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*) @@ -57,5 +63,125 @@ html: clean: rm -f *.o $(PROG) *.txt core *.html rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f c_user c_user-* _* + rm -f c_user c_user-* _* $(GENERATED_FILES) + +#preface.texi: preface.t +# $(BMENU) -p "Top" \ +# -u "Top" \ +# -n "Overview" ${*}.t + +overview.texi: overview.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Key Concepts" ${*}.t + +concepts.texi: concepts.t + $(BMENU) -p "Overview Manual Organization" \ + -u "Top" \ + -n "Initialization Manager" ${*}.t + +init.texi: init.t + $(BMENU) -p "Key Concepts Memory Management" \ + -u "Top" \ + -n "Task Manager" ${*}.t + +task.texi: task.t + $(BMENU) -p "Initialization Manager SHUTDOWN_EXECUTIVE - Shutdown RTEMS" \ + -u "Top" \ + -n "Interrupt Manager" ${*}.t + +intr.texi: intr.t + $(BMENU) -p "Task Manager TASK_WAKE_WHEN - Wake up when specified" \ + -u "Top" \ + -n "Clock Manager" ${*}.t + +clock.texi: clock.t + $(BMENU) \ + -p "Interrupt Manager INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress" \ + -u "Top" \ + -n "Timer Manager" ${*}.t + +timer.texi: timer.t + $(BMENU) -p "Clock Manager CLOCK_TICK - Announce a clock tick" \ + -u "Top" \ + -n "Semaphore Manager" ${*}.t + +sem.texi: sem.t + $(BMENU) -p "Timer Manager TIMER_RESET - Reset an interval timer" \ + -u "Top" \ + -n "Message Manager" ${*}.t + +msg.texi: msg.t + $(BMENU) -p "Semaphore Manager SEMAPHORE_RELEASE - Release a semaphore" \ + -u "Top" \ + -n "Event Manager" ${*}.t + +event.texi: event.t + $(BMENU) \ + -p "Message Manager MESSAGE_QUEUE_FLUSH - Flush all messages on a queue" \ + -u "Top" \ + -n "Signal Manager" ${*}.t + +signal.texi: signal.t + $(BMENU) -p "Event Manager EVENT_RECEIVE - Receive event condition" \ + -u "Top" \ + -n "Partition Manager" ${*}.t + +part.texi: part.t + $(BMENU) -p "Signal Manager SIGNAL_SEND - Send signal set to a task" \ + -u "Top" \ + -n "Region Manager" ${*}.t + +region.texi: region.t + $(BMENU) \ +-p "Partition Manager PARTITION_RETURN_BUFFER - Return buffer to a partition" \ + -u "Top" \ + -n "Dual-Ported Memory Manager" ${*}.t + +dpmem.texi: dpmem.t + $(BMENU) \ + -p "Region Manager REGION_GET_SEGMENT_SIZE - Obtain size of a segment" \ + -u "Top" \ + -n "I/O Manager" ${*}.t + +io.texi: io.t + $(BMENU) -p "Dual-Ported Memory Manager PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address" \ + -u "Top" \ + -n "Fatal Error Manager" ${*}.t + +fatal.texi: fatal.t + $(BMENU) -p "I/O Manager IO_CONTROL - Special device services" \ + -u "Top" \ + -n "Scheduling Concepts" ${*}.t + +schedule.texi: schedule.t + $(BMENU) \ +-p "Fatal Error Manager FATAL_ERROR_OCCURRED - Invoke the fatal error handler" \ + -u "Top" \ + -n "Rate Monotonic Manager" ${*}.t + +rtmon.texi: rtmon.t + $(BMENU) -p "Scheduling Concepts Task State Transitions" \ + -u "Top" \ + -n "Board Support Packages" ${*}.t + +bsp.texi: bsp.t + $(BMENU) -p "Rate Monotonic Manager RATE_MONOTONIC_GET_STATUS - Obtain status information on period" \ + -u "Top" \ + -n "User Extensions Manager" ${*}.t + +userext.texi: userext.t + $(BMENU) -p "Board Support Packages Heterogeneous Systems" \ + -u "Top" \ + -n "Configuring a System" ${*}.t + +conf.texi: conf.t + $(BMENU) -p "User Extensions Manager EXTENSION_DELETE - Delete a extension set" \ + -u "Top" \ + -n "Multiprocessing Manager" ${*}.t + +mp.texi: mp.t + $(BMENU) -p "Configuring a System Sizing the RTEMS RAM Workspace" \ + -u "Top" \ + -n "Directive Status Codes" ${*}.t diff --git a/doc/user/bsp.t b/doc/user/bsp.t index 06c81458f0..f1350c0c96 100644 --- a/doc/user/bsp.t +++ b/doc/user/bsp.t @@ -6,23 +6,8 @@ @c $Id$ @c -@ifinfo -@node Board Support Packages, Board Support Packages Introduction, RATE_MONOTONIC_GET_STATUS - Obtain status information on period, Top -@end ifinfo @chapter Board Support Packages -@ifinfo -@menu -* Board Support Packages Introduction:: -* Board Support Packages Reset and Initialization:: -* Board Support Packages Device Drivers:: -* Board Support Packages User Extensions:: -* Board Support Packages Multiprocessor Communications Interface (MPCI):: -@end menu -@end ifinfo - -@ifinfo -@node Board Support Packages Introduction, Board Support Packages Reset and Initialization, Board Support Packages, Board Support Packages -@end ifinfo + @section Introduction A board support package (BSP) is a collection of @@ -33,17 +18,7 @@ extensions, and a Multiprocessor Communications Interface (MPCI). However, a minimal BSP need only support processor reset and initialization and, if needed, a clock tick. -@ifinfo -@node Board Support Packages Reset and Initialization, Interrupt Stack Requirements, Board Support Packages Introduction, Board Support Packages -@end ifinfo @section Reset and Initialization -@ifinfo -@menu -* Interrupt Stack Requirements:: -* Processors with a Separate Interrupt Stack:: -* Processors without a Separate Interrupt Stack:: -@end menu -@end ifinfo An RTEMS based application is initiated or re-initiated when the processor is reset. This initialization @@ -121,9 +96,6 @@ initialization which is dependent on RTEMS facilities. The user initialization task facility is typically used to create the application's set of tasks. -@ifinfo -@node Interrupt Stack Requirements, Processors with a Separate Interrupt Stack, Board Support Packages Reset and Initialization, Board Support Packages Reset and Initialization -@end ifinfo @subsection Interrupt Stack Requirements The worst-case stack usage by interrupt service @@ -147,9 +119,6 @@ stack usage must account for the following requirements: The size of the interrupt stack must be greater than or equal to the constant @code{@value{RPREFIX}MINIMUM_STACK_SIZE}. -@ifinfo -@node Processors with a Separate Interrupt Stack, Processors without a Separate Interrupt Stack, Interrupt Stack Requirements, Board Support Packages Reset and Initialization -@end ifinfo @subsection Processors with a Separate Interrupt Stack Some processors support a separate stack for @@ -165,9 +134,6 @@ initialization code of the user's board support package. Since all ISRs use this stack, the stack size must take into account the worst case stack usage by any combination of nested ISRs. -@ifinfo -@node Processors without a Separate Interrupt Stack, Board Support Packages Device Drivers, Processors with a Separate Interrupt Stack, Board Support Packages Reset and Initialization -@end ifinfo @subsection Processors without a Separate Interrupt Stack Some processors do not support a separate stack for @@ -183,15 +149,7 @@ software. If this capability is supported on a CPU, then it is logically equivalent to the processor supporting a separate interrupt stack in hardware. -@ifinfo -@node Board Support Packages Device Drivers, Clock Tick Device Driver, Processors without a Separate Interrupt Stack, Board Support Packages -@end ifinfo @section Device Drivers -@ifinfo -@menu -* Clock Tick Device Driver:: -@end menu -@end ifinfo Device drivers consist of control software for special peripheral devices and provide a logical interface for @@ -206,9 +164,6 @@ interfaces, and network controllers. For more information on device drivers, refer to the I/O Manager chapter. -@ifinfo -@node Clock Tick Device Driver, Board Support Packages User Extensions, Board Support Packages Device Drivers, Board Support Packages Device Drivers -@end ifinfo @subsection Clock Tick Device Driver Most RTEMS applications will include a clock tick @@ -244,9 +199,6 @@ high clock tick frequency results in less processor time being available for task execution due to the increased number of clock tick ISRs. -@ifinfo -@node Board Support Packages User Extensions, Board Support Packages Multiprocessor Communications Interface (MPCI), Clock Tick Device Driver, Board Support Packages -@end ifinfo @section User Extensions RTEMS allows the application developer to augment @@ -280,18 +232,7 @@ device. For more information on user extensions, refer to the User Extensions chapter. -@ifinfo -@node Board Support Packages Multiprocessor Communications Interface (MPCI), Tightly-Coupled Systems, Board Support Packages User Extensions, Board Support Packages -@end ifinfo @section Multiprocessor Communications Interface (MPCI) -@ifinfo -@menu -* Tightly-Coupled Systems:: -* Loosely-Coupled Systems:: -* Systems with Mixed Coupling:: -* Heterogeneous Systems:: -@end menu -@end ifinfo RTEMS requires that an MPCI layer be provided when a multiple node application is developed. This MPCI layer must @@ -304,9 +245,6 @@ target platform. For more information on the MPCI, refer to the Multiprocessing Manager chapter. -@ifinfo -@node Tightly-Coupled Systems, Loosely-Coupled Systems, Board Support Packages Multiprocessor Communications Interface (MPCI), Board Support Packages Multiprocessor Communications Interface (MPCI) -@end ifinfo @subsection Tightly-Coupled Systems A tightly-coupled system is a multiprocessor @@ -331,9 +269,6 @@ itself or the target platform. The second technique is to have a node poll for arrival of packets. The drawback to this technique is the overhead associated with polling. -@ifinfo -@node Loosely-Coupled Systems, Systems with Mixed Coupling, Tightly-Coupled Systems, Board Support Packages Multiprocessor Communications Interface (MPCI) -@end ifinfo @subsection Loosely-Coupled Systems A loosely-coupled system is a multiprocessor @@ -350,9 +285,6 @@ Ethernet, lend themselves to supporting an MPCI layer. These networks provide both the point-to-point and broadcast capabilities which are expected by RTEMS. -@ifinfo -@node Systems with Mixed Coupling, Heterogeneous Systems, Loosely-Coupled Systems, Board Support Packages Multiprocessor Communications Interface (MPCI) -@end ifinfo @subsection Systems with Mixed Coupling A mixed-coupling system is a multiprocessor @@ -367,9 +299,6 @@ algorithms. In addition, the router may provide alternate communications paths in the event of an overload or a partial failure. -@ifinfo -@node Heterogeneous Systems, User Extensions Manager, Systems with Mixed Coupling, Board Support Packages Multiprocessor Communications Interface (MPCI) -@end ifinfo @subsection Heterogeneous Systems Designing an MPCI layer for a heterogeneous system diff --git a/doc/user/clock.t b/doc/user/clock.t index 256713d5e8..aea2ee7a1d 100644 --- a/doc/user/clock.t +++ b/doc/user/clock.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Clock Manager, Clock Manager Introduction, INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress, Top -@end ifinfo @chapter Clock Manager -@ifinfo -@menu -* Clock Manager Introduction:: -* Clock Manager Background:: -* Clock Manager Operations:: -* Clock Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Clock Manager Introduction, Clock Manager Background, Clock Manager, Clock Manager -@end ifinfo + @section Introduction The clock manager provides support for time of day @@ -34,23 +20,8 @@ the clock manager are: @item @code{@value{DIRPREFIX}clock_tick} - Announce a clock tick @end itemize -@ifinfo -@node Clock Manager Background, Required Support, Clock Manager Introduction, Clock Manager -@end ifinfo @section Background -@ifinfo -@menu -* Required Support:: -* Time and Date Data Structures:: -* Clock Tick and Timeslicing:: -* Delays:: -* Timeouts:: -@end menu -@end ifinfo - -@ifinfo -@node Required Support, Time and Date Data Structures, Clock Manager Background, Clock Manager Background -@end ifinfo + @subsection Required Support For the features provided by the clock manager to be @@ -63,9 +34,6 @@ has occurred. Elapsed time is measured in ticks. A tick is defined to be an integral number of microseconds which is specified by the user in the Configuration Table. -@ifinfo -@node Time and Date Data Structures, Clock Tick and Timeslicing, Required Support, Clock Manager Background -@end ifinfo @subsection Time and Date Data Structures The clock facilities of the clock manager operate @@ -136,9 +104,6 @@ type Clock_Time_Value is The seconds field in this @value{STRUCTURE} is the number of seconds since the RTEMS epoch of January 1, 1988. -@ifinfo -@node Clock Tick and Timeslicing, Delays, Time and Date Data Structures, Clock Manager Background -@end ifinfo @subsection Clock Tick and Timeslicing Timeslicing is a task scheduling discipline in which @@ -160,9 +125,6 @@ timeslicing and preemption are enabled. If the task's timeslice has expired, then that task will be preempted if there exists a ready task of equal priority. -@ifinfo -@node Delays, Timeouts, Clock Tick and Timeslicing, Clock Manager Background -@end ifinfo @subsection Delays A sleep timer allows a task to delay for a given @@ -174,9 +136,6 @@ does not have an RTEMS ID. Once activated, a sleep timer cannot be explicitly deleted. Each task may activate one and only one sleep timer at a time. -@ifinfo -@node Timeouts, Clock Manager Operations, Delays, Clock Manager Background -@end ifinfo @subsection Timeouts Timeouts are a special type of timer automatically @@ -188,21 +147,8 @@ created when the timeout option is used on the Each task may have one and only one timeout active at a time. When a timeout expires, it unblocks the task with a timeout status code. -@ifinfo -@node Clock Manager Operations, Announcing a Tick, Timeouts, Clock Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Announcing a Tick:: -* Setting the Time:: -* Obtaining the Time:: -@end menu -@end ifinfo - -@ifinfo -@node Announcing a Tick, Setting the Time, Clock Manager Operations, Clock Manager Operations -@end ifinfo + @subsection Announcing a Tick RTEMS provides the @code{@value{DIRPREFIX}clock_tick} directive which is @@ -223,9 +169,6 @@ two times per second. The @code{@value{DIRPREFIX}clock_tick} directive is responsible for maintaining both calendar time and the dynamic set of timers. -@ifinfo -@node Setting the Time, Obtaining the Time, Announcing a Tick, Clock Manager Operations -@end ifinfo @subsection Setting the Time The @code{@value{DIRPREFIX}clock_set} directive allows a task or an ISR to @@ -234,9 +177,6 @@ and time causes any outstanding timers to pass their deadline, then the expired timers will be fired during the invocation of the @code{@value{DIRPREFIX}clock_set} directive. -@ifinfo -@node Obtaining the Time, Clock Manager Directives, Setting the Time, Clock Manager Operations -@end ifinfo @subsection Obtaining the Time The @code{@value{DIRPREFIX}clock_get} directive allows a task or an ISR to @@ -271,17 +211,7 @@ ticks per second Calendar time operations will return an error code if invoked before the date and time have been set. -@ifinfo -@node Clock Manager Directives, CLOCK_SET - Set system date and time, Obtaining the Time, Clock Manager -@end ifinfo @section Directives -@ifinfo -@menu -* CLOCK_SET - Set system date and time:: -* CLOCK_GET - Get system date and time information:: -* CLOCK_TICK - Announce a clock tick:: -@end menu -@end ifinfo This section details the clock manager's directives. A subsection is dedicated to each of this manager's directives @@ -289,9 +219,6 @@ and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node CLOCK_SET - Set system date and time, CLOCK_GET - Get system date and time information, Clock Manager Directives, Clock Manager Directives -@end ifinfo @subsection CLOCK_SET - Set system date and time @subheading CALLING SEQUENCE: @@ -342,9 +269,6 @@ to be reset to an uninitialized state. Another call to the system date and time to application specific specifications. @page -@ifinfo -@node CLOCK_GET - Get system date and time information, CLOCK_TICK - Announce a clock tick, CLOCK_SET - Set system date and time, Clock Manager Directives -@end ifinfo @subsection CLOCK_GET - Get system date and time information @subheading CALLING SEQUENCE: @@ -435,9 +359,6 @@ time to be reset to an uninitialized state. Another call to system date and time to application specific specifications. @page -@ifinfo -@node CLOCK_TICK - Announce a clock tick, Timer Manager, CLOCK_GET - Get system date and time information, Clock Manager Directives -@end ifinfo @subsection CLOCK_TICK - Announce a clock tick @subheading CALLING SEQUENCE: diff --git a/doc/user/concepts.t b/doc/user/concepts.t index 0edd85319f..c68a9a95b4 100644 --- a/doc/user/concepts.t +++ b/doc/user/concepts.t @@ -10,23 +10,9 @@ @c The following figure was replaced with an ASCII equivalent. @c Figure 2-1 Object ID Composition @c -@ifinfo -@node Key Concepts, Key Concepts Introduction, Overview Manual Organization, Top -@end ifinfo + @chapter Key Concepts -@ifinfo -@menu -* Key Concepts Introduction:: -* Key Concepts Objects:: -* Key Concepts Communication and Synchronization:: -* Key Concepts Time:: -* Key Concepts Memory Management:: -@end menu -@end ifinfo - -@ifinfo -@node Key Concepts Introduction, Key Concepts Objects, Key Concepts, Key Concepts -@end ifinfo + @section Introduction The facilities provided by RTEMS are built upon a @@ -35,9 +21,6 @@ understood before the application developer can efficiently utilize RTEMS. The purpose of this chapter is to familiarize one with these concepts. -@ifinfo -@node Key Concepts Objects, Key Concepts Communication and Synchronization, Key Concepts Introduction, Key Concepts -@end ifinfo @section Objects RTEMS provides directives which can be used to @@ -194,9 +177,6 @@ the object is deleted. With the exception of user extension routines, object control blocks are not directly manipulated by user applications. -@ifinfo -@node Key Concepts Communication and Synchronization, Key Concepts Time, Key Concepts Objects, Key Concepts -@end ifinfo @section Communication and Synchronization In real-time multitasking applications, the ability @@ -238,9 +218,6 @@ high performance synchronization mechanism. The signal manager supports only asynchronous communication and is typically used for exception handling. -@ifinfo -@node Key Concepts Time, Key Concepts Memory Management, Key Concepts Communication and Synchronization, Key Concepts -@end ifinfo @section Time The development of responsive real-time applications @@ -288,9 +265,6 @@ time cannot operate without some external mechanism which provides a periodic clock tick. This clock tick is typically provided by a real time clock or counter/timer device. -@ifinfo -@node Key Concepts Memory Management, Initialization Manager, Key Concepts Time, Key Concepts -@end ifinfo @section Memory Management RTEMS memory management facilities can be grouped diff --git a/doc/user/conf.t b/doc/user/conf.t index af0d419444..ce17502600 100644 --- a/doc/user/conf.t +++ b/doc/user/conf.t @@ -6,29 +6,8 @@ @c $Id$ @c -@ifinfo -@node Configuring a System, Configuring a System Configuration Table, EXTENSION_DELETE - Delete a extension set, Top -@end ifinfo @chapter Configuring a System -@ifinfo -@menu -* Configuring a System Configuration Table:: -* Configuring a System RTEMS API Configuration Table:: -* Configuring a System POSIX API Configuration Table:: -* Configuring a System CPU Dependent Information Table:: -* Configuring a System Initialization Task Table:: -* Configuring a System Driver Address Table:: -* Configuring a System User Extensions Table:: -* Configuring a System Multiprocessor Configuration Table:: -* Configuring a System Multiprocessor Communications Interface Table:: -* Configuring a System Determining Memory Requirements:: -* Configuring a System Sizing the RTEMS RAM Workspace:: -@end menu -@end ifinfo - -@ifinfo -@node Configuring a System Configuration Table, Configuring a System RTEMS API Configuration Table, Configuring a System, Configuring a System -@end ifinfo + @section Configuration Table The RTEMS Configuration Table is used to tailor an @@ -145,9 +124,6 @@ NULL if the POSIX API is not used. @end table -@ifinfo -@node Configuring a System RTEMS API Configuration Table, Configuring a System POSIX API Configuration Table, Configuring a System Configuration Table, Configuring a System -@end ifinfo @section RTEMS API Configuration Table The RTEMS API Configuration Table is used to configure the @@ -238,9 +214,6 @@ initialization tasks. The format of this table will be discussed below. @end table -@ifinfo -@node Configuring a System POSIX API Configuration Table, Configuring a System CPU Dependent Information Table, Configuring a System RTEMS API Configuration Table, Configuring a System -@end ifinfo @section POSIX API Configuration Table The POSIX API Configuration Table is used to configure the @@ -340,9 +313,6 @@ posix_initialization_threads_table @value{STRUCTURE}. @end table -@ifinfo -@node Configuring a System CPU Dependent Information Table, Configuring a System Initialization Task Table, Configuring a System POSIX API Configuration Table, Configuring a System -@end ifinfo @section CPU Dependent Information Table The CPU Dependent Information Table is used to @@ -353,9 +323,6 @@ table are discussed in the CPU Dependent Information Table chapter of the Applications Supplement document for a specific target processor. -@ifinfo -@node Configuring a System Initialization Task Table, Configuring a System Driver Address Table, Configuring a System CPU Dependent Information Table, Configuring a System -@end ifinfo @section Initialization Task Table The Initialization Task Table is used to describe @@ -477,9 +444,6 @@ Initialization_Tasks : aliased RTEMS.Initialization_Tasks_Table( 1 .. 2 ) := ( @end example @end ifset -@ifinfo -@node Configuring a System Driver Address Table, Configuring a System User Extensions Table, Configuring a System Initialization Task Table, Configuring a System -@end ifinfo @section Driver Address Table The Device Driver Table is used to inform the I/O @@ -574,9 +538,6 @@ More information regarding the construction and operation of device drivers is provided in the I/O Manager chapter. -@ifinfo -@node Configuring a System User Extensions Table, Configuring a System Multiprocessor Configuration Table, Configuring a System Driver Address Table, Configuring a System -@end ifinfo @section User Extensions Table The User Extensions Table is used to inform RTEMS of @@ -743,9 +704,6 @@ User_Extensions : RTEMS.Extensions_Table := ( More information regarding the user extensions is provided in the User Extensions chapter. -@ifinfo -@node Configuring a System Multiprocessor Configuration Table, Configuring a System Multiprocessor Communications Interface Table, Configuring a System User Extensions Table, Configuring a System -@end ifinfo @section Multiprocessor Configuration Table The Multiprocessor Configuration Table contains @@ -828,9 +786,6 @@ regarding its entries can be found in the next section. @end table -@ifinfo -@node Configuring a System Multiprocessor Communications Interface Table, Configuring a System Determining Memory Requirements, Configuring a System Multiprocessor Configuration Table, Configuring a System -@end ifinfo @section Multiprocessor Communications Interface Table The format of this table is defined in @@ -909,9 +864,6 @@ supplied multiprocessor communications layer. More information regarding the required functionality of these entry points is provided in the Multiprocessor chapter. -@ifinfo -@node Configuring a System Determining Memory Requirements, Configuring a System Sizing the RTEMS RAM Workspace, Configuring a System Multiprocessor Communications Interface Table, Configuring a System -@end ifinfo @section Determining Memory Requirements Since memory is a critical resource in many real-time @@ -959,9 +911,6 @@ with the underscore character and followed by an upper-case letter to avoid any naming conflicts. All RTEMS directive names should be treated as reserved words. -@ifinfo -@node Configuring a System Sizing the RTEMS RAM Workspace, Multiprocessing Manager, Configuring a System Determining Memory Requirements, Configuring a System -@end ifinfo @section Sizing the RTEMS RAM Workspace The RTEMS RAM Workspace is a user-specified block of diff --git a/doc/user/dirstat.texi b/doc/user/dirstat.texi index 17e047513b..1f447e31fe 100644 --- a/doc/user/dirstat.texi +++ b/doc/user/dirstat.texi @@ -7,7 +7,7 @@ @c @ifinfo -@node Directive Status Codes, Example Application, MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet, Top +@node Directive Status Codes, Example Application, Multiprocessing Manager MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet, Top @end ifinfo @chapter Directive Status Codes @table @b diff --git a/doc/user/dpmem.t b/doc/user/dpmem.t index 23d92e44a2..0725ba828c 100644 --- a/doc/user/dpmem.t +++ b/doc/user/dpmem.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Dual-Ported Memory Manager, Dual-Ported Memory Manager Introduction, REGION_GET_SEGMENT_SIZE - Obtain size of a segment, Top -@end ifinfo @chapter Dual-Ported Memory Manager -@ifinfo -@menu -* Dual-Ported Memory Manager Introduction:: -* Dual-Ported Memory Manager Background:: -* Dual-Ported Memory Manager Operations:: -* Dual-Ported Memory Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Dual-Ported Memory Manager Introduction, Dual-Ported Memory Manager Background, Dual-Ported Memory Manager, Dual-Ported Memory Manager -@end ifinfo + @section Introduction The dual-ported memory manager provides a mechanism @@ -37,9 +23,6 @@ The directives provided by the dual-ported memory manager are: @item @code{@value{DIRPREFIX}port_internal_to_external} - Convert internal to external address @end itemize -@ifinfo -@node Dual-Ported Memory Manager Background, Dual-Ported Memory Manager Operations, Dual-Ported Memory Manager Introduction, Dual-Ported Memory Manager -@end ifinfo @section Background A dual-ported memory area (DPMA) is an contiguous @@ -58,22 +41,8 @@ systems with intelligent peripheral controllers. These controllers typically utilize the DPMA for high-performance data transfers. -@ifinfo -@node Dual-Ported Memory Manager Operations, Creating a Port, Dual-Ported Memory Manager Background, Dual-Ported Memory Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Port:: -* Obtaining Port IDs:: -* Converting an Address:: -* Deleting a DPMA Port:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Port, Obtaining Port IDs, Dual-Ported Memory Manager Operations, Dual-Ported Memory Manager Operations -@end ifinfo + @subsection Creating a Port The @code{@value{DIRPREFIX}port_create} directive creates a port into a DPMA @@ -86,9 +55,6 @@ which is returned to the calling task. RTEMS does not initialize the dual-ported memory area or access any memory within it. -@ifinfo -@node Obtaining Port IDs, Converting an Address, Creating a Port, Dual-Ported Memory Manager Operations -@end ifinfo @subsection Obtaining Port IDs When a port is created, RTEMS generates a unique port @@ -102,9 +68,6 @@ may be obtained later using the ID is used by other dual-ported memory manager directives to access this port. -@ifinfo -@node Converting an Address, Deleting a DPMA Port, Obtaining Port IDs, Dual-Ported Memory Manager Operations -@end ifinfo @subsection Converting an Address The @code{@value{DIRPREFIX}port_external_to_internal} directive is used to @@ -116,28 +79,13 @@ representation for the specified port. If an attempt is made to convert an address which lies outside the specified DPMA, then the address to be converted will be returned. -@ifinfo -@node Deleting a DPMA Port, Dual-Ported Memory Manager Directives, Converting an Address, Dual-Ported Memory Manager Operations -@end ifinfo @subsection Deleting a DPMA Port A port can be removed from the system and returned to RTEMS with the @code{@value{DIRPREFIX}port_delete} directive. When a port is deleted, its control block is returned to the DPCB free list. -@ifinfo -@node Dual-Ported Memory Manager Directives, PORT_CREATE - Create a port, Deleting a DPMA Port, Dual-Ported Memory Manager -@end ifinfo @section Directives -@ifinfo -@menu -* PORT_CREATE - Create a port:: -* PORT_IDENT - Get ID of a port:: -* PORT_DELETE - Delete a port:: -* PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address:: -* PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address:: -@end menu -@end ifinfo This section details the dual-ported memory manager's directives. A subsection is dedicated to each of this manager's @@ -145,9 +93,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node PORT_CREATE - Create a port, PORT_IDENT - Get ID of a port, Dual-Ported Memory Manager Directives, Dual-Ported Memory Manager Directives -@end ifinfo @subsection PORT_CREATE - Create a port @subheading CALLING SEQUENCE: @@ -205,9 +150,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node PORT_IDENT - Get ID of a port, PORT_DELETE - Delete a port, PORT_CREATE - Create a port, Dual-Ported Memory Manager Directives -@end ifinfo @subsection PORT_IDENT - Get ID of a port @subheading CALLING SEQUENCE: @@ -250,9 +192,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node PORT_DELETE - Delete a port, PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address, PORT_IDENT - Get ID of a port, Dual-Ported Memory Manager Directives -@end ifinfo @subsection PORT_DELETE - Delete a port @subheading CALLING SEQUENCE: @@ -294,9 +233,6 @@ created the port. Any local task that knows the port id can delete the port. @page -@ifinfo -@node PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address, PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address, PORT_DELETE - Delete a port, Dual-Ported Memory Manager Directives -@end ifinfo @subsection PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address @subheading CALLING SEQUENCE: @@ -341,9 +277,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address, I/O Manager, PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address, Dual-Ported Memory Manager Directives -@end ifinfo @subsection PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address @subheading CALLING SEQUENCE: diff --git a/doc/user/event.t b/doc/user/event.t index aebcc215bc..fb8fe780ac 100644 --- a/doc/user/event.t +++ b/doc/user/event.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Event Manager, Event Manager Introduction, MESSAGE_QUEUE_FLUSH - Flush all messages on a queue, Top -@end ifinfo @chapter Event Manager -@ifinfo -@menu -* Event Manager Introduction:: -* Event Manager Background:: -* Event Manager Operations:: -* Event Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Event Manager Introduction, Event Manager Background, Event Manager, Event Manager -@end ifinfo + @section Introduction The event manager provides a high performance method @@ -33,21 +19,8 @@ provided by the event manager are: @item @code{@value{DIRPREFIX}event_receive} - Receive event condition @end itemize -@ifinfo -@node Event Manager Background, Event Sets, Event Manager Introduction, Event Manager -@end ifinfo @section Background -@ifinfo -@menu -* Event Sets:: -* Building an Event Set or Condition:: -* Building an EVENT_RECEIVE Option Set:: -@end menu -@end ifinfo - -@ifinfo -@node Event Sets, Building an Event Set or Condition, Event Manager Background, Event Manager Background -@end ifinfo + @subsection Event Sets An event flag is used by a task (or ISR) to inform @@ -85,9 +58,6 @@ an event condition is satisfied when at least a single requested event is posted. The @code{@value{RPREFIX}EVENT_ALL} algorithm states that an event condition is satisfied when every requested event is posted. -@ifinfo -@node Building an Event Set or Condition, Building an EVENT_RECEIVE Option Set, Event Sets, Event Manager Background -@end ifinfo @subsection Building an Event Set or Condition An event set or condition is built by a bitwise OR of @@ -104,9 +74,6 @@ the event parameter to the @code{@value{DIRPREFIX}event_send} directive should be @code{@value{RPREFIX}EVENT_6 @value{OR} @value{RPREFIX}EVENT_15 @value{OR} @value{RPREFIX}EVENT_31}. -@ifinfo -@node Building an EVENT_RECEIVE Option Set, Event Manager Operations, Building an Event Set or Condition, Event Manager Background -@end ifinfo @subsection Building an EVENT_RECEIVE Option Set In general, an option is built by a bitwise OR of the @@ -139,22 +106,8 @@ or @code{@value{RPREFIX}NO_WAIT}. The option parameter can be set to @code{@value{RPREFIX}NO_WAIT} because @code{@value{RPREFIX}EVENT_ALL} is the default condition for @code{@value{DIRPREFIX}event_receive}. -@ifinfo -@node Event Manager Operations, Sending an Event Set, Building an EVENT_RECEIVE Option Set, Event Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Sending an Event Set:: -* Receiving an Event Set:: -* Determining the Pending Event Set:: -* Receiving all Pending Events:: -@end menu -@end ifinfo - -@ifinfo -@node Sending an Event Set, Receiving an Event Set, Event Manager Operations, Event Manager Operations -@end ifinfo + @subsection Sending an Event Set The @code{@value{DIRPREFIX}event_send} directive allows a task (or an ISR) to @@ -183,9 +136,6 @@ task remains blocked. @end itemize -@ifinfo -@node Receiving an Event Set, Determining the Pending Event Set, Sending an Event Set, Event Manager Operations -@end ifinfo @subsection Receiving an Event Set The @code{@value{DIRPREFIX}event_receive} directive is used by tasks to @@ -208,9 +158,6 @@ with an error status code. wait before returning with an error status code. @end itemize -@ifinfo -@node Determining the Pending Event Set, Receiving all Pending Events, Receiving an Event Set, Event Manager Operations -@end ifinfo @subsection Determining the Pending Event Set A task can determine the pending event set by calling @@ -219,9 +166,6 @@ the @code{@value{DIRPREFIX}event_receive} directive with a value of The pending events are returned to the calling task but the event set is left unaltered. -@ifinfo -@node Receiving all Pending Events, Event Manager Directives, Determining the Pending Event Set, Event Manager Operations -@end ifinfo @subsection Receiving all Pending Events A task can receive all of the currently pending @@ -233,16 +177,7 @@ for the option set. The pending events are returned to the calling task and the event set is cleared. If no events are pending then the @code{@value{RPREFIX}UNSATISFIED} status code will be returned. -@ifinfo -@node Event Manager Directives, EVENT_SEND - Send event set to a task, Receiving all Pending Events, Event Manager -@end ifinfo @section Directives -@ifinfo -@menu -* EVENT_SEND - Send event set to a task:: -* EVENT_RECEIVE - Receive event condition:: -@end menu -@end ifinfo This section details the event manager's directives. A subsection is dedicated to each of this manager's directives @@ -250,9 +185,6 @@ and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node EVENT_SEND - Send event set to a task, EVENT_RECEIVE - Receive event condition, Event Manager Directives, Event Manager Directives -@end ifinfo @subsection EVENT_SEND - Send event set to a task @subheading CALLING SEQUENCE: @@ -309,9 +241,6 @@ reside on the local node will generate a request telling the remote node to send the event set to the appropriate task. @page -@ifinfo -@node EVENT_RECEIVE - Receive event condition, Signal Manager, EVENT_SEND - Send event set to a task, Event Manager Directives -@end ifinfo @subsection EVENT_RECEIVE - Receive event condition @subheading CALLING SEQUENCE: diff --git a/doc/user/fatal.t b/doc/user/fatal.t index 0c07a184ba..89ce538e2c 100644 --- a/doc/user/fatal.t +++ b/doc/user/fatal.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Fatal Error Manager, Fatal Error Manager Introduction, IO_CONTROL - Special device services, Top -@end ifinfo @chapter Fatal Error Manager -@ifinfo -@menu -* Fatal Error Manager Introduction:: -* Fatal Error Manager Background:: -* Fatal Error Manager Operations:: -* Fatal Error Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Fatal Error Manager Introduction, Fatal Error Manager Background, Fatal Error Manager, Fatal Error Manager -@end ifinfo + @section Introduction The fatal error manager processes all fatal or @@ -32,9 +18,6 @@ manager is: @item @code{@value{DIRPREFIX}fatal_error_occurred} - Invoke the fatal error handler @end itemize -@ifinfo -@node Fatal Error Manager Background, Fatal Error Manager Operations, Fatal Error Manager Introduction, Fatal Error Manager -@end ifinfo @section Background The fatal error manager is called upon detection of @@ -73,19 +56,8 @@ RTEMS fatal error are discussed in the Default Fatal Error Processing chapter of the Applications Supplement document for a specific target processor. -@ifinfo -@node Fatal Error Manager Operations, Announcing a Fatal Error, Fatal Error Manager Background, Fatal Error Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Announcing a Fatal Error:: -@end menu -@end ifinfo - -@ifinfo -@node Announcing a Fatal Error, Fatal Error Manager Directives, Fatal Error Manager Operations, Fatal Error Manager Operations -@end ifinfo + @subsection Announcing a Fatal Error The @code{@value{DIRPREFIX}fatal_error_occurred} directive is invoked when a @@ -131,15 +103,7 @@ the default handler provided by RTEMS is executed. This default handler will halt execution on the processor where the error occurred. -@ifinfo -@node Fatal Error Manager Directives, FATAL_ERROR_OCCURRED - Invoke the fatal error handler, Announcing a Fatal Error, Fatal Error Manager -@end ifinfo @section Directives -@ifinfo -@menu -* FATAL_ERROR_OCCURRED - Invoke the fatal error handler:: -@end menu -@end ifinfo This section details the fatal error manager's directives. A subsection is dedicated to each of this manager's @@ -147,9 +111,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node FATAL_ERROR_OCCURRED - Invoke the fatal error handler, Scheduling Concepts, Fatal Error Manager Directives, Fatal Error Manager Directives -@end ifinfo @subsection FATAL_ERROR_OCCURRED - Invoke the fatal error handler @subheading CALLING SEQUENCE: diff --git a/doc/user/init.t b/doc/user/init.t index 3cd79e18b0..317ca84ea1 100644 --- a/doc/user/init.t +++ b/doc/user/init.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Initialization Manager, Initialization Manager Introduction, Key Concepts Memory Management, Top -@end ifinfo @chapter Initialization Manager -@ifinfo -@menu -* Initialization Manager Introduction:: -* Initialization Manager Background:: -* Initialization Manager Operations:: -* Initialization Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Initialization Manager Introduction, Initialization Manager Background, Initialization Manager, Initialization Manager -@end ifinfo + @section Introduction The initialization manager is responsible for @@ -39,22 +25,8 @@ directives provided by the initialization manager are: @item @code{@value{DIRPREFIX}shutdown_executive} - Shutdown RTEMS @end itemize -@ifinfo -@node Initialization Manager Background, Initialization Tasks, Initialization Manager Introduction, Initialization Manager -@end ifinfo @section Background -@ifinfo -@menu -* Initialization Tasks:: -* The System Initialization Task:: -* The Idle Task:: -* Initialization Manager Failure:: -@end menu -@end ifinfo - -@ifinfo -@node Initialization Tasks, The System Initialization Task, Initialization Manager Background, Initialization Manager Background -@end ifinfo + @subsection Initialization Tasks Initialization task(s) are the mechanism by which @@ -80,9 +52,6 @@ This transformation typically involves changing priority and execution mode. RTEMS does not automatically delete the initialization tasks. -@ifinfo -@node The System Initialization Task, The Idle Task, Initialization Tasks, Initialization Manager Background -@end ifinfo @subsection The System Initialization Task The System Initialization Task is responsible for @@ -107,9 +76,6 @@ Multiprocessing Server which initializes the Multiprocessor Communications Interface Layer, verifies multiprocessor system consistency, and processes all requests from remote nodes. -@ifinfo -@node The Idle Task, Initialization Manager Failure, The System Initialization Task, Initialization Manager Background -@end ifinfo @subsection The Idle Task The Idle Task is the lowest priority task in a system @@ -117,9 +83,6 @@ and executes only when no other task is ready to execute. This task consists of an infinite loop and will be preempted when any other task is made ready to execute. -@ifinfo -@node Initialization Manager Failure, Initialization Manager Operations, The Idle Task, Initialization Manager Background -@end ifinfo @subsection Initialization Manager Failure The fatal_error_occurred directive will be called @@ -155,20 +118,8 @@ initialization sequence. created or started successfully. @end itemize -@ifinfo -@node Initialization Manager Operations, Initializing RTEMS, Initialization Manager Failure, Initialization Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Initializing RTEMS:: -* Shutting Down RTEMS:: -@end menu -@end ifinfo - -@ifinfo -@node Initializing RTEMS, Shutting Down RTEMS, Initialization Manager Operations, Initialization Manager Operations -@end ifinfo + @subsection Initializing RTEMS The @code{@value{DIRPREFIX}initialize_executive} @@ -221,9 +172,6 @@ directive is invoked to start multitasking. It is critical that only one of the RTEMS initialization sequences be used in an application. -@ifinfo -@node Shutting Down RTEMS, Initialization Manager Directives, Initializing RTEMS, Initialization Manager Operations -@end ifinfo @subsection Shutting Down RTEMS The @code{@value{DIRPREFIX}shutdown_executive} directive is invoked by the @@ -232,18 +180,7 @@ support package. The board support package resumes execution at the code immediately following the invocation of the @code{@value{DIRPREFIX}initialize_executive} directive. -@ifinfo -@node Initialization Manager Directives, INITIALIZE_EXECUTIVE - Initialize RTEMS, Shutting Down RTEMS, Initialization Manager -@end ifinfo @section Directives -@ifinfo -@menu -* INITIALIZE_EXECUTIVE - Initialize RTEMS:: -* INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking:: -* INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking:: -* SHUTDOWN_EXECUTIVE - Shutdown RTEMS:: -@end menu -@end ifinfo This section details the initialization manager's directives. A subsection is dedicated to each of this manager's @@ -251,9 +188,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node INITIALIZE_EXECUTIVE - Initialize RTEMS, INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking, Initialization Manager Directives, Initialization Manager Directives -@end ifinfo @subsection INITIALIZE_EXECUTIVE - Initialize RTEMS @subheading CALLING SEQUENCE: @@ -317,9 +251,6 @@ directive is logically equivalent to invoking with no intervening actions. @page -@ifinfo -@node INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking, INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking, INITIALIZE_EXECUTIVE - Initialize RTEMS, Initialization Manager Directives -@end ifinfo @subsection INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking @subheading CALLING SEQUENCE: @@ -372,9 +303,6 @@ initialization sequences: @code{@value{DIRPREFIX}nitialize_executive_late}. @page -@ifinfo -@node INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking, SHUTDOWN_EXECUTIVE - Shutdown RTEMS, INITIALIZE_EXECUTIVE_EARLY - Initialize RTEMS and do NOT Start Multitasking, Initialization Manager Directives -@end ifinfo @subsection INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking @subheading CALLING SEQUENCE: @@ -432,9 +360,6 @@ initialization sequences: @page -@ifinfo -@node SHUTDOWN_EXECUTIVE - Shutdown RTEMS, Task Manager, INITIALIZE_EXECUTIVE_LATE - Complete Initialization and Start Multitasking, Initialization Manager Directives -@end ifinfo @subsection SHUTDOWN_EXECUTIVE - Shutdown RTEMS @subheading CALLING SEQUENCE: diff --git a/doc/user/intr.t b/doc/user/intr.t index ffd27bc475..4f94d320eb 100644 --- a/doc/user/intr.t +++ b/doc/user/intr.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Interrupt Manager, Interrupt Manager Introduction, TASK_WAKE_WHEN - Wake up when specified, Top -@end ifinfo @chapter Interrupt Manager -@ifinfo -@menu -* Interrupt Manager Introduction:: -* Interrupt Manager Background:: -* Interrupt Manager Operations:: -* Interrupt Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Interrupt Manager Introduction, Interrupt Manager Background, Interrupt Manager, Interrupt Manager -@end ifinfo + @section Introduction Any real-time executive must provide a mechanism for @@ -41,21 +27,8 @@ directive: @item @code{@value{DIRPREFIX}interrupt_is_in_progress} - Is an ISR in Progress @end itemize -@ifinfo -@node Interrupt Manager Background, Processing an Interrupt, Interrupt Manager Introduction, Interrupt Manager -@end ifinfo @section Background -@ifinfo -@menu -* Processing an Interrupt:: -* RTEMS Interrupt Levels:: -* Disabling of Interrupts by RTEMS:: -@end menu -@end ifinfo - -@ifinfo -@node Processing an Interrupt, RTEMS Interrupt Levels, Interrupt Manager Background, Interrupt Manager Background -@end ifinfo + @subsection Processing an Interrupt The interrupt manager allows the application to @@ -138,9 +111,6 @@ interrupt nesting by allowing the nested ISRs to terminate without performing any dispatch processing. Only when the outermost ISR terminates will the postponed dispatching occur. -@ifinfo -@node RTEMS Interrupt Levels, Disabling of Interrupts by RTEMS, Processing an Interrupt, Interrupt Manager Background -@end ifinfo @subsection RTEMS Interrupt Levels Many processors support multiple interrupt levels or @@ -152,9 +122,6 @@ processor's interrupt levels, refer to the Interrupt Processing chapter of the Applications Supplement document for a specific target processor. -@ifinfo -@node Disabling of Interrupts by RTEMS, Interrupt Manager Operations, RTEMS Interrupt Levels, Interrupt Manager Background -@end ifinfo @subsection Disabling of Interrupts by RTEMS During the execution of directive calls, critical @@ -175,20 +142,8 @@ occur due to the inability of RTEMS to protect its critical sections. However, ISRs that make no system calls may safely execute as non-maskable interrupts. -@ifinfo -@node Interrupt Manager Operations, Establishing an ISR, Disabling of Interrupts by RTEMS, Interrupt Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Establishing an ISR:: -* Directives Allowed from an ISR:: -@end menu -@end ifinfo - -@ifinfo -@node Establishing an ISR, Directives Allowed from an ISR, Interrupt Manager Operations, Interrupt Manager Operations -@end ifinfo + @subsection Establishing an ISR The @code{@value{DIRPREFIX}interrupt_catch} @@ -200,9 +155,6 @@ Interrupt Vector Table and the address of the user's ISR in the RTEMS' Vector Table. This directive returns the previous contents of the specified vector in the RTEMS' Vector Table. -@ifinfo -@node Directives Allowed from an ISR, Interrupt Manager Directives, Establishing an ISR, Interrupt Manager Operations -@end ifinfo @subsection Directives Allowed from an ISR Using the interrupt manager insures that RTEMS knows @@ -266,19 +218,7 @@ made from an ISR: @end itemize @end itemize -@ifinfo -@node Interrupt Manager Directives, INTERRUPT_CATCH - Establish an ISR, Directives Allowed from an ISR, Interrupt Manager -@end ifinfo @section Directives -@ifinfo -@menu -* INTERRUPT_CATCH - Establish an ISR:: -* INTERRUPT_DISABLE - Disable Interrupts:: -* INTERRUPT_ENABLE - Enable Interrupts:: -* INTERRUPT_FLASH - Flash Interrupts:: -* INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress:: -@end menu -@end ifinfo This section details the interrupt manager's directives. A subsection is dedicated to each of this manager's @@ -286,9 +226,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node INTERRUPT_CATCH - Establish an ISR, INTERRUPT_DISABLE - Disable Interrupts, Interrupt Manager Directives, Interrupt Manager Directives -@end ifinfo @subsection INTERRUPT_CATCH - Establish an ISR @subheading CALLING SEQUENCE: @@ -332,9 +269,6 @@ returned in @code{old_isr_handler}. This directive will not cause the calling task to be preempted. @page -@ifinfo -@node INTERRUPT_DISABLE - Disable Interrupts, INTERRUPT_ENABLE - Enable Interrupts, INTERRUPT_CATCH - Establish an ISR, Interrupt Manager Directives -@end ifinfo @subsection INTERRUPT_DISABLE - Disable Interrupts @subheading CALLING SEQUENCE: @@ -375,9 +309,6 @@ parameter.} @end ifset @page -@ifinfo -@node INTERRUPT_ENABLE - Enable Interrupts, INTERRUPT_FLASH - Flash Interrupts, INTERRUPT_DISABLE - Disable Interrupts, Interrupt Manager Directives -@end ifinfo @subsection INTERRUPT_ENABLE - Enable Interrupts @subheading CALLING SEQUENCE: @@ -417,9 +348,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node INTERRUPT_FLASH - Flash Interrupts, INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress, INTERRUPT_ENABLE - Enable Interrupts, Interrupt Manager Directives -@end ifinfo @subsection INTERRUPT_FLASH - Flash Interrupts @subheading CALLING SEQUENCE: @@ -458,9 +386,6 @@ and will be redisabled when this directive returns to the caller. This directive will not cause the calling task to be preempted. @page -@ifinfo -@node INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress, Clock Manager, INTERRUPT_FLASH - Flash Interrupts, Interrupt Manager Directives -@end ifinfo @subsection INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress @subheading CALLING SEQUENCE: diff --git a/doc/user/io.t b/doc/user/io.t index 7710b50f4c..3ed5378555 100644 --- a/doc/user/io.t +++ b/doc/user/io.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node I/O Manager, I/O Manager Introduction, PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address, Top -@end ifinfo @chapter I/O Manager -@ifinfo -@menu -* I/O Manager Introduction:: -* I/O Manager Background:: -* I/O Manager Operations:: -* I/O Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node I/O Manager Introduction, I/O Manager Background, I/O Manager, I/O Manager -@end ifinfo + @section Introduction The input/output interface manager provides a @@ -40,26 +26,8 @@ directives provided by the I/O manager are: @item @code{@value{DIRPREFIX}io_control} - Special device services @end itemize - - -@ifinfo -@node I/O Manager Background, Device Driver Table, I/O Manager Introduction, I/O Manager -@end ifinfo @section Background -@ifinfo -@menu -* Device Driver Table:: -* Major and Minor Device Numbers:: -* Device Names:: -* Device Driver Environment:: -* Device Driver Interface:: -* Device Driver Initialization:: -@end menu -@end ifinfo - -@ifinfo -@node Device Driver Table, Major and Minor Device Numbers, I/O Manager Background, I/O Manager Background -@end ifinfo + @subsection Device Driver Table Each application utilizing the RTEMS I/O manager must @@ -84,9 +52,6 @@ be NULL. RTEMS will return zero (0) as the device driver's return code for these device driver entry points. -@ifinfo -@node Major and Minor Device Numbers, Device Names, Device Driver Table, I/O Manager Background -@end ifinfo @subsection Major and Minor Device Numbers Each call to the I/O manager must provide a device's @@ -97,9 +62,6 @@ The exact usage of the minor number is driver specific, but is commonly used to distinguish between a number of devices controlled by the same driver. -@ifinfo -@node Device Names, Device Driver Environment, Major and Minor Device Numbers, I/O Manager Background -@end ifinfo @subsection Device Names The I/O Manager provides facilities to associate a @@ -107,9 +69,6 @@ name with a particular device. Directives are provided to register the name of a device and to look up the major/minor number pair associated with a device name. -@ifinfo -@node Device Driver Environment, Device Driver Interface, Device Names, I/O Manager Background -@end ifinfo @subsection Device Driver Environment Application developers, as well as device driver @@ -140,9 +99,6 @@ Although the RTEMS I/O manager provides a framework for device drivers, it makes no assumptions regarding the construction or operation of a device driver. -@ifinfo -@node Device Driver Interface, Device Driver Initialization, Device Driver Environment, I/O Manager Background -@end ifinfo @subsection Device Driver Interface When an application invokes an I/O manager directive, @@ -181,9 +137,6 @@ application components. A common technique used to generate driver specific error codes is to make the most significant part of the status indicate a driver specific code. -@ifinfo -@node Device Driver Initialization, I/O Manager Operations, Device Driver Interface, I/O Manager Background -@end ifinfo @subsection Device Driver Initialization RTEMS automatically initializes all device drivers @@ -208,20 +161,8 @@ The returned status will be ignored by RTEMS. If the driver cannot successfully initialize the device, then it should invoke the fatal_error_occurred directive. -@ifinfo -@node I/O Manager Operations, Register and Lookup Name, Device Driver Initialization, I/O Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Register and Lookup Name:: -* Accessing an Device Driver:: -@end menu -@end ifinfo - -@ifinfo -@node Register and Lookup Name, Accessing an Device Driver, I/O Manager Operations, I/O Manager Operations -@end ifinfo + @subsection Register and Lookup Name The @code{@value{DIRPREFIX}io_register} directive associates a name with the @@ -235,9 +176,6 @@ application from being dependent on the arbitrary assignment of major numbers in a particular application. No device naming conventions are dictated by RTEMS. -@ifinfo -@node Accessing an Device Driver, I/O Manager Directives, Register and Lookup Name, I/O Manager Operations -@end ifinfo @subsection Accessing an Device Driver The I/O manager provides directives which enable the @@ -252,22 +190,7 @@ manager directives @code{@value{DIRPREFIX}io_control} and the underlying device driver entry points. -@ifinfo -@node I/O Manager Directives, IO_INITIALIZE - Initialize a device driver, Accessing an Device Driver, I/O Manager -@end ifinfo @section Directives -@ifinfo -@menu -* IO_INITIALIZE - Initialize a device driver:: -* IO_REGISTER_NAME - Register a device:: -* IO_LOOKUP_NAME - Lookup a device:: -* IO_OPEN - Open a device:: -* IO_CLOSE - Close a device:: -* IO_READ - Read from a device:: -* IO_WRITE - Write to a device:: -* IO_CONTROL - Special device services:: -@end menu -@end ifinfo This section details the I/O manager's directives. A subsection is dedicated to each of this manager's directives and @@ -275,9 +198,6 @@ describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node IO_INITIALIZE - Initialize a device driver, IO_REGISTER_NAME - Register a device, I/O Manager Directives, I/O Manager Directives -@end ifinfo @subsection IO_INITIALIZE - Initialize a device driver @subheading CALLING SEQUENCE: @@ -328,9 +248,6 @@ to be preempted. This is dependent on the device driver being initialized. @page -@ifinfo -@node IO_REGISTER_NAME - Register a device, IO_LOOKUP_NAME - Lookup a device, IO_INITIALIZE - Initialize a device driver, I/O Manager Directives -@end ifinfo @subsection IO_REGISTER_NAME - Register a device @subheading CALLING SEQUENCE: @@ -371,9 +288,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node IO_LOOKUP_NAME - Lookup a device, IO_OPEN - Open a device, IO_REGISTER_NAME - Register a device, I/O Manager Directives -@end ifinfo @subsection IO_LOOKUP_NAME - Lookup a device @subheading CALLING SEQUENCE: @@ -412,9 +326,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node IO_OPEN - Open a device, IO_CLOSE - Close a device, IO_LOOKUP_NAME - Lookup a device, I/O Manager Directives -@end ifinfo @subsection IO_OPEN - Open a device @subheading CALLING SEQUENCE: @@ -459,9 +370,6 @@ to be preempted. This is dependent on the device driver being invoked. @page -@ifinfo -@node IO_CLOSE - Close a device, IO_READ - Read from a device, IO_OPEN - Open a device, I/O Manager Directives -@end ifinfo @subsection IO_CLOSE - Close a device @subheading CALLING SEQUENCE: @@ -506,9 +414,6 @@ to be preempted. This is dependent on the device driver being invoked. @page -@ifinfo -@node IO_READ - Read from a device, IO_WRITE - Write to a device, IO_CLOSE - Close a device, I/O Manager Directives -@end ifinfo @subsection IO_READ - Read from a device @subheading CALLING SEQUENCE: @@ -554,9 +459,6 @@ to be preempted. This is dependent on the device driver being invoked. @page -@ifinfo -@node IO_WRITE - Write to a device, IO_CONTROL - Special device services, IO_READ - Read from a device, I/O Manager Directives -@end ifinfo @subsection IO_WRITE - Write to a device @subheading CALLING SEQUENCE: @@ -602,9 +504,6 @@ to be preempted. This is dependent on the device driver being invoked. @page -@ifinfo -@node IO_CONTROL - Special device services, Fatal Error Manager, IO_WRITE - Write to a device, I/O Manager Directives -@end ifinfo @subsection IO_CONTROL - Special device services @subheading CALLING SEQUENCE: diff --git a/doc/user/mp.t b/doc/user/mp.t index 244550cd73..4e16a5cc1b 100644 --- a/doc/user/mp.t +++ b/doc/user/mp.t @@ -6,23 +6,8 @@ @c $Id$ @c -@ifinfo -@node Multiprocessing Manager, Multiprocessing Manager Introduction, Configuring a System Sizing the RTEMS RAM Workspace, Top -@end ifinfo @chapter Multiprocessing Manager -@ifinfo -@menu -* Multiprocessing Manager Introduction:: -* Multiprocessing Manager Background:: -* Multiprocessing Manager Multiprocessor Communications Interface Layer:: -* Multiprocessing Manager Operations:: -* Multiprocessing Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Multiprocessing Manager Introduction, Multiprocessing Manager Background, Multiprocessing Manager, Multiprocessing Manager -@end ifinfo + @section Introduction In multiprocessor real-time systems, new @@ -56,20 +41,7 @@ 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. -@ifinfo -@node Multiprocessing Manager Background, Nodes, Multiprocessing Manager Introduction, Multiprocessing Manager -@end ifinfo @section Background -@ifinfo -@menu -* Nodes:: -* Global Objects:: -* Global Object Table:: -* Remote Operations:: -* Proxies:: -* Multiprocessor Configuration Table:: -@end menu -@end ifinfo RTEMS makes no assumptions regarding the connection media or topology of a multiprocessor system. The tasks which @@ -96,9 +68,6 @@ for a homogeneous one. In keeping with RTEMS philosophy of providing transparent physical node boundaries, the minimal heterogeneous processing required is isolated in the MPCI layer. -@ifinfo -@node Nodes, Global Objects, Multiprocessing Manager Background, Multiprocessing Manager Background -@end ifinfo @subsection Nodes A processor in a RTEMS system is referred to as a @@ -116,9 +85,6 @@ node when performing remote operations. Thus, the Multiprocessor Communications Interface Layer (MPCI) must be able to route messages based on the node number. -@ifinfo -@node Global Objects, Global Object Table, Nodes, Multiprocessing Manager Background -@end ifinfo @subsection Global Objects All RTEMS objects which are created with the GLOBAL @@ -133,9 +99,6 @@ Configuration Table. The distribution of tasks to processors is performed during the application design phase. Dynamic task relocation is not supported by RTEMS. -@ifinfo -@node Global Object Table, Remote Operations, Global Objects, Multiprocessing Manager Background -@end ifinfo @subsection Global Object Table RTEMS maintains two tables containing object @@ -158,9 +121,6 @@ nodes. To maintain consistency among the table copies, every node in the system must be informed of the creation or deletion of a global object. -@ifinfo -@node Remote Operations, Proxies, Global Object Table, Multiprocessing Manager Background -@end ifinfo @subsection Remote Operations When an application performs an operation on a remote @@ -229,9 +189,6 @@ MPCI layer, the fatal error handler should be invoked. RTEMS assumes the reliable transmission and reception of messages by the MPCI and makes no attempt to detect or correct errors. -@ifinfo -@node Proxies, Multiprocessor Configuration Table, Remote Operations, Multiprocessing Manager Background -@end ifinfo @subsection Proxies A proxy is an RTEMS data structure which resides on a @@ -252,9 +209,6 @@ to be configured. The distribution of proxy control blocks is application dependent and is different from the distribution of tasks. -@ifinfo -@node Multiprocessor Configuration Table, Multiprocessing Manager Multiprocessor Communications Interface Layer, Proxies, Multiprocessing Manager Background -@end ifinfo @subsection Multiprocessor Configuration Table The Multiprocessor Configuration Table contains @@ -263,20 +217,7 @@ system. This table is discussed in detail in the section Multiprocessor Configuration Table of the Configuring a System chapter. -@ifinfo -@node Multiprocessing Manager Multiprocessor Communications Interface Layer, INITIALIZATION, Multiprocessor Configuration Table, Multiprocessing Manager -@end ifinfo @section Multiprocessor Communications Interface Layer -@ifinfo -@menu -* INITIALIZATION:: -* GET_PACKET:: -* RETURN_PACKET:: -* RECEIVE_PACKET:: -* SEND_PACKET:: -* Supporting Heterogeneous Environments:: -@end menu -@end ifinfo The Multiprocessor Communications Interface Layer (MPCI) is a set of user-provided procedures which enable the @@ -332,9 +273,6 @@ the packet. The Multiprocessing Server will call the get_packet entry to obtain a packet buffer and the receive_entry entry to copy the message into the buffer obtained. -@ifinfo -@node INITIALIZATION, GET_PACKET, Multiprocessing Manager Multiprocessor Communications Interface Layer, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection INITIALIZATION The INITIALIZATION component of the user-provided @@ -375,9 +313,6 @@ routine must create and initialize a pool of packet buffers. There must be enough packet buffers so RTEMS can obtain one whenever needed. -@ifinfo -@node GET_PACKET, RETURN_PACKET, INITIALIZATION, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection GET_PACKET The GET_PACKET component of the user-provided MPCI @@ -415,9 +350,6 @@ For example, RTEMS sends response messages (RR) back to the originator in the same packet in which the request message (RQ) arrived. -@ifinfo -@node RETURN_PACKET, RECEIVE_PACKET, GET_PACKET, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection RETURN_PACKET The RETURN_PACKET component of the user-provided MPCI @@ -447,9 +379,6 @@ where packet is the address of a packet. If the packet cannot be successfully returned, the fatal error manager should be invoked. -@ifinfo -@node RECEIVE_PACKET, SEND_PACKET, RETURN_PACKET, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection RECEIVE_PACKET The RECEIVE_PACKET component of the user-provided @@ -481,9 +410,6 @@ available, then packet will contain the address of the message from another node. If no messages are available, this entry packet should contain NULL. -@ifinfo -@node SEND_PACKET, Supporting Heterogeneous Environments, RECEIVE_PACKET, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection SEND_PACKET The SEND_PACKET component of the user-provided MPCI @@ -529,9 +455,6 @@ The to_convert field of the MP_packet_prefix portion of the packet indicates how much of the packet (in unsigned32's) may require conversion in a heterogeneous system. -@ifinfo -@node Supporting Heterogeneous Environments, Multiprocessing Manager Operations, SEND_PACKET, Multiprocessing Manager Multiprocessor Communications Interface Layer -@end ifinfo @subsection Supporting Heterogeneous Environments Developing an MPCI layer for a heterogeneous system @@ -614,19 +537,8 @@ sending or receiving MPCI layer. data component of the packet. @end itemize -@ifinfo -@node Multiprocessing Manager Operations, Announcing a Packet, Supporting Heterogeneous Environments, Multiprocessing Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Announcing a Packet:: -@end menu -@end ifinfo - -@ifinfo -@node Announcing a Packet, Multiprocessing Manager Directives, Multiprocessing Manager Operations, Multiprocessing Manager Operations -@end ifinfo + @subsection Announcing a Packet The @code{@value{DIRPREFIX}multiprocessing_announce} directive is called by @@ -634,15 +546,7 @@ 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. -@ifinfo -@node Multiprocessing Manager Directives, MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet, Announcing a Packet, Multiprocessing Manager -@end ifinfo @section Directives -@ifinfo -@menu -* MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet:: -@end menu -@end ifinfo This section details the additional directives required to support RTEMS in a multiprocessor configuration. A @@ -651,9 +555,6 @@ describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet, Directive Status Codes, Multiprocessing Manager Directives, Multiprocessing Manager Directives -@end ifinfo @subsection MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet @subheading CALLING SEQUENCE: diff --git a/doc/user/msg.t b/doc/user/msg.t index 38e65e34ce..8aec835294 100644 --- a/doc/user/msg.t +++ b/doc/user/msg.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Message Manager, Message Manager Introduction, SEMAPHORE_RELEASE - Release a semaphore, Top -@end ifinfo @chapter Message Manager -@ifinfo -@menu -* Message Manager Introduction:: -* Message Manager Background:: -* Message Manager Operations:: -* Message Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Message Manager Introduction, Message Manager Background, Message Manager, Message Manager -@end ifinfo + @section Introduction The message manager provides communication and @@ -40,22 +26,8 @@ directives provided by the message manager are: @item @code{@value{DIRPREFIX}message_queue_flush} - Flush all messages on a queue @end itemize -@ifinfo -@node Message Manager Background, Messages, Message Manager Introduction, Message Manager -@end ifinfo @section Background -@ifinfo -@menu -* Messages:: -* Message Queues:: -* Building a Message Queue's Attribute Set:: -* Building a MESSAGE_QUEUE_RECEIVE Option Set:: -@end menu -@end ifinfo - -@ifinfo -@node Messages, Message Queues, Message Manager Background, Message Manager Background -@end ifinfo + @subsection Messages A message is a variable length buffer where @@ -63,9 +35,6 @@ information can be stored to support communication. The length of the message and the information stored in that message are user-defined and can be actual data, pointer(s), or empty. -@ifinfo -@node Message Queues, Building a Message Queue's Attribute Set, Messages, Message Manager Background -@end ifinfo @subsection Message Queues A message queue permits the passing of messages among @@ -83,9 +52,6 @@ a queue for the arrival of a message. The maximum length message which can be sent is set on a per message queue basis. -@ifinfo -@node Building a Message Queue's Attribute Set, Building a MESSAGE_QUEUE_RECEIVE Option Set, Message Queues, Message Manager Background -@end ifinfo @subsection Building a Message Queue's Attribute Set In general, an attribute set is built by a bitwise OR @@ -118,9 +84,6 @@ message queues. If a similar message queue were to be known globally, then the attribute_set parameter would be @code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}. -@ifinfo -@node Building a MESSAGE_QUEUE_RECEIVE Option Set, Message Manager Operations, Building a Message Queue's Attribute Set, Message Manager Background -@end ifinfo @subsection Building a MESSAGE_QUEUE_RECEIVE Option Set In general, an option is built by a bitwise OR of the @@ -144,24 +107,8 @@ to poll for a message to arrive. The option parameter passed to the @code{@value{DIRPREFIX}message_queue_receive} directive should be @code{@value{RPREFIX}NO_WAIT}. -@ifinfo -@node Message Manager Operations, Creating a Message Queue, Building a MESSAGE_QUEUE_RECEIVE Option Set, Message Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Message Queue:: -* Obtaining Message Queue IDs:: -* Receiving a Message:: -* Sending a Message:: -* Broadcasting a Message:: -* Deleting a Message Queue:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Message Queue, Obtaining Message Queue IDs, Message Manager Operations, Message Manager Operations -@end ifinfo + @subsection Creating a Message Queue The @code{@value{DIRPREFIX}message_queue_create} directive creates a message @@ -179,9 +126,6 @@ For GLOBAL message queues, the maximum message size is effectively limited to the longest message which the MPCI is capable of transmitting. -@ifinfo -@node Obtaining Message Queue IDs, Receiving a Message, Creating a Message Queue, Message Manager Operations -@end ifinfo @subsection Obtaining Message Queue IDs When a message queue is created, RTEMS generates a @@ -193,9 +137,6 @@ ID may be obtained later using the @code{@value{DIRPREFIX}message_queue_ident} directive. The queue ID is used by other message manager directives to access this message queue. -@ifinfo -@node Receiving a Message, Sending a Message, Obtaining Message Queue IDs, Message Manager Operations -@end ifinfo @subsection Receiving a Message The @code{@value{DIRPREFIX}message_queue_receive} directive attempts to @@ -222,9 +163,6 @@ the message queue's task wait queue in either FIFO or task priority order. All tasks waiting on a message queue are returned an error code when the message queue is deleted. -@ifinfo -@node Sending a Message, Broadcasting a Message, Receiving a Message, Message Manager Operations -@end ifinfo @subsection Sending a Message Messages can be sent to a queue with the @@ -245,9 +183,6 @@ message queue. Neither directive can successfully send a message to a message queue which has a full queue of pending messages. -@ifinfo -@node Broadcasting a Message, Deleting a Message Queue, Sending a Message, Message Manager Operations -@end ifinfo @subsection Broadcasting a Message The @code{@value{DIRPREFIX}message_queue_broadcast} directive sends the same @@ -256,9 +191,6 @@ an atomic operation. The message is copied to each waiting task's message buffer and each task is unblocked. The number of tasks which were unblocked is returned to the caller. -@ifinfo -@node Deleting a Message Queue, Message Manager Directives, Broadcasting a Message, Message Manager Operations -@end ifinfo @subsection Deleting a Message Queue The @code{@value{DIRPREFIX}message_queue_delete} directive removes a message @@ -272,23 +204,7 @@ message queue was deleted. Any subsequent references to the message queue's name and ID are invalid. Any messages waiting at the message queue are also deleted and deallocated. -@ifinfo -@node Message Manager Directives, MESSAGE_QUEUE_CREATE - Create a queue, Deleting a Message Queue, Message Manager -@end ifinfo @section Directives -@ifinfo -@menu -* MESSAGE_QUEUE_CREATE - Create a queue:: -* MESSAGE_QUEUE_IDENT - Get ID of a queue:: -* MESSAGE_QUEUE_DELETE - Delete a queue:: -* MESSAGE_QUEUE_SEND - Put message at rear of a queue:: -* MESSAGE_QUEUE_URGENT - Put message at front of a queue:: -* MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue:: -* MESSAGE_QUEUE_RECEIVE - Receive message from a queue:: -* MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue:: -* MESSAGE_QUEUE_FLUSH - Flush all messages on a queue:: -@end menu -@end ifinfo This section details the message manager's directives. A subsection is dedicated to each of this manager's @@ -296,9 +212,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node MESSAGE_QUEUE_CREATE - Create a queue, MESSAGE_QUEUE_IDENT - Get ID of a queue, Message Manager Directives, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_CREATE - Create a queue @subheading CALLING SEQUENCE: @@ -384,9 +297,6 @@ queues, is limited by the maximum_global_objects field in the configuration table. @page -@ifinfo -@node MESSAGE_QUEUE_IDENT - Get ID of a queue, MESSAGE_QUEUE_DELETE - Delete a queue, MESSAGE_QUEUE_CREATE - Create a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_IDENT - Get ID of a queue @subheading CALLING SEQUENCE: @@ -444,9 +354,6 @@ nodes. It accesses only the local copy of the global object table. @page -@ifinfo -@node MESSAGE_QUEUE_DELETE - Delete a queue, MESSAGE_QUEUE_SEND - Put message at rear of a queue, MESSAGE_QUEUE_IDENT - Get ID of a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_DELETE - Delete a queue @subheading CALLING SEQUENCE: @@ -508,9 +415,6 @@ Proxies, used to represent remote tasks, are reclaimed when the message queue is deleted. @page -@ifinfo -@node MESSAGE_QUEUE_SEND - Put message at rear of a queue, MESSAGE_QUEUE_URGENT - Put message at front of a queue, MESSAGE_QUEUE_DELETE - Delete a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_SEND - Put message at rear of a queue @subheading CALLING SEQUENCE: @@ -569,9 +473,6 @@ the appropriate node, the waiting task is unblocked, and the proxy used to represent the task is reclaimed. @page -@ifinfo -@node MESSAGE_QUEUE_URGENT - Put message at front of a queue, MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue, MESSAGE_QUEUE_SEND - Put message at rear of a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_URGENT - Put message at front of a queue @subheading CALLING SEQUENCE: @@ -631,9 +532,6 @@ the appropriate node, the waiting task is unblocked, and the proxy used to represent the task is reclaimed. @page -@ifinfo -@node MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue, MESSAGE_QUEUE_RECEIVE - Receive message from a queue, MESSAGE_QUEUE_URGENT - Put message at front of a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue @subheading CALLING SEQUENCE: @@ -697,9 +595,6 @@ to the appropriate node, the waiting task is unblocked, and the proxy used to represent the task is reclaimed. @page -@ifinfo -@node MESSAGE_QUEUE_RECEIVE - Receive message from a queue, MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue, MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_RECEIVE - Receive message from a queue @subheading CALLING SEQUENCE: @@ -786,9 +681,6 @@ A clock tick is required to support the timeout functionality of this directive. @page -@ifinfo -@node MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue, MESSAGE_QUEUE_FLUSH - Flush all messages on a queue, MESSAGE_QUEUE_RECEIVE - Receive message from a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue @subheading CALLING SEQUENCE: @@ -831,9 +723,6 @@ the specified message queue. @page -@ifinfo -@node MESSAGE_QUEUE_FLUSH - Flush all messages on a queue, Event Manager, MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue, Message Manager Directives -@end ifinfo @subsection MESSAGE_QUEUE_FLUSH - Flush all messages on a queue @subheading CALLING SEQUENCE: diff --git a/doc/user/overview.t b/doc/user/overview.t index 51fe755b7b..3bb79a2054 100644 --- a/doc/user/overview.t +++ b/doc/user/overview.t @@ -13,29 +13,8 @@ @c Figure 1-2 RTEMS Internal Architecture @c -@ifinfo -@node Overview, Overview Introduction, Preface, Top -@end ifinfo @chapter Overview -@ifinfo -@menu -* Overview Introduction:: -* Overview Real-time Application Systems:: -* Overview Real-time Executive:: -* Overview RTEMS Application Architecture:: -* Overview RTEMS Internal Architecture:: -* Overview User Customization and Extensibility:: -* Overview Portability:: -* Overview Memory Requirements:: -* Overview Audience:: -* Overview Conventions:: -* Overview Manual Organization:: -@end menu -@end ifinfo - -@ifinfo -@node Overview Introduction, Overview Real-time Application Systems, Overview, Overview -@end ifinfo + @section Introduction RTEMS, Real-Time Executive for Multiprocessor Systems, is a @@ -63,9 +42,6 @@ document which addresses specific architectural issues that affect RTEMS is provided for each processor type that is supported. -@ifinfo -@node Overview Real-time Application Systems, Overview Real-time Executive, Overview Introduction, Overview -@end ifinfo @section Real-time Application Systems Real-time application systems are a special class of @@ -108,9 +84,6 @@ must be shared between competing processors are introduced. The ramifications of multiple processors complicate each and every characteristic of a real-time system. -@ifinfo -@node Overview Real-time Executive, Overview RTEMS Application Architecture, Overview Real-time Application Systems, Overview -@end ifinfo @section Real-time Executive Fortunately, real-time operating systems or real-time @@ -159,9 +132,6 @@ the application. By using standard software components, the time and cost required to develop sophisticated real-time applications is significantly reduced. -@ifinfo -@node Overview RTEMS Application Architecture, Overview RTEMS Internal Architecture, Overview Real-time Executive, Overview -@end ifinfo @section RTEMS Application Architecture One important design goal of RTEMS was to provide a @@ -252,9 +222,6 @@ real-time projects. @end html @end ifset -@ifinfo -@node Overview RTEMS Internal Architecture, Overview User Customization and Extensibility, Overview RTEMS Application Architecture, Overview -@end ifinfo @section RTEMS Internal Architecture RTEMS can be viewed as a set of layered components that work in @@ -327,9 +294,6 @@ provided by each of the following RTEMS managers: @item multiprocessing @end itemize -@ifinfo -@node Overview User Customization and Extensibility, Overview Portability, Overview RTEMS Internal Architecture, Overview -@end ifinfo @section User Customization and Extensibility As thirty-two bit microprocessors have decreased in @@ -350,9 +314,6 @@ integrated with RTEMS. The customization and extensibility features allow RTEMS to efficiently support as many environments as possible. -@ifinfo -@node Overview Portability, Overview Memory Requirements, Overview User Customization and Extensibility, Overview -@end ifinfo @section Portability The issue of portability was the major factor in the @@ -363,9 +324,6 @@ processor. The use of RTEMS allows the development of real-time applications which can be completely independent of a particular microprocessor architecture. -@ifinfo -@node Overview Memory Requirements, Overview Audience, Overview Portability, Overview -@end ifinfo @section Memory Requirements Since memory is a critical resource in many real-time @@ -401,9 +359,6 @@ RTEMS utilizes memory for both code and data space. Although RTEMS' data space must be in RAM, its code space can be located in either ROM or RAM. -@ifinfo -@node Overview Audience, Overview Conventions, Overview Memory Requirements, Overview -@end ifinfo @section Audience This manual was written for experienced real-time @@ -425,9 +380,6 @@ features are interrelated. Experienced RTEMS users will find that the manual organization facilitates its use as a reference document. -@ifinfo -@node Overview Conventions, Overview Manual Organization, Overview Audience, Overview -@end ifinfo @section Conventions The following conventions are used in this manual: @@ -450,9 +402,6 @@ the number is in hexadecimal format. Any other numbers are assumed to be in decimal format. @end itemize -@ifinfo -@node Overview Manual Organization, Key Concepts, Overview Conventions, Overview -@end ifinfo @section Manual Organization This first chapter has presented the introductory and diff --git a/doc/user/part.t b/doc/user/part.t index d19c5f22d9..9ef45315eb 100644 --- a/doc/user/part.t +++ b/doc/user/part.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Partition Manager, Partition Manager Introduction, SIGNAL_SEND - Send signal set to a task, Top -@end ifinfo @chapter Partition Manager -@ifinfo -@menu -* Partition Manager Introduction:: -* Partition Manager Background:: -* Partition Manager Operations:: -* Partition Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Partition Manager Introduction, Partition Manager Background, Partition Manager, Partition Manager -@end ifinfo + @section Introduction The partition manager provides facilities to @@ -36,20 +22,8 @@ provided by the partition manager are: @item @code{@value{DIRPREFIX}partition_return_buffer} - Return buffer to a partition @end itemize -@ifinfo -@node Partition Manager Background, Partition Manager Definitions, Partition Manager Introduction, Partition Manager -@end ifinfo @section Background -@ifinfo -@menu -* Partition Manager Definitions:: -* Building a Partition's Attribute Set:: -@end menu -@end ifinfo - -@ifinfo -@node Partition Manager Definitions, Building a Partition's Attribute Set, Partition Manager Background, Partition Manager Background -@end ifinfo + @subsection Partition Manager Definitions A partition is a physically contiguous memory area @@ -66,9 +40,6 @@ Therefore, modifying memory that is outside of an allocated buffer could destroy the free buffer chain or the contents of an adjacent allocated buffer. -@ifinfo -@node Building a Partition's Attribute Set, Partition Manager Operations, Partition Manager Definitions, Partition Manager Background -@end ifinfo @subsection Building a Partition's Attribute Set In general, an attribute set is built by a bitwise OR @@ -93,23 +64,8 @@ specified on this call. The attribute_set parameter should be @code{@value{RPREFIX}GLOBAL} to indicate that the partition is to be known globally. -@ifinfo -@node Partition Manager Operations, Creating a Partition, Building a Partition's Attribute Set, Partition Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Partition:: -* Obtaining Partition IDs:: -* Acquiring a Buffer:: -* Releasing a Buffer:: -* Deleting a Partition:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Partition, Obtaining Partition IDs, Partition Manager Operations, Partition Manager Operations -@end ifinfo + @subsection Creating a Partition The @code{@value{DIRPREFIX}partition_create} directive creates a partition @@ -123,9 +79,6 @@ of buffers in the partition is calculated based upon the specified partition length and buffer size, and returned to the calling task along with a unique partition ID. -@ifinfo -@node Obtaining Partition IDs, Acquiring a Buffer, Creating a Partition, Partition Manager Operations -@end ifinfo @subsection Obtaining Partition IDs When a partition is created, RTEMS generates a unique @@ -138,9 +91,6 @@ ID may be obtained later using the @code{@value{DIRPREFIX}partition_ident} directive. The partition ID is used by other partition manager directives to access this partition. -@ifinfo -@node Acquiring a Buffer, Releasing a Buffer, Obtaining Partition IDs, Partition Manager Operations -@end ifinfo @subsection Acquiring a Buffer A buffer can be obtained by calling the @@ -151,9 +101,6 @@ Otherwise, an unsuccessful return code is returned immediately to the caller. Tasks cannot block to wait for a buffer to become available. -@ifinfo -@node Releasing a Buffer, Deleting a Partition, Acquiring a Buffer, Partition Manager Operations -@end ifinfo @subsection Releasing a Buffer Buffers are returned to a partition's free buffer @@ -161,9 +108,6 @@ chain with the @code{@value{DIRPREFIX}partition_return_buffer} directive. This directive returns an error status code if the returned buffer was not previously allocated from this partition. -@ifinfo -@node Deleting a Partition, Partition Manager Directives, Releasing a Buffer, Partition Manager Operations -@end ifinfo @subsection Deleting a Partition The @code{@value{DIRPREFIX}partition_delete} directive allows a partition to @@ -172,19 +116,7 @@ the PTCB for that partition is returned to the PTCB free list. A partition with buffers still allocated cannot be deleted. Any task attempting to do so will be returned an error status code. -@ifinfo -@node Partition Manager Directives, PARTITION_CREATE - Create a partition, Deleting a Partition, Partition Manager -@end ifinfo @section Directives -@ifinfo -@menu -* PARTITION_CREATE - Create a partition:: -* PARTITION_IDENT - Get ID of a partition:: -* PARTITION_DELETE - Delete a partition:: -* PARTITION_GET_BUFFER - Get buffer from a partition:: -* PARTITION_RETURN_BUFFER - Return buffer to a partition:: -@end menu -@end ifinfo This section details the partition manager's directives. A subsection is dedicated to each of this manager's @@ -192,9 +124,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node PARTITION_CREATE - Create a partition, PARTITION_IDENT - Get ID of a partition, Partition Manager Directives, Partition Manager Directives -@end ifinfo @subsection PARTITION_CREATE - Create a partition @subheading CALLING SEQUENCE: @@ -281,9 +210,6 @@ partitions, is limited by the maximum_global_objects field in the Configuration Table. @page -@ifinfo -@node PARTITION_IDENT - Get ID of a partition, PARTITION_DELETE - Delete a partition, PARTITION_CREATE - Create a partition, Partition Manager Directives -@end ifinfo @subsection PARTITION_IDENT - Get ID of a partition @subheading CALLING SEQUENCE: @@ -341,9 +267,6 @@ nodes. It accesses only the local copy of the global object table. @page -@ifinfo -@node PARTITION_DELETE - Delete a partition, PARTITION_GET_BUFFER - Get buffer from a partition, PARTITION_IDENT - Get ID of a partition, Partition Manager Directives -@end ifinfo @subsection PARTITION_DELETE - Delete a partition @subheading CALLING SEQUENCE: @@ -395,9 +318,6 @@ The partition must reside on the local node, even if the partition was created with the @code{@value{RPREFIX}GLOBAL} option. @page -@ifinfo -@node PARTITION_GET_BUFFER - Get buffer from a partition, PARTITION_RETURN_BUFFER - Return buffer to a partition, PARTITION_DELETE - Delete a partition, Partition Manager Directives -@end ifinfo @subsection PARTITION_GET_BUFFER - Get buffer from a partition @subheading CALLING SEQUENCE: @@ -446,9 +366,6 @@ not reside on the local node will generate a request telling the remote node to allocate a buffer from the specified partition. @page -@ifinfo -@node PARTITION_RETURN_BUFFER - Return buffer to a partition, Region Manager, PARTITION_GET_BUFFER - Get buffer from a partition, Partition Manager Directives -@end ifinfo @subsection PARTITION_RETURN_BUFFER - Return buffer to a partition @subheading CALLING SEQUENCE: diff --git a/doc/user/region.t b/doc/user/region.t index 0f3a53eed9..095218c9b5 100644 --- a/doc/user/region.t +++ b/doc/user/region.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Region Manager, Region Manager Introduction, PARTITION_RETURN_BUFFER - Return buffer to a partition, Top -@end ifinfo @chapter Region Manager -@ifinfo -@menu -* Region Manager Introduction:: -* Region Manager Background:: -* Region Manager Operations:: -* Region Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Region Manager Introduction, Region Manager Background, Region Manager, Region Manager -@end ifinfo + @section Introduction The region manager provides facilities to dynamically @@ -38,21 +24,8 @@ provided by the region manager are: @item @code{@value{DIRPREFIX}region_get_segment_size} - Obtain size of a segment @end itemize -@ifinfo -@node Region Manager Background, Region Manager Definitions, Region Manager Introduction, Region Manager -@end ifinfo @section Background -@ifinfo -@menu -* Region Manager Definitions:: -* Building an Attribute Set:: -* Building an Option Set:: -@end menu -@end ifinfo - -@ifinfo -@node Region Manager Definitions, Building an Attribute Set, Region Manager Background, Region Manager Background -@end ifinfo + @subsection Region Manager Definitions A region makes up a physically contiguous memory @@ -80,9 +53,6 @@ Upon return to the region, the free block is coalesced with its neighbors (if free) on both sides to produce the largest possible unused block. -@ifinfo -@node Building an Attribute Set, Building an Option Set, Region Manager Definitions, Region Manager Background -@end ifinfo @subsection Building an Attribute Set In general, an attribute set is built by a bitwise OR @@ -110,9 +80,6 @@ discipline. The attribute_set parameter to the @code{@value{DIRPREFIX}region_create} directive should be @code{@value{RPREFIX}PRIORITY}. -@ifinfo -@node Building an Option Set, Region Manager Operations, Building an Attribute Set, Region Manager Background -@end ifinfo @subsection Building an Option Set In general, an option is built by a bitwise OR of the @@ -140,25 +107,8 @@ to poll for a segment. The option parameter passed to the @code{@value{DIRPREFIX}region_get_segment} directive should be @code{@value{RPREFIX}NO_WAIT}. -@ifinfo -@node Region Manager Operations, Creating a Region, Building an Option Set, Region Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Region:: -* Obtaining Region IDs:: -* Adding Memory to a Region:: -* Acquiring a Segment:: -* Releasing a Segment:: -* Obtaining the Size of a Segment:: -* Deleting a Region:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Region, Obtaining Region IDs, Region Manager Operations, Region Manager Operations -@end ifinfo + @subsection Creating a Region The @code{@value{DIRPREFIX}region_create} directive creates a region with the @@ -181,9 +131,6 @@ Due to automatic coalescing, the number of segments in the region dynamically changes. Therefore, the total overhead required by RTEMS dynamically changes. -@ifinfo -@node Obtaining Region IDs, Adding Memory to a Region, Creating a Region, Region Manager Operations -@end ifinfo @subsection Obtaining Region IDs When a region is created, RTEMS generates a unique @@ -197,9 +144,6 @@ using the @code{@value{DIRPREFIX}region_ident} directive. The region ID is used by other region manager directives to access this region. -@ifinfo -@node Adding Memory to a Region, Acquiring a Segment, Obtaining Region IDs, Region Manager Operations -@end ifinfo @subsection Adding Memory to a Region The @code{@value{DIRPREFIX}region_extend} directive may be used to add memory @@ -211,9 +155,6 @@ code for information regarding restrictions on the location of the memory being added in relation to memory already in the region. -@ifinfo -@node Acquiring a Segment, Releasing a Segment, Adding Memory to a Region, Region Manager Operations -@end ifinfo @subsection Acquiring a Segment The @code{@value{DIRPREFIX}region_get_segment} directive attempts to acquire @@ -237,9 +178,6 @@ in the region's task wait queue in either FIFO or task priority order. All tasks waiting on a region are returned an error when the message queue is deleted. -@ifinfo -@node Releasing a Segment, Obtaining the Size of a Segment, Acquiring a Segment, Region Manager Operations -@end ifinfo @subsection Releasing a Segment When a segment is returned to a region by the @@ -250,9 +188,6 @@ segment request can now be satisfied. If so, it is given a segment and unblocked. This process is repeated until the first task's segment request cannot be satisfied. -@ifinfo -@node Obtaining the Size of a Segment, Deleting a Region, Releasing a Segment, Region Manager Operations -@end ifinfo @subsection Obtaining the Size of a Segment The @code{@value{DIRPREFIX}region_get_segment_size} directive returns the @@ -260,9 +195,6 @@ size in bytes of the specified segment. The size returned includes any "extra" memory included in the segment because of rounding up to a page size boundary. -@ifinfo -@node Deleting a Region, Region Manager Directives, Obtaining the Size of a Segment, Region Manager Operations -@end ifinfo @subsection Deleting a Region A region can be removed from the system and returned @@ -275,21 +207,7 @@ error. As a result of this directive, all tasks blocked waiting to obtain a segment from the region will be readied and returned a status code which indicates that the region was deleted. -@ifinfo -@node Region Manager Directives, REGION_CREATE - Create a region, Deleting a Region, Region Manager -@end ifinfo @section Directives -@ifinfo -@menu -* REGION_CREATE - Create a region:: -* REGION_IDENT - Get ID of a region:: -* REGION_DELETE - Delete a region:: -* REGION_EXTEND - Add memory to a region:: -* REGION_GET_SEGMENT - Get segment from a region:: -* REGION_RETURN_SEGMENT - Return segment to a region:: -* REGION_GET_SEGMENT_SIZE - Obtain size of a segment:: -@end menu -@end ifinfo This section details the region manager's directives. A subsection is dedicated to each of this manager's directives @@ -297,9 +215,6 @@ and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node REGION_CREATE - Create a region, REGION_IDENT - Get ID of a region, Region Manager Directives, Region Manager Directives -@end ifinfo @subsection REGION_CREATE - Create a region @subheading CALLING SEQUENCE: @@ -378,9 +293,6 @@ by RTEMS: @end itemize @page -@ifinfo -@node REGION_IDENT - Get ID of a region, REGION_DELETE - Delete a region, REGION_CREATE - Create a region, Region Manager Directives -@end ifinfo @subsection REGION_IDENT - Get ID of a region @subheading CALLING SEQUENCE: @@ -423,9 +335,6 @@ access this region in other region manager directives. This directive will not cause the running task to be preempted. @page -@ifinfo -@node REGION_DELETE - Delete a region, REGION_EXTEND - Add memory to a region, REGION_IDENT - Get ID of a region, Region Manager Directives -@end ifinfo @subsection REGION_DELETE - Delete a region @subheading CALLING SEQUENCE: @@ -469,9 +378,6 @@ created the region. Any local task that knows the region id can delete the region. @page -@ifinfo -@node REGION_EXTEND - Add memory to a region, REGION_GET_SEGMENT - Get segment from a region, REGION_DELETE - Delete a region, Region Manager Directives -@end ifinfo @subsection REGION_EXTEND - Add memory to a region @subheading CALLING SEQUENCE: @@ -517,9 +423,6 @@ created the region. Any local task that knows the region id can extend the region. @page -@ifinfo -@node REGION_GET_SEGMENT - Get segment from a region, REGION_RETURN_SEGMENT - Return segment to a region, REGION_EXTEND - Add memory to a region, Region Manager Directives -@end ifinfo @subsection REGION_GET_SEGMENT - Get segment from a region @subheading CALLING SEQUENCE: @@ -607,9 +510,6 @@ A clock tick is required to support the timeout functionality of this directive. @page -@ifinfo -@node REGION_RETURN_SEGMENT - Return segment to a region, REGION_GET_SEGMENT_SIZE - Obtain size of a segment, REGION_GET_SEGMENT - Get segment from a region, Region Manager Directives -@end ifinfo @subsection REGION_RETURN_SEGMENT - Return segment to a region @subheading CALLING SEQUENCE: @@ -663,9 +563,6 @@ is less than or equal to the size of the segment returned. @end itemize @page -@ifinfo -@node REGION_GET_SEGMENT_SIZE - Obtain size of a segment, Dual-Ported Memory Manager, REGION_RETURN_SEGMENT - Return segment to a region, Region Manager Directives -@end ifinfo @subsection REGION_GET_SEGMENT_SIZE - Obtain size of a segment @subheading CALLING SEQUENCE: diff --git a/doc/user/rtmon.t b/doc/user/rtmon.t index 1dc8c56d6a..23f08a4faf 100644 --- a/doc/user/rtmon.t +++ b/doc/user/rtmon.t @@ -12,22 +12,8 @@ @c - use math mode to print formulas @c -@ifinfo -@node Rate Monotonic Manager, Rate Monotonic Manager Introduction, Scheduling Concepts Task State Transitions, Top -@end ifinfo @chapter Rate Monotonic Manager -@ifinfo -@menu -* Rate Monotonic Manager Introduction:: -* Rate Monotonic Manager Background:: -* Rate Monotonic Manager Operations:: -* Rate Monotonic Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Rate Monotonic Manager Introduction, Rate Monotonic Manager Background, Rate Monotonic Manager, Rate Monotonic Manager -@end ifinfo + @section Introduction The rate monotonic manager provides facilities to @@ -43,25 +29,7 @@ directives provided by the rate monotonic manager are: @item @code{@value{DIRPREFIX}rate_monotonic_get_status} - Obtain status information on period @end itemize -@ifinfo -@node Rate Monotonic Manager Background, Rate Monotonic Manager Required Support, Rate Monotonic Manager Introduction, Rate Monotonic Manager -@end ifinfo @section Background -@ifinfo -@menu -* Rate Monotonic Manager Required Support:: -* Rate Monotonic Manager Definitions:: -* Rate Monotonic Scheduling Algorithm:: -* Schedulability Analysis:: -* Assumptions:: -* Processor Utilization Rule:: -* Processor Utilization Rule Example:: -* First Deadline Rule:: -* First Deadline Rule Example:: -* Relaxation of Assumptions:: -* Further Reading:: -@end menu -@end ifinfo The rate monotonic manager provides facilities to manage the execution of periodic tasks. This manager was @@ -72,16 +40,10 @@ overload conditions. Although designed for hard real-time systems, the services provided by the rate monotonic manager may be used by any application which requires periodic tasks. -@ifinfo -@node Rate Monotonic Manager Required Support, Rate Monotonic Manager Definitions, Rate Monotonic Manager Background, Rate Monotonic Manager Background -@end ifinfo @subsection Rate Monotonic Manager Required Support A clock tick is required to support the functionality provided by this manager. -@ifinfo -@node Rate Monotonic Manager Definitions, Rate Monotonic Scheduling Algorithm, Rate Monotonic Manager Required Support, Rate Monotonic Manager Background -@end ifinfo @subsection Rate Monotonic Manager Definitions A periodic task is one which must be executed at a @@ -114,9 +76,6 @@ button on a joystick. The mechanical action of the fire button insures a minimum time period between successive activations, but the missile must be launched by a hard deadline. -@ifinfo -@node Rate Monotonic Scheduling Algorithm, Schedulability Analysis, Rate Monotonic Manager Definitions, Rate Monotonic Manager Background -@end ifinfo @subsection Rate Monotonic Scheduling Algorithm The Rate Monotonic Scheduling Algorithm (RMS) is @@ -235,9 +194,6 @@ Although RMS may be used to assign priorities to the non-critical tasks, it is not necessary. In this instance, schedulability is only guaranteed for the critical task set. -@ifinfo -@node Schedulability Analysis, Assumptions, Rate Monotonic Scheduling Algorithm, Rate Monotonic Manager Background -@end ifinfo @subsection Schedulability Analysis RMS allows application designers to insure that tasks @@ -247,9 +203,6 @@ proven schedulability analysis rules. @lowersections -@ifinfo -@node Assumptions, Processor Utilization Rule, Schedulability Analysis, Rate Monotonic Manager Background -@end ifinfo @subsection Assumptions The schedulability analysis rules for RMS were @@ -278,9 +231,6 @@ Once the basic schedulability analysis is understood, some of the above assumptions can be relaxed and the side-effects accounted for. -@ifinfo -@node Processor Utilization Rule, Processor Utilization Rule Example, Assumptions, Rate Monotonic Manager Background -@end ifinfo @subsection Processor Utilization Rule The Processor Utilization Rule requires that @@ -313,9 +263,6 @@ greater utilization factor. In fact, the average processor utilization threshold for a randomly generated task set is approximately 0.88. -@ifinfo -@node Processor Utilization Rule Example, First Deadline Rule, Processor Utilization Rule, Rate Monotonic Manager Background -@end ifinfo @subsection Processor Utilization Rule Example This example illustrates the application of the @@ -398,9 +345,6 @@ The total processor utilization for this task set is 0.779, imposed by the Processor Utilization Rule. Therefore, this task set is guaranteed to be schedulable using RMS. -@ifinfo -@node First Deadline Rule, First Deadline Rule Example, Processor Utilization Rule Example, Rate Monotonic Manager Background -@end ifinfo @subsection First Deadline Rule If a given set of tasks do exceed the processor @@ -424,9 +368,6 @@ deletes itself. This technique insures that all tasks begin to compete for execution time at the same instant -- when the user initialization task deletes itself. -@ifinfo -@node First Deadline Rule Example, Relaxation of Assumptions, First Deadline Rule, Rate Monotonic Manager Background -@end ifinfo @subsection First Deadline Rule Example The First Deadline Rule can insure schedulability @@ -606,9 +547,6 @@ time 200. Thus, all of the tasks have met their first deadlines at time 200, and the task set is schedulable using the First Deadline Rule. -@ifinfo -@node Relaxation of Assumptions, Further Reading, First Deadline Rule Example, Rate Monotonic Manager Background -@end ifinfo @subsection Relaxation of Assumptions The assumptions used to develop the RMS @@ -647,9 +585,6 @@ Every hardware and software factor which impacts the execution time of each task must be accounted for in the schedulability analysis. -@ifinfo -@node Further Reading, Rate Monotonic Manager Operations, Relaxation of Assumptions, Rate Monotonic Manager Background -@end ifinfo @subsection Further Reading For more information on Rate Monotonic Scheduling and @@ -674,26 +609,8 @@ review." @b{Software Engineering Journal}. May 1991. pp. 116-128.} @raisesections -@ifinfo -@node Rate Monotonic Manager Operations, Creating a Rate Monotonic Period, Further Reading, Rate Monotonic Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Rate Monotonic Period:: -* Manipulating a Period:: -* Obtaining a Period's Status:: -* Canceling a Period:: -* Deleting a Rate Monotonic Period:: -* Examples:: -* Simple Periodic Task:: -* Task with Multiple Periods:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Rate Monotonic Period, Manipulating a Period, Rate Monotonic Manager Operations, Rate Monotonic Manager Operations -@end ifinfo + @subsection Creating a Rate Monotonic Period The @code{@value{DIRPREFIX}rate_monotonic_create} directive creates a rate @@ -705,9 +622,6 @@ returns a unique period ID to the application which is used by other rate monotonic manager directives to access this rate monotonic period. -@ifinfo -@node Manipulating a Period, Obtaining a Period's Status, Creating a Rate Monotonic Period, Rate Monotonic Manager Operations -@end ifinfo @subsection Manipulating a Period The @code{@value{DIRPREFIX}rate_monotonic_period} directive is used to @@ -734,9 +648,6 @@ returns immediately with a timeout error status. @end itemize -@ifinfo -@node Obtaining a Period's Status, Canceling a Period, Manipulating a Period, Rate Monotonic Manager Operations -@end ifinfo @subsection Obtaining a Period's Status If the @code{@value{DIRPREFIX}rate_monotonic_period} directive is invoked @@ -758,9 +669,6 @@ directive: Obtaining the status of a rate monotonic period does not alter the state or length of that period. -@ifinfo -@node Canceling a Period, Deleting a Rate Monotonic Period, Obtaining a Period's Status, Rate Monotonic Manager Operations -@end ifinfo @subsection Canceling a Period The @code{@value{DIRPREFIX}rate_monotonic_cancel} directive is used to stop @@ -768,9 +676,6 @@ the period maintained by the specified rate monotonic period. The period is stopped and the rate monotonic period can be reinitiated using the @code{@value{DIRPREFIX}rate_monotonic_period} directive. -@ifinfo -@node Deleting a Rate Monotonic Period, Examples, Canceling a Period, Rate Monotonic Manager Operations -@end ifinfo @subsection Deleting a Rate Monotonic Period The @code{@value{DIRPREFIX}rate_monotonic_delete} directive is used to delete @@ -780,17 +685,11 @@ monotonic period's control block is returned to the PCB free list when it is deleted. A rate monotonic period can be deleted by a task other than the task which created the period. -@ifinfo -@node Examples, Simple Periodic Task, Deleting a Rate Monotonic Period, Rate Monotonic Manager Operations -@end ifinfo @subsection Examples The following sections illustrate common uses of rate monotonic periods to construct periodic tasks. -@ifinfo -@node Simple Periodic Task, Task with Multiple Periods, Examples, Rate Monotonic Manager Operations -@end ifinfo @subsection Simple Periodic Task This example consists of a single periodic task @@ -836,9 +735,6 @@ directive will return the @code{@value{RPREFIX}TIMEOUT} status. If the above task misses its deadline, it will delete the rate monotonic period and itself. -@ifinfo -@node Task with Multiple Periods, Rate Monotonic Manager Directives, Simple Periodic Task, Rate Monotonic Manager Operations -@end ifinfo @subsection Task with Multiple Periods This example consists of a single periodic task @@ -925,20 +821,7 @@ return the @code{@value{RPREFIX}TIMEOUT} directive status. If the above task misses its deadline, it will delete the rate monotonic periods and itself. -@ifinfo -@node Rate Monotonic Manager Directives, RATE_MONOTONIC_CREATE - Create a rate monotonic period, Task with Multiple Periods, Rate Monotonic Manager -@end ifinfo @section Directives -@ifinfo -@menu -* RATE_MONOTONIC_CREATE - Create a rate monotonic period:: -* RATE_MONOTONIC_IDENT - Get ID of a period:: -* RATE_MONOTONIC_CANCEL - Cancel a period:: -* RATE_MONOTONIC_DELETE - Delete a rate monotonic period:: -* RATE_MONOTONIC_PERIOD - Conclude current/Start next period:: -* RATE_MONOTONIC_GET_STATUS - Obtain status information on period:: -@end menu -@end ifinfo This section details the rate monotonic manager's directives. A subsection is dedicated to each of this manager's @@ -946,9 +829,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node RATE_MONOTONIC_CREATE - Create a rate monotonic period, RATE_MONOTONIC_IDENT - Get ID of a period, Rate Monotonic Manager Directives, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_CREATE - Create a rate monotonic period @subheading CALLING SEQUENCE: @@ -992,9 +872,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node RATE_MONOTONIC_IDENT - Get ID of a period, RATE_MONOTONIC_CANCEL - Cancel a period, RATE_MONOTONIC_CREATE - Create a rate monotonic period, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_IDENT - Get ID of a period @subheading CALLING SEQUENCE: @@ -1037,9 +914,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node RATE_MONOTONIC_CANCEL - Cancel a period, RATE_MONOTONIC_DELETE - Delete a rate monotonic period, RATE_MONOTONIC_IDENT - Get ID of a period, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_CANCEL - Cancel a period @subheading CALLING SEQUENCE: @@ -1081,9 +955,6 @@ The rate monotonic period specified by id must have been created by the calling task. @page -@ifinfo -@node RATE_MONOTONIC_DELETE - Delete a rate monotonic period, RATE_MONOTONIC_PERIOD - Conclude current/Start next period, RATE_MONOTONIC_CANCEL - Cancel a period, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_DELETE - Delete a rate monotonic period @subheading CALLING SEQUENCE: @@ -1124,9 +995,6 @@ A rate monotonic period can be deleted by a task other than the task which created the period. @page -@ifinfo -@node RATE_MONOTONIC_PERIOD - Conclude current/Start next period, RATE_MONOTONIC_GET_STATUS - Obtain status information on period, RATE_MONOTONIC_DELETE - Delete a rate monotonic period, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_PERIOD - Conclude current/Start next period @subheading CALLING SEQUENCE: @@ -1178,9 +1046,6 @@ This directive will not cause the running task to be preempted. --------------------- @page -@ifinfo -@node RATE_MONOTONIC_GET_STATUS - Obtain status information on period, Board Support Packages, RATE_MONOTONIC_PERIOD - Conclude current/Start next period, Rate Monotonic Manager Directives -@end ifinfo @subsection RATE_MONOTONIC_GET_STATUS - Obtain status information on period @subheading CALLING SEQUENCE: diff --git a/doc/user/schedule.t b/doc/user/schedule.t index 80317082b4..aa187afb13 100644 --- a/doc/user/schedule.t +++ b/doc/user/schedule.t @@ -11,21 +11,8 @@ @c Figure 17-1 RTEMS Task State Transitions @c -@ifinfo -@node Scheduling Concepts, Scheduling Concepts Introduction, FATAL_ERROR_OCCURRED - Invoke the fatal error handler, Top -@end ifinfo @chapter Scheduling Concepts -@ifinfo -@menu -* Scheduling Concepts Introduction:: -* Scheduling Concepts Scheduling Mechanisms:: -* Scheduling Concepts Task State Transitions:: -@end menu -@end ifinfo - -@ifinfo -@node Scheduling Concepts Introduction, Scheduling Concepts Scheduling Mechanisms, Scheduling Concepts, Scheduling Concepts -@end ifinfo + @section Introduction The concept of scheduling in real-time systems @@ -60,19 +47,7 @@ chain is allocated the processor. RTEMS schedules tasks using the second method to guarantee faster response times to external events. -@ifinfo -@node Scheduling Concepts Scheduling Mechanisms, Task Priority and Scheduling, Scheduling Concepts Introduction, Scheduling Concepts -@end ifinfo @section Scheduling Mechanisms -@ifinfo -@menu -* Task Priority and Scheduling:: -* Preemption:: -* Timeslicing:: -* Manual Round-Robin:: -* Dispatching Tasks:: -@end menu -@end ifinfo RTEMS provides four mechanisms which allow the user to impact the task scheduling process: @@ -97,9 +72,6 @@ preemption (if enabled) of a task by higher priority tasks will occur as required, overriding the other factors presented in the description. -@ifinfo -@node Task Priority and Scheduling, Preemption, Scheduling Concepts Scheduling Mechanisms, Scheduling Concepts Scheduling Mechanisms -@end ifinfo @subsection Task Priority and Scheduling The most significant of these mechanisms is the @@ -121,9 +93,6 @@ priority task that is ready to run when allocating the processor to a task.} @end itemize -@ifinfo -@node Preemption, Timeslicing, Task Priority and Scheduling, Scheduling Concepts Scheduling Mechanisms -@end ifinfo @subsection Preemption Another way the user can alter the basic scheduling @@ -137,9 +106,6 @@ Note that the preemption setting has no effect on the manner in which a task is scheduled. It only applies once a task has control of the processor. -@ifinfo -@node Timeslicing, Manual Round-Robin, Preemption, Scheduling Concepts Scheduling Mechanisms -@end ifinfo @subsection Timeslicing Timeslicing or round-robin scheduling is an @@ -159,9 +125,6 @@ task will preempt the task (unless preemption is disabled) as soon as it is ready to run, even if the task has not used up its entire timeslice. -@ifinfo -@node Manual Round-Robin, Dispatching Tasks, Timeslicing, Scheduling Concepts Scheduling Mechanisms -@end ifinfo @subsection Manual Round-Robin The final mechanism for altering the RTEMS scheduling @@ -174,9 +137,6 @@ end of its priority group. If no other tasks of the same priority are ready to run, then the task does not lose control of the processor. -@ifinfo -@node Dispatching Tasks, Scheduling Concepts Task State Transitions, Manual Round-Robin, Scheduling Concepts Scheduling Mechanisms -@end ifinfo @subsection Dispatching Tasks The dispatcher is the RTEMS component responsible for @@ -205,9 +165,6 @@ operations, the state of the numeric coprocessor is only saved when a @code{@value{RPREFIX}FLOATING_POINT} task is dispatched and that task was not the last task to utilize the coprocessor. -@ifinfo -@node Scheduling Concepts Task State Transitions, Rate Monotonic Manager, Dispatching Tasks, Scheduling Concepts -@end ifinfo @section Task State Transitions Tasks in an RTEMS system must always be in one of the diff --git a/doc/user/sem.t b/doc/user/sem.t index 9697da82e4..8f63cdc727 100644 --- a/doc/user/sem.t +++ b/doc/user/sem.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Semaphore Manager, Semaphore Manager Introduction, TIMER_RESET - Reset an interval timer, Top -@end ifinfo @chapter Semaphore Manager -@ifinfo -@menu -* Semaphore Manager Introduction:: -* Semaphore Manager Background:: -* Semaphore Manager Operations:: -* Semaphore Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Semaphore Manager Introduction, Semaphore Manager Background, Semaphore Manager, Semaphore Manager -@end ifinfo + @section Introduction The semaphore manager utilizes standard Dijkstra @@ -37,20 +23,7 @@ semaphore manager are: @item @code{@value{DIRPREFIX}semaphore_release} - Release a semaphore @end itemize -@ifinfo -@node Semaphore Manager Background, Nested Resource Access, Semaphore Manager Introduction, Semaphore Manager -@end ifinfo @section Background -@ifinfo -@menu -* Nested Resource Access:: -* Priority Inversion:: -* Priority Inheritance:: -* Priority Ceiling:: -* Building a Semaphore's Attribute Set:: -* Building a SEMAPHORE_OBTAIN Option Set:: -@end menu -@end ifinfo A semaphore can be viewed as a protected variable whose value can be modified only with the @@ -92,9 +65,6 @@ performs a corresponding @code{@value{DIRPREFIX}semaphore_release} operation when it reaches its synchronization point, thus unblocking the pending task. -@ifinfo -@node Nested Resource Access, Priority Inversion, Semaphore Manager Background, Semaphore Manager Background -@end ifinfo @subsection Nested Resource Access Deadlock occurs when a task owning a binary semaphore @@ -114,9 +84,6 @@ outermost @code{@value{DIRPREFIX}semaphore_obtain} is matched with a @code{@value{DIRPREFIX}semaphore_release}. -@ifinfo -@node Priority Inversion, Priority Inheritance, Nested Resource Access, Semaphore Manager Background -@end ifinfo @subsection Priority Inversion Priority inversion is a form of indefinite @@ -132,9 +99,6 @@ cannot complete its interaction with the resource and release that resource. The high priority task is effectively prevented from executing by lower priority tasks. -@ifinfo -@node Priority Inheritance, Priority Ceiling, Priority Inversion, Semaphore Manager Background -@end ifinfo @subsection Priority Inheritance Priority inheritance is an algorithm that calls for @@ -163,9 +127,6 @@ any of the semaphores the task holds. Only when the task releases ALL of the binary semaphores it holds will its priority be restored to the normal value. -@ifinfo -@node Priority Ceiling, Building a Semaphore's Attribute Set, Priority Inheritance, Semaphore Manager Background -@end ifinfo @subsection Priority Ceiling Priority ceiling is an algorithm that calls for the @@ -207,9 +168,6 @@ any of the semaphores the task holds. Only when the task releases ALL of the binary semaphores it holds will its priority be restored to the normal value. -@ifinfo -@node Building a Semaphore's Attribute Set, Building a SEMAPHORE_OBTAIN Option Set, Priority Ceiling, Semaphore Manager Background -@end ifinfo @subsection Building a Semaphore's Attribute Set In general, an attribute set is built by a bitwise OR @@ -263,9 +221,6 @@ similar semaphore were to be known globally, then the attribute_set parameter would be @code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}PRIORITY}. -@ifinfo -@node Building a SEMAPHORE_OBTAIN Option Set, Semaphore Manager Operations, Building a Semaphore's Attribute Set, Semaphore Manager Background -@end ifinfo @subsection Building a SEMAPHORE_OBTAIN Option Set In general, an option is built by a bitwise OR of the @@ -292,23 +247,8 @@ to poll for a semaphore. The option parameter passed to the @code{@value{DIRPREFIX}semaphore_obtain} directive should be @code{@value{RPREFIX}NO_WAIT}. -@ifinfo -@node Semaphore Manager Operations, Creating a Semaphore, Building a SEMAPHORE_OBTAIN Option Set, Semaphore Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Semaphore:: -* Obtaining Semaphore IDs:: -* Acquiring a Semaphore:: -* Releasing a Semaphore:: -* Deleting a Semaphore:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Semaphore, Obtaining Semaphore IDs, Semaphore Manager Operations, Semaphore Manager Operations -@end ifinfo + @subsection Creating a Semaphore The @code{@value{DIRPREFIX}semaphore_create} directive creates a binary or @@ -328,9 +268,6 @@ must be specified. RTEMS allocates a Semaphore Control Block RTEMS to manage the newly created semaphore. Also, a unique semaphore ID is generated and returned to the calling task. -@ifinfo -@node Obtaining Semaphore IDs, Acquiring a Semaphore, Creating a Semaphore, Semaphore Manager Operations -@end ifinfo @subsection Obtaining Semaphore IDs When a semaphore is created, RTEMS generates a unique @@ -344,9 +281,6 @@ the semaphore ID may be obtained later using the used by other semaphore manager directives to access this semaphore. -@ifinfo -@node Acquiring a Semaphore, Releasing a Semaphore, Obtaining Semaphore IDs, Semaphore Manager Operations -@end ifinfo @subsection Acquiring a Semaphore The @code{@value{DIRPREFIX}semaphore_obtain} directive is used to acquire the @@ -389,9 +323,6 @@ priority ceiling and the priority ceiling for this semaphore is greater than that of the holder, then the holder's priority will be elevated. -@ifinfo -@node Releasing a Semaphore, Deleting a Semaphore, Acquiring a Semaphore, Semaphore Manager Operations -@end ifinfo @subsection Releasing a Semaphore The @code{@value{DIRPREFIX}semaphore_release} directive is used to release @@ -412,9 +343,6 @@ the task does not currently hold any other binary semaphores, then the task performing the @code{@value{DIRPREFIX}semaphore_release} will have its priority restored to its normal value. -@ifinfo -@node Deleting a Semaphore, Semaphore Manager Directives, Releasing a Semaphore, Semaphore Manager Operations -@end ifinfo @subsection Deleting a Semaphore The @code{@value{DIRPREFIX}semaphore_delete} directive removes a semaphore @@ -425,19 +353,7 @@ the semaphore will be readied and returned a status code which indicates that the semaphore was deleted. Any subsequent references to the semaphore's name and ID are invalid. -@ifinfo -@node Semaphore Manager Directives, SEMAPHORE_CREATE - Create a semaphore, Deleting a Semaphore, Semaphore Manager -@end ifinfo @section Directives -@ifinfo -@menu -* SEMAPHORE_CREATE - Create a semaphore:: -* SEMAPHORE_IDENT - Get ID of a semaphore:: -* SEMAPHORE_DELETE - Delete a semaphore:: -* SEMAPHORE_OBTAIN - Acquire a semaphore:: -* SEMAPHORE_RELEASE - Release a semaphore:: -@end menu -@end ifinfo This section details the semaphore manager's directives. A subsection is dedicated to each of this manager's @@ -445,9 +361,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node SEMAPHORE_CREATE - Create a semaphore, SEMAPHORE_IDENT - Get ID of a semaphore, Semaphore Manager Directives, Semaphore Manager Directives -@end ifinfo @subsection SEMAPHORE_CREATE - Create a semaphore @subheading CALLING SEQUENCE: @@ -549,9 +462,6 @@ semaphores, is limited by the maximum_global_objects field in the Configuration Table. @page -@ifinfo -@node SEMAPHORE_IDENT - Get ID of a semaphore, SEMAPHORE_DELETE - Delete a semaphore, SEMAPHORE_CREATE - Create a semaphore, Semaphore Manager Directives -@end ifinfo @subsection SEMAPHORE_IDENT - Get ID of a semaphore @subheading CALLING SEQUENCE: @@ -609,9 +519,6 @@ nodes. It accesses only the local copy of the global object table. @page -@ifinfo -@node SEMAPHORE_DELETE - Delete a semaphore, SEMAPHORE_OBTAIN - Acquire a semaphore, SEMAPHORE_IDENT - Get ID of a semaphore, Semaphore Manager Directives -@end ifinfo @subsection SEMAPHORE_DELETE - Delete a semaphore @subheading CALLING SEQUENCE: @@ -670,9 +577,6 @@ Proxies, used to represent remote tasks, are reclaimed when the semaphore is deleted. @page -@ifinfo -@node SEMAPHORE_OBTAIN - Acquire a semaphore, SEMAPHORE_RELEASE - Release a semaphore, SEMAPHORE_DELETE - Delete a semaphore, Semaphore Manager Directives -@end ifinfo @subsection SEMAPHORE_OBTAIN - Acquire a semaphore @subheading CALLING SEQUENCE: @@ -762,9 +666,6 @@ A clock tick is required to support the timeout functionality of this directive. @page -@ifinfo -@node SEMAPHORE_RELEASE - Release a semaphore, Message Manager, SEMAPHORE_OBTAIN - Acquire a semaphore, Semaphore Manager Directives -@end ifinfo @subsection SEMAPHORE_RELEASE - Release a semaphore @subheading CALLING SEQUENCE: diff --git a/doc/user/signal.t b/doc/user/signal.t index e11fa474a1..77280afeb6 100644 --- a/doc/user/signal.t +++ b/doc/user/signal.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Signal Manager, Signal Manager Introduction, EVENT_RECEIVE - Receive event condition, Top -@end ifinfo @chapter Signal Manager -@ifinfo -@menu -* Signal Manager Introduction:: -* Signal Manager Background:: -* Signal Manager Operations:: -* Signal Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Signal Manager Introduction, Signal Manager Background, Signal Manager, Signal Manager -@end ifinfo + @section Introduction The signal manager provides the capabilities required @@ -33,22 +19,8 @@ signal manager are: @item @code{@value{DIRPREFIX}signal_send} - Send signal set to a task @end itemize -@ifinfo -@node Signal Manager Background, Signal Manager Definitions, Signal Manager Introduction, Signal Manager -@end ifinfo @section Background -@ifinfo -@menu -* Signal Manager Definitions:: -* A Comparison of ASRs and ISRs:: -* Building a Signal Set:: -* Building an ASR's Mode:: -@end menu -@end ifinfo - -@ifinfo -@node Signal Manager Definitions, A Comparison of ASRs and ISRs, Signal Manager Background, Signal Manager Background -@end ifinfo + @subsection Signal Manager Definitions The signal manager allows a task to optionally define @@ -69,9 +41,6 @@ task. A pending signal is a signal that has been sent to a task with a valid ASR, but has not been processed by that task's ASR. -@ifinfo -@node A Comparison of ASRs and ISRs, Building a Signal Set, Signal Manager Definitions, Signal Manager Background -@end ifinfo @subsection A Comparison of ASRs and ISRs The format of an ASR is similar to that of an ISR @@ -94,9 +63,6 @@ of the task. An ISR does not execute as a task and, as a result, does not have a task mode. @end itemize -@ifinfo -@node Building a Signal Set, Building an ASR's Mode, A Comparison of ASRs and ISRs, Signal Manager Background -@end ifinfo @subsection Building a Signal Set A signal set is built by a bitwise OR of the desired @@ -116,9 +82,6 @@ to the @code{@value{DIRPREFIX}signal_send} directive should be @code{@value{RPREFIX}SIGNAL_6 @value{OR} @value{RPREFIX}SIGNAL_15 @value{OR} @value{RPREFIX}SIGNAL_31}. -@ifinfo -@node Building an ASR's Mode, Signal Manager Operations, Building a Signal Set, Signal Manager Background -@end ifinfo @subsection Building an ASR's Mode In general, an ASR's mode is built by a bitwise OR of @@ -171,21 +134,8 @@ be set to to indicate the desired processor mode and interrupt level. -@ifinfo -@node Signal Manager Operations, Establishing an ASR, Building an ASR's Mode, Signal Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Establishing an ASR:: -* Sending a Signal Set:: -* Processing an ASR:: -@end menu -@end ifinfo - -@ifinfo -@node Establishing an ASR, Sending a Signal Set, Signal Manager Operations, Signal Manager Operations -@end ifinfo + @subsection Establishing an ASR The @code{@value{DIRPREFIX}signal_catch} directive establishes an ASR for the @@ -215,9 +165,6 @@ Normally, signal processing is disabled for the ASR's execution mode, but if signal processing is enabled for the ASR, the ASR must be reentrant. -@ifinfo -@node Sending a Signal Set, Processing an ASR, Establishing an ASR, Signal Manager Operations -@end ifinfo @subsection Sending a Signal Set The @code{@value{DIRPREFIX}signal_send} directive allows both @@ -246,9 +193,6 @@ to a task (without any intermediate signal processing occurring for the task), has the same result as sending that signal to that task once. -@ifinfo -@node Processing an ASR, Signal Manager Directives, Sending a Signal Set, Signal Manager Operations -@end ifinfo @subsection Processing an ASR Asynchronous signals were designed to provide the @@ -279,16 +223,7 @@ When the ASR returns to RTEMS the mode and execution path of the interrupted task (or ASR) is restored to the context prior to entering the ASR. -@ifinfo -@node Signal Manager Directives, SIGNAL_CATCH - Establish an ASR, Processing an ASR, Signal Manager -@end ifinfo @section Directives -@ifinfo -@menu -* SIGNAL_CATCH - Establish an ASR:: -* SIGNAL_SEND - Send signal set to a task:: -@end menu -@end ifinfo This section details the signal manager's directives. A subsection is dedicated to each of this manager's directives @@ -296,9 +231,6 @@ and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node SIGNAL_CATCH - Establish an ASR, SIGNAL_SEND - Send signal set to a task, Signal Manager Directives, Signal Manager Directives -@end ifinfo @subsection SIGNAL_CATCH - Establish an ASR @subheading CALLING SEQUENCE: @@ -370,9 +302,6 @@ The following task mode constants are defined by RTEMS: @end itemize @page -@ifinfo -@node SIGNAL_SEND - Send signal set to a task, Partition Manager, SIGNAL_CATCH - Establish an ASR, Signal Manager Directives -@end ifinfo @subsection SIGNAL_SEND - Send signal set to a task @subheading CALLING SEQUENCE: diff --git a/doc/user/task.t b/doc/user/task.t index 84497e2f2d..0c80961da2 100644 --- a/doc/user/task.t +++ b/doc/user/task.t @@ -6,24 +6,8 @@ @c $Id$ @c -@ifinfo -@node Task Manager, Task Manager Introduction, SHUTDOWN_EXECUTIVE - Shutdown RTEMS, Top -@end ifinfo - @chapter Task Manager -@ifinfo -@menu -* Task Manager Introduction:: -* Task Manager Background:: -* Task Manager Operations:: -* Task Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Task Manager Introduction, Task Manager Background, Task Manager, Task Manager -@end ifinfo @section Introduction The task manager provides a comprehensive set of directives to @@ -46,31 +30,8 @@ by the task manager are: @item @code{@value{DIRPREFIX}task_wake_when} - Wake up when specified @end itemize -@ifinfo -@node Task Manager Background, Task Definition, Task Manager Introduction, Task Manager -@end ifinfo - @section Background -@ifinfo -@menu -* Task Definition:: -* Task Control Block:: -* Task States:: -* Task Priority:: -* Task Mode:: -* Accessing Task Arguments:: -* Floating Point Considerations:: -* Building a Task's Attribute Set:: -* Building a Mode and Mask:: -@end menu - -@end ifinfo - -@ifinfo -@node Task Definition, Task Control Block, Task Manager Background, Task Manager Background -@end ifinfo - @subsection Task Definition Many definitions of a task have been proposed in computer literature. @@ -99,9 +60,6 @@ execution which can compete on its own for system resources. A task is manifested by the existence of a task control block (TCB). -@ifinfo -@node Task Control Block, Task States, Task Definition, Task Manager Background -@end ifinfo @subsection Task Control Block The Task Control Block (TCB) is an RTEMS defined data structure @@ -126,9 +84,6 @@ restored from the TCB. When a task is restarted, the initial state of the task is restored from the starting context area in the task's TCB. -@ifinfo -@node Task States, Task Priority, Task Control Block, Task Manager Background -@end ifinfo @subsection Task States A task may exist in one of the following five states: @@ -151,9 +106,6 @@ to the CPU for periods of time determined by the RTEMS scheduling algorithm. The scheduling of a task is based on its current state and priority. -@ifinfo -@node Task Priority, Task Mode, Task States, Task Manager Background -@end ifinfo @subsection Task Priority A task's priority determines its importance in relation to the @@ -175,9 +127,6 @@ task will be allowed to execute. In general, the higher the logical priority of a task, the more likely it is to receive processor execution time. -@ifinfo -@node Task Mode, Accessing Task Arguments, Task Priority, Task Manager Background -@end ifinfo @subsection Task Mode A task's mode is a combination of the following four components: @@ -237,9 +186,6 @@ specifies that the task will execute at interrupt level n. @item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n @end itemize -@ifinfo -@node Accessing Task Arguments, Floating Point Considerations, Task Mode, Task Manager Background -@end ifinfo @subsection Accessing Task Arguments All RTEMS tasks are invoked with a single argument which is @@ -267,9 +213,6 @@ procedure User_Task ( Application tasks requiring more information may view this single argument as an index into an array of parameter blocks. -@ifinfo -@node Floating Point Considerations, Building a Task's Attribute Set, Accessing Task Arguments, Task Manager Background -@end ifinfo @subsection Floating Point Considerations Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} flag results @@ -321,9 +264,6 @@ attribute. The consequence of a @code{@value{RPREFIX}NO_FLOATING_POINT} task attempting to access the floating point unit is CPU dependent but will generally result in an exception condition. -@ifinfo -@node Building a Task's Attribute Set, Building a Mode and Mask, Floating Point Considerations, Task Manager Background -@end ifinfo @subsection Building a Task's Attribute Set In general, an attribute set is built by a bitwise OR of the @@ -355,9 +295,6 @@ tasks. If the task were global and used the numeric coprocessor, then the attribute_set parameter would be @code{@value{RPREFIX}GLOBAL @value{OR} @value{RPREFIX}FLOATING_POINT}. -@ifinfo -@node Building a Mode and Mask, Task Manager Operations, Building a Task's Attribute Set, Task Manager Background -@end ifinfo @subsection Building a Mode and Mask In general, a mode and its corresponding mask is built by a @@ -482,29 +419,8 @@ interrupt level, while the mask parameter should be set to @value{RPREFIX}NO_PREEMPT_MASK} to indicate that the calling task's interrupt level and preemption mode are being altered. -@ifinfo -@node Task Manager Operations, Creating Tasks, Building a Mode and Mask, Task Manager -@end ifinfo - @section Operations -@ifinfo -@menu -* Creating Tasks:: -* Obtaining Task IDs:: -* Starting and Restarting Tasks:: -* Suspending and Resuming Tasks:: -* Delaying the Currently Executing Task:: -* Changing Task Priority:: -* Changing Task Mode:: -* Notepad Locations:: -* Task Deletion:: -@end menu -@end ifinfo - -@ifinfo -@node Creating Tasks, Obtaining Task IDs, Task Manager Operations, Task Manager Operations -@end ifinfo @subsection Creating Tasks The @code{@value{DIRPREFIX}task_create} @@ -516,9 +432,6 @@ initial mode, and assigning it a task ID. Newly created tasks are initially placed in the dormant state. All RTEMS tasks execute in the most privileged mode of the processor. -@ifinfo -@node Obtaining Task IDs, Starting and Restarting Tasks, Creating Tasks, Task Manager Operations -@end ifinfo @subsection Obtaining Task IDs When a task is created, RTEMS generates a unique task ID and @@ -531,9 +444,6 @@ obtained later using the @code{@value{DIRPREFIX}task_ident} directive. The task ID is used by other directives to manipulate this task. -@ifinfo -@node Starting and Restarting Tasks, Suspending and Resuming Tasks, Obtaining Task IDs, Task Manager Operations -@end ifinfo @subsection Starting and Restarting Tasks The @code{@value{DIRPREFIX}task_start} @@ -566,9 +476,6 @@ returned to RTEMS. A task cannot be restarted unless it has previously been started (i.e. dormant tasks cannot be restarted). All restarted tasks are placed in the ready state. -@ifinfo -@node Suspending and Resuming Tasks, Delaying the Currently Executing Task, Starting and Restarting Tasks, Task Manager Operations -@end ifinfo @subsection Suspending and Resuming Tasks The @code{@value{DIRPREFIX}task_suspend} @@ -590,9 +497,6 @@ suspension and leaves the task in the blocked state. Suspending a task which is already suspended or resuming a task which is not suspended is considered an error. -@ifinfo -@node Delaying the Currently Executing Task, Changing Task Priority, Suspending and Resuming Tasks, Task Manager Operations -@end ifinfo @subsection Delaying the Currently Executing Task The @code{@value{DIRPREFIX}task_wake_after} directive creates a sleep timer @@ -610,9 +514,6 @@ a task to go to sleep until a specified date and time. The calling task is blocked until the specified date and time has occurred, at which time the task is unblocked. -@ifinfo -@node Changing Task Priority, Changing Task Mode, Delaying the Currently Executing Task, Task Manager Operations -@end ifinfo @subsection Changing Task Priority The @code{@value{DIRPREFIX}task_set_priority} @@ -629,9 +530,6 @@ The @code{@value{DIRPREFIX}task_restart} directive resets the priority of a task to its original value. -@ifinfo -@node Changing Task Mode, Notepad Locations, Changing Task Priority, Task Manager Operations -@end ifinfo @subsection Changing Task Mode The @code{@value{DIRPREFIX}task_mode} @@ -644,9 +542,6 @@ The @code{@value{DIRPREFIX}task_restart} directive resets the mode of a task to its original value. -@ifinfo -@node Notepad Locations, Task Deletion, Changing Task Mode, Task Manager Operations -@end ifinfo @subsection Notepad Locations RTEMS provides sixteen notepad locations for each task. Each @@ -662,9 +557,6 @@ to set a task's notepad entry to a specified note. The directive allows the user to obtain the note contained in any one of the sixteen notepads of a specified task. -@ifinfo -@node Task Deletion, Task Manager Directives, Notepad Locations, Task Manager Operations -@end ifinfo @subsection Task Deletion RTEMS provides the @code{@value{DIRPREFIX}task_delete} @@ -692,30 +584,8 @@ task to delete itself by sending a "delete self" message, event, or signal, or by restarting the task with special arguments which instruct the task to delete itself. -@ifinfo -@node Task Manager Directives, TASK_CREATE - Create a task, Task Deletion, Task Manager -@end ifinfo - @section Directives -@ifinfo -@menu -* TASK_CREATE - Create a task:: -* TASK_IDENT - Get ID of a task:: -* TASK_START - Start a task:: -* TASK_RESTART - Restart a task:: -* TASK_DELETE - Delete a task:: -* TASK_SUSPEND - Suspend a task:: -* TASK_RESUME - Resume a task:: -* TASK_SET_PRIORITY - Set task priority:: -* TASK_MODE - Change current task's mode:: -* TASK_GET_NOTE - Get task notepad entry:: -* TASK_SET_NOTE - Set task notepad entry:: -* TASK_WAKE_AFTER - Wake up after interval:: -* TASK_WAKE_WHEN - Wake up when specified:: -@end menu -@end ifinfo - This section details the task manager's directives. A subsection is dedicated to each of this manager's directives and describes the calling sequence, related constants, usage, and @@ -723,9 +593,6 @@ status codes. @page -@ifinfo -@node TASK_CREATE - Create a task, TASK_IDENT - Get ID of a task, Task Manager Directives, Task Manager Directives -@end ifinfo @subsection TASK_CREATE - Create a task @subheading CALLING SEQUENCE: @@ -835,9 +702,6 @@ by the maximum_global_objects field in the Configuration Table. @page -@ifinfo -@node TASK_IDENT - Get ID of a task, TASK_START - Start a task, TASK_CREATE - Create a task, Task Manager Directives -@end ifinfo @subsection TASK_IDENT - Get ID of a task @subheading CALLING SEQUENCE: @@ -893,9 +757,6 @@ accesses only the local copy of the global object table. @page -@ifinfo -@node TASK_START - Start a task, TASK_RESTART - Restart a task, TASK_IDENT - Get ID of a task, Task Manager Directives -@end ifinfo @subsection TASK_START - Start a task @subheading CALLING SEQUENCE: @@ -945,9 +806,6 @@ the @code{@value{DIRPREFIX}task_start} directive. @page -@ifinfo -@node TASK_RESTART - Restart a task, TASK_DELETE - Delete a task, TASK_START - Start a task, Task Manager Directives -@end ifinfo @subsection TASK_RESTART - Restart a task @subheading CALLING SEQUENCE: @@ -1009,9 +867,6 @@ created with the @code{@value{RPREFIX}GLOBAL} option. @page -@ifinfo -@node TASK_DELETE - Delete a task, TASK_SUSPEND - Suspend a task, TASK_RESTART - Restart a task, Task Manager Directives -@end ifinfo @subsection TASK_DELETE - Delete a task @subheading CALLING SEQUENCE: @@ -1068,9 +923,6 @@ created with the @code{@value{RPREFIX}GLOBAL} option. @page -@ifinfo -@node TASK_SUSPEND - Suspend a task, TASK_RESUME - Resume a task, TASK_DELETE - Delete a task, Task Manager Directives -@end ifinfo @subsection TASK_SUSPEND - Suspend a task @subheading CALLING SEQUENCE: @@ -1119,9 +971,6 @@ If the task specified by id is already suspended, then the @page -@ifinfo -@node TASK_RESUME - Resume a task, TASK_SET_PRIORITY - Set task priority, TASK_SUSPEND - Suspend a task, Task Manager Directives -@end ifinfo @subsection TASK_RESUME - Resume a task @subheading CALLING SEQUENCE: @@ -1167,9 +1016,6 @@ If the task specified by id is not suspended, then the @page -@ifinfo -@node TASK_SET_PRIORITY - Set task priority, TASK_MODE - Change current task's mode, TASK_RESUME - Resume a task, Task Manager Directives -@end ifinfo @subsection TASK_SET_PRIORITY - Set task priority @subheading CALLING SEQUENCE: @@ -1231,9 +1077,6 @@ binary semaphores. @page -@ifinfo -@node TASK_MODE - Change current task's mode, TASK_GET_NOTE - Get task notepad entry, TASK_SET_PRIORITY - Set task priority, Task Manager Directives -@end ifinfo @subsection TASK_MODE - Change current task's mode @subheading CALLING SEQUENCE: @@ -1388,9 +1231,6 @@ mask constant is provided in the following table: @page -@ifinfo -@node TASK_GET_NOTE - Get task notepad entry, TASK_SET_NOTE - Set task notepad entry, TASK_MODE - Change current task's mode, Task Manager Directives -@end ifinfo @subsection TASK_GET_NOTE - Get task notepad entry @subheading CALLING SEQUENCE: @@ -1443,9 +1283,6 @@ the notepad entry of the specified task. @page -@ifinfo -@node TASK_SET_NOTE - Set task notepad entry, TASK_WAKE_AFTER - Wake up after interval, TASK_GET_NOTE - Get task notepad entry, Task Manager Directives -@end ifinfo @subsection TASK_SET_NOTE - Set task notepad entry @subheading CALLING SEQUENCE: @@ -1498,9 +1335,6 @@ node to set the specified notepad entry. @page -@ifinfo -@node TASK_WAKE_AFTER - Wake up after interval, TASK_WAKE_WHEN - Wake up when specified, TASK_SET_NOTE - Set task notepad entry, Task Manager Directives -@end ifinfo @subsection TASK_WAKE_AFTER - Wake up after interval @subheading CALLING SEQUENCE: @@ -1545,9 +1379,6 @@ A clock tick is required to support the functionality of this directive. @page -@ifinfo -@node TASK_WAKE_WHEN - Wake up when specified, Interrupt Manager, TASK_WAKE_AFTER - Wake up after interval, Task Manager Directives -@end ifinfo @subsection TASK_WAKE_WHEN - Wake up when specified @subheading CALLING SEQUENCE: diff --git a/doc/user/timer.t b/doc/user/timer.t index bdfb6d1801..ef28df6b09 100644 --- a/doc/user/timer.t +++ b/doc/user/timer.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node Timer Manager, Timer Manager Introduction, CLOCK_TICK - Announce a clock tick, Top -@end ifinfo @chapter Timer Manager -@ifinfo -@menu -* Timer Manager Introduction:: -* Timer Manager Background:: -* Timer Manager Operations:: -* Timer Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node Timer Manager Introduction, Timer Manager Background, Timer Manager, Timer Manager -@end ifinfo + @section Introduction The timer manager provides support for timer @@ -38,28 +24,12 @@ facilities. The directives provided by the timer manager are: @end itemize -@ifinfo -@node Timer Manager Background, Timer Manager Required Support, Timer Manager Introduction, Timer Manager -@end ifinfo @section Background -@ifinfo -@menu -* Timer Manager Required Support:: -* Timers:: -* Timer Service Routines:: -@end menu -@end ifinfo - -@ifinfo -@node Timer Manager Required Support, Timers, Timer Manager Background, Timer Manager Background -@end ifinfo + @subsection Required Support A clock tick is required to support the functionality provided by this manager. -@ifinfo -@node Timers, Timer Service Routines, Timer Manager Required Support, Timer Manager Background -@end ifinfo @subsection Timers A timer is an RTEMS object which allows the @@ -80,9 +50,6 @@ timer service routine will fire to indicate that the application has failed to reach a reset point. This use of a timer is sometimes referred to as a "keep alive" or a "deadman" timer. -@ifinfo -@node Timer Service Routines, Timer Manager Operations, Timers, Timer Manager Background -@end ifinfo @subsection Timer Service Routines The timer service routine should adhere to @value{LANGUAGE} calling @@ -111,25 +78,8 @@ of the timer which is being fired and user_data is a pointer to user-defined information which may be utilized by the timer service routine. The argument user_data may be NULL. -@ifinfo -@node Timer Manager Operations, Creating a Timer, Timer Service Routines, Timer Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating a Timer:: -* Obtaining Timer IDs:: -* Initiating an Interval Timer:: -* Initiating a Time of Day Timer:: -* Canceling a Timer:: -* Resetting a Timer:: -* Deleting a Timer:: -@end menu -@end ifinfo - -@ifinfo -@node Creating a Timer, Obtaining Timer IDs, Timer Manager Operations, Timer Manager Operations -@end ifinfo + @subsection Creating a Timer The @code{@value{DIRPREFIX}timer_create} directive creates a timer by @@ -138,9 +88,6 @@ user-specified name, and assigning it a timer ID. Newly created timers do not have a timer service routine associated with them and are not active. -@ifinfo -@node Obtaining Timer IDs, Initiating an Interval Timer, Creating a Timer, Timer Manager Operations -@end ifinfo @subsection Obtaining Timer IDs When a timer is created, RTEMS generates a unique @@ -153,9 +100,6 @@ Second, the timer ID may be obtained later using the @code{@value{DIRPREFIX}timer_ident} directive. The timer ID is used by other directives to manipulate this timer. -@ifinfo -@node Initiating an Interval Timer, Initiating a Time of Day Timer, Obtaining Timer IDs, Timer Manager Operations -@end ifinfo @subsection Initiating an Interval Timer The @code{@value{DIRPREFIX}timer_fire_after} directive initiates a timer to @@ -164,9 +108,6 @@ number of clock ticks have elapsed. When the interval has elapsed, the timer service routine will be invoked from the @code{@value{DIRPREFIX}clock_tick} directive. -@ifinfo -@node Initiating a Time of Day Timer, Canceling a Timer, Initiating an Interval Timer, Timer Manager Operations -@end ifinfo @subsection Initiating a Time of Day Timer The @code{@value{DIRPREFIX}timer_fire_when} directive initiates a timer to @@ -175,9 +116,6 @@ time of day has been reached. When the interval has elapsed, the timer service routine will be invoked from the @code{@value{DIRPREFIX}clock_tick} directive. -@ifinfo -@node Canceling a Timer, Resetting a Timer, Initiating a Time of Day Timer, Timer Manager Operations -@end ifinfo @subsection Canceling a Timer The @code{@value{DIRPREFIX}timer_cancel} directive is used to halt the @@ -187,9 +125,6 @@ reinitiated using the @code{@value{DIRPREFIX}timer_reset}, @code{@value{DIRPREFIX}timer_fire_after}, and @code{@value{DIRPREFIX}timer_fire_when} directives. -@ifinfo -@node Resetting a Timer, Deleting a Timer, Canceling a Timer, Timer Manager Operations -@end ifinfo @subsection Resetting a Timer The @code{@value{DIRPREFIX}timer_reset} directive is used to restore an @@ -201,9 +136,6 @@ was by a @code{@value{DIRPREFIX}timer_fire_when} directive, then an error is returned. The timer service routine is not changed or fired by this directive. -@ifinfo -@node Deleting a Timer, Timer Manager Directives, Resetting a Timer, Timer Manager Operations -@end ifinfo @subsection Deleting a Timer The @code{@value{DIRPREFIX}timer_delete} directive is used to delete a timer. @@ -213,21 +145,7 @@ to the TMCB free list when it is deleted. A timer can be deleted by a task other than the task which created the timer. Any subsequent references to the timer's name and ID are invalid. -@ifinfo -@node Timer Manager Directives, TIMER_CREATE - Create a timer, Deleting a Timer, Timer Manager -@end ifinfo @section Directives -@ifinfo -@menu -* TIMER_CREATE - Create a timer:: -* TIMER_IDENT - Get ID of a timer:: -* TIMER_CANCEL - Cancel a timer:: -* TIMER_DELETE - Delete a timer:: -* TIMER_FIRE_AFTER - Fire timer after interval:: -* TIMER_FIRE_WHEN - Fire timer when specified:: -* TIMER_RESET - Reset an interval timer:: -@end menu -@end ifinfo This section details the timer manager's directives. A subsection is dedicated to each of this manager's directives @@ -235,9 +153,6 @@ and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node TIMER_CREATE - Create a timer, TIMER_IDENT - Get ID of a timer, Timer Manager Directives, Timer Manager Directives -@end ifinfo @subsection TIMER_CREATE - Create a timer @subheading CALLING SEQUENCE: @@ -280,9 +195,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node TIMER_IDENT - Get ID of a timer, TIMER_CANCEL - Cancel a timer, TIMER_CREATE - Create a timer, Timer Manager Directives -@end ifinfo @subsection TIMER_IDENT - Get ID of a timer @subheading CALLING SEQUENCE: @@ -325,9 +237,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node TIMER_CANCEL - Cancel a timer, TIMER_DELETE - Delete a timer, TIMER_IDENT - Get ID of a timer, Timer Manager Directives -@end ifinfo @subsection TIMER_CANCEL - Cancel a timer @subheading CALLING SEQUENCE: @@ -365,9 +274,6 @@ be reinitiated by the next invocation of @code{@value{DIRPREFIX}timer_reset}, This directive will not cause the running task to be preempted. @page -@ifinfo -@node TIMER_DELETE - Delete a timer, TIMER_FIRE_AFTER - Fire timer after interval, TIMER_CANCEL - Cancel a timer, Timer Manager Directives -@end ifinfo @subsection TIMER_DELETE - Delete a timer @subheading CALLING SEQUENCE: @@ -408,9 +314,6 @@ A timer can be deleted by a task other than the task which created the timer. @page -@ifinfo -@node TIMER_FIRE_AFTER - Fire timer after interval, TIMER_FIRE_WHEN - Fire timer when specified, TIMER_DELETE - Delete a timer, Timer Manager Directives -@end ifinfo @subsection TIMER_FIRE_AFTER - Fire timer after interval @subheading CALLING SEQUENCE: @@ -458,9 +361,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node TIMER_FIRE_WHEN - Fire timer when specified, TIMER_RESET - Reset an interval timer, TIMER_FIRE_AFTER - Fire timer after interval, Timer Manager Directives -@end ifinfo @subsection TIMER_FIRE_WHEN - Fire timer when specified @subheading CALLING SEQUENCE: @@ -509,9 +409,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node TIMER_RESET - Reset an interval timer, Semaphore Manager, TIMER_FIRE_WHEN - Fire timer when specified, Timer Manager Directives -@end ifinfo @subsection TIMER_RESET - Reset an interval timer @subheading CALLING SEQUENCE: diff --git a/doc/user/userext.t b/doc/user/userext.t index 99cda16c10..20cc4566bd 100644 --- a/doc/user/userext.t +++ b/doc/user/userext.t @@ -6,22 +6,8 @@ @c $Id$ @c -@ifinfo -@node User Extensions Manager, User Extensions Manager Introduction, Heterogeneous Systems, Top -@end ifinfo @chapter User Extensions Manager -@ifinfo -@menu -* User Extensions Manager Introduction:: -* User Extensions Manager Background:: -* User Extensions Manager Operations:: -* User Extensions Manager Directives:: -@end menu -@end ifinfo - -@ifinfo -@node User Extensions Manager Introduction, User Extensions Manager Background, User Extensions Manager, User Extensions Manager -@end ifinfo + @section Introduction The RTEMS User Extensions Manager allows the @@ -36,27 +22,7 @@ manager are: @item @code{@value{DIRPREFIX}extension_delete} - Delete an extension set @end itemize -@ifinfo -@node User Extensions Manager Background, Extension Sets, User Extensions Manager Introduction, User Extensions Manager -@end ifinfo @section Background -@ifinfo -@menu -* Extension Sets:: -* TCB Extension Area:: -* Extensions:: -* TASK_CREATE Extension:: -* TASK_START Extension:: -* TASK_RESTART Extension:: -* TASK_DELETE Extension:: -* TASK_SWITCH Extension:: -* TASK_POST_SWITCH Extension:: -* TASK_BEGIN Extension:: -* TASK_EXITTED Extension:: -* FATAL Error Extension:: -* Order of Invocation:: -@end menu -@end ifinfo User extension routines are invoked when the following system events occur: @@ -76,9 +42,6 @@ following system events occur: These extensions are invoked as a function with arguments that are appropriate to the system event. -@ifinfo -@node Extension Sets, TCB Extension Area, User Extensions Manager Background, User Extensions Manager Background -@end ifinfo @subsection Extension Sets An extension set is defined as a set of routines @@ -154,9 +117,6 @@ independently of the others. All user extensions are optional and RTEMS places no naming restrictions on the user. -@ifinfo -@node TCB Extension Area, Extensions, Extension Sets, User Extensions Manager Background -@end ifinfo @subsection TCB Extension Area RTEMS provides for a pointer to a user-defined data @@ -193,9 +153,6 @@ could create a partition of fixed size TCB extension buffers and use the partition manager's allocation and deallocation directives to obtain and release the extension buffers. -@ifinfo -@node Extensions, TASK_CREATE Extension, TCB Extension Area, User Extensions Manager Background -@end ifinfo @subsection Extensions The sections that follow will contain a description @@ -207,9 +164,6 @@ its arguments are all defined by the user. The names used in the examples were arbitrarily chosen and impose no naming conventions on the user. -@ifinfo -@node TASK_CREATE Extension, TASK_START Extension, Extensions, User Extensions Manager Background -@end ifinfo @subsection TASK_CREATE Extension The TASK_CREATE extension directly corresponds to the @@ -244,9 +198,6 @@ invoked from the task_create directive after new_task has been completely initialized, but before it is placed on a ready TCB chain. -@ifinfo -@node TASK_START Extension, TASK_RESTART Extension, TASK_CREATE Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_START Extension The TASK_START extension directly corresponds to the @@ -281,9 +232,6 @@ extension is invoked from the task_start directive after started_task has been made ready to start execution, but before it is placed on a ready TCB chain. -@ifinfo -@node TASK_RESTART Extension, TASK_DELETE Extension, TASK_START Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_RESTART Extension The TASK_RESTART extension directly corresponds to @@ -317,9 +265,6 @@ invoked from the task_restart directive after restarted_task has been made ready to start execution, but before it is placed on a ready TCB chain. -@ifinfo -@node TASK_DELETE Extension, TASK_SWITCH Extension, TASK_RESTART Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_DELETE Extension The TASK_DELETE extension is associated with the @@ -356,9 +301,6 @@ including the TCB have been returned to their respective free pools. This extension should not call any RTEMS directives if a task is deleting itself (current_task is equal to deleted_task). -@ifinfo -@node TASK_SWITCH Extension, TASK_POST_SWITCH Extension, TASK_DELETE Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_SWITCH Extension The TASK_SWITCH extension corresponds to a task @@ -394,9 +336,6 @@ context has been saved, but before the heir_task context has been restored. This extension should not call any RTEMS directives. -@ifinfo -@node TASK_POST_SWITCH Extension, TASK_BEGIN Extension, TASK_SWITCH Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_POST_SWITCH Extension The TASK_POST_SWITCH extension corresponds to a task @@ -429,9 +368,6 @@ invoked from RTEMS' dispatcher routine after the current_task context has been restored and the extension runs in the context of the current_task. -@ifinfo -@node TASK_BEGIN Extension, TASK_EXITTED Extension, TASK_POST_SWITCH Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_BEGIN Extension The TASK_BEGIN extension is invoked when a task @@ -463,9 +399,6 @@ task while the TASK_START extension is executed in the context of the task performing the task_start directive. For most extensions, this is not a critical distinction. -@ifinfo -@node TASK_EXITTED Extension, FATAL Error Extension, TASK_BEGIN Extension, User Extensions Manager Background -@end ifinfo @subsection TASK_EXITTED Extension The TASK_EXITTED extension is invoked when a task @@ -503,9 +436,6 @@ fatal_error_occurred with the @code{@value{RPREFIX}TASK_EXITTED} directive statu @lowersections -@ifinfo -@node FATAL Error Extension, Order of Invocation, TASK_EXITTED Extension, User Extensions Manager Background -@end ifinfo @subsection FATAL Error Extension The FATAL error extension is associated with the @@ -544,9 +474,6 @@ This extension should not call any RTEMS directives. @raisesections -@ifinfo -@node Order of Invocation, User Extensions Manager Operations, FATAL Error Extension, User Extensions Manager Background -@end ifinfo @subsection Order of Invocation When one of the critical system events occur, the @@ -591,21 +518,8 @@ the Standard C Library will operate correctly even if they utilize the C Library because the C Library's TASK_DELETE extension is invoked after that of the other extensions. -@ifinfo -@node User Extensions Manager Operations, Creating an Extension Set, Order of Invocation, User Extensions Manager -@end ifinfo @section Operations -@ifinfo -@menu -* Creating an Extension Set:: -* Obtaining Extension Set IDs:: -* Deleting an Extension Set:: -@end menu -@end ifinfo - -@ifinfo -@node Creating an Extension Set, Obtaining Extension Set IDs, User Extensions Manager Operations, User Extensions Manager Operations -@end ifinfo + @subsection Creating an Extension Set The @code{@value{DIRPREFIX}extension_create} directive creates and installs @@ -615,9 +529,6 @@ assigning it an extension set ID. Newly created extension sets are immediately installed and are invoked upon the next system even supporting an extension. -@ifinfo -@node Obtaining Extension Set IDs, Deleting an Extension Set, Creating an Extension Set, User Extensions Manager Operations -@end ifinfo @subsection Obtaining Extension Set IDs When an extension set is created, RTEMS generates a @@ -631,9 +542,6 @@ be obtained later using the @code{@value{DIRPREFIX}extension_ident} directive. The extension set ID is used by other directives to manipulate this extension set. -@ifinfo -@node Deleting an Extension Set, User Extensions Manager Directives, Obtaining Extension Set IDs, User Extensions Manager Operations -@end ifinfo @subsection Deleting an Extension Set The @code{@value{DIRPREFIX}extension_delete} directive is used to delete an @@ -643,17 +551,7 @@ deleted by a task other than the task which created the extension set. Any subsequent references to the extension's name and ID are invalid. -@ifinfo -@node User Extensions Manager Directives, EXTENSION_CREATE - Create a extension set, Deleting an Extension Set, User Extensions Manager -@end ifinfo @section Directives -@ifinfo -@menu -* EXTENSION_CREATE - Create a extension set:: -* EXTENSION_IDENT - Get ID of a extension set:: -* EXTENSION_DELETE - Delete a extension set:: -@end menu -@end ifinfo This section details the user extension manager's directives. A subsection is dedicated to each of this manager's @@ -661,9 +559,6 @@ directives and describes the calling sequence, related constants, usage, and status codes. @page -@ifinfo -@node EXTENSION_CREATE - Create a extension set, EXTENSION_IDENT - Get ID of a extension set, User Extensions Manager Directives, User Extensions Manager Directives -@end ifinfo @subsection EXTENSION_CREATE - Create a extension set @subheading CALLING SEQUENCE: @@ -709,9 +604,6 @@ This directive will not cause the calling task to be preempted. @page -@ifinfo -@node EXTENSION_IDENT - Get ID of a extension set, EXTENSION_DELETE - Delete a extension set, EXTENSION_CREATE - Create a extension set, User Extensions Manager Directives -@end ifinfo @subsection EXTENSION_IDENT - Get ID of a extension set @subheading CALLING SEQUENCE: @@ -755,9 +647,6 @@ This directive will not cause the running task to be preempted. @page -@ifinfo -@node EXTENSION_DELETE - Delete a extension set, Configuring a System, EXTENSION_IDENT - Get ID of a extension set, User Extensions Manager Directives -@end ifinfo @subsection EXTENSION_DELETE - Delete a extension set @subheading CALLING SEQUENCE: -- cgit v1.2.3