summaryrefslogtreecommitdiffstats
path: root/doc/supplements
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-13 21:17:35 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-08-13 21:17:35 +0000
commitabb3c7557ef70796d6de1dac47b6f9a120103506 (patch)
tree9b9ff6a7ca56a0b4393b697a532f143434a2777d /doc/supplements
parentAdded text to clarify the queueing of multiple events. (diff)
downloadrtems-abb3c7557ef70796d6de1dac47b6f9a120103506.tar.bz2
Added DMV177 times files and made this all regenerate with two timing
chapters.
Diffstat (limited to 'doc/supplements')
-rw-r--r--doc/supplements/powerpc/Makefile20
-rw-r--r--doc/supplements/powerpc/PSIM_TIMES1
-rw-r--r--doc/supplements/powerpc/memmodel.t4
-rw-r--r--doc/supplements/powerpc/memmodel.texi4
-rw-r--r--doc/supplements/powerpc/powerpc.texi6
-rw-r--r--doc/supplements/powerpc/timeDMV177.t139
-rw-r--r--doc/supplements/powerpc/timePSIM.t50
-rw-r--r--doc/supplements/powerpc/timedata.t50
-rw-r--r--doc/supplements/powerpc/timedatadmv177.t139
-rw-r--r--doc/supplements/powerpc/timetbldmv177.t1372
10 files changed, 1726 insertions, 59 deletions
diff --git a/doc/supplements/powerpc/Makefile b/doc/supplements/powerpc/Makefile
index ae64c38c73..f59b5b634a 100644
--- a/doc/supplements/powerpc/Makefile
+++ b/doc/supplements/powerpc/Makefile
@@ -23,7 +23,8 @@ COMMON_FILES=../../common/cpright.texi ../../common/setup.texi \
FILES= $(PROJECT).texi \
bsp.texi callconv.texi cpumodel.texi cputable.texi fatalerr.texi \
- intr.texi memmodel.texi preface.texi timetbl.texi timedata.texi wksheets.texi
+ intr.texi memmodel.texi preface.texi timetbl.texi timedata.texi \
+ timedatadmv177.texi timetbldmv177.texi wksheets.texi
INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*)
@@ -50,9 +51,13 @@ intr.texi: intr.t PSIM_TIMES
mv intr.t.fixed intr.texi
timetbl.t: ../../common/timetbl.t
- sed -e 's/TIMETABLE_NEXT_LINK/Command and Variable Index/' \
+ sed -e 's/TIMETABLE_NEXT_LINK/DMV177 Timing Data/' \
<../../common/timetbl.t >timetbl.t
+timetbldmv177.t: ../../common/timetbl.t
+ sed -e 's/TIMETABLE_NEXT_LINK/Command and Variable Index/' \
+ <../../common/timetbl.t >timetbldmv177.t
+
timetbl.texi: timetbl.t PSIM_TIMES
${REPLACE} -p PSIM_TIMES timetbl.t
mv timetbl.t.fixed timetbl.texi
@@ -61,9 +66,17 @@ timedata.texi: timedata.t PSIM_TIMES
${REPLACE} -p PSIM_TIMES timedata.t
mv timedata.t.fixed timedata.texi
+timetbldmv177.texi: timetbldmv177.t DMV177_TIMES
+ ${REPLACE} -p DMV177_TIMES timetbldmv177.t
+ mv timetbldmv177.t.fixed timetbldmv177.texi
+
+timedatadmv177.texi: timedatadmv177.t DMV177_TIMES
+ ${REPLACE} -p DMV177_TIMES timedatadmv177.t
+ mv timedatadmv177.t.fixed timedatadmv177.texi
+
wksheets.t: ../../common/wksheets.t
sed -e 's/WORKSHEETS_PREVIOUS_LINK/Processor Dependent Information Table CPU Dependent Information Table/' \
- -e 's/WORKSHEETS_NEXT_LINK/PPC603e Timing Data/' \
+ -e 's/WORKSHEETS_NEXT_LINK/PSIM Timing Data/' \
<../../common/wksheets.t >wksheets.t
wksheets.texi: wksheets.t PSIM_TIMES
@@ -81,6 +94,7 @@ clean:
rm -f $(PROJECT) $(PROJECT)-*
rm -f c_$(PROJECT) c_$(PROJECT)-*
rm -f timedata.texi timetbl.texi intr.texi wksheets.texi
+ rm -f timedatadmv177.texi timetbldmv177.texi
rm -f timetbl.t wksheets.t
rm -f *.fixed _*
diff --git a/doc/supplements/powerpc/PSIM_TIMES b/doc/supplements/powerpc/PSIM_TIMES
index 0b7608ab44..65ccce1811 100644
--- a/doc/supplements/powerpc/PSIM_TIMES
+++ b/doc/supplements/powerpc/PSIM_TIMES
@@ -7,6 +7,7 @@
#
# CPU Model Information
#
+RTEMS_BSP PSIM
RTEMS_CPU_MODEL PPC603e
#
# Interrupt Latency
diff --git a/doc/supplements/powerpc/memmodel.t b/doc/supplements/powerpc/memmodel.t
index 1e248d478e..2865c75e98 100644
--- a/doc/supplements/powerpc/memmodel.t
+++ b/doc/supplements/powerpc/memmodel.t
@@ -46,8 +46,8 @@ in the Block Address Translation (BAT) to convert these addresses.
Implementations of the PowerPC architecture may be thirty-two or sixty-four bit.
The PowerPC architecture supports a flat thirty-two or sixty-four bit address
space with addresses ranging from 0x00000000 to 0xFFFFFFFF (4
-gigabytes) in thirty-two bit implementations or 0xFFFFFFFFFFFFFFFF
-(XXX) in sixty-four bit implementations. Each address is represented
+gigabytes) in thirty-two bit implementations or to 0xFFFFFFFFFFFFFFFF
+in sixty-four bit implementations. Each address is represented
by either a thirty-two bit or sixty-four bit value and is byte addressable.
The address may be used to reference a single byte, half-word
(2-bytes), word (4 bytes), or in sixty-four bit implementations a
diff --git a/doc/supplements/powerpc/memmodel.texi b/doc/supplements/powerpc/memmodel.texi
index 1e248d478e..2865c75e98 100644
--- a/doc/supplements/powerpc/memmodel.texi
+++ b/doc/supplements/powerpc/memmodel.texi
@@ -46,8 +46,8 @@ in the Block Address Translation (BAT) to convert these addresses.
Implementations of the PowerPC architecture may be thirty-two or sixty-four bit.
The PowerPC architecture supports a flat thirty-two or sixty-four bit address
space with addresses ranging from 0x00000000 to 0xFFFFFFFF (4
-gigabytes) in thirty-two bit implementations or 0xFFFFFFFFFFFFFFFF
-(XXX) in sixty-four bit implementations. Each address is represented
+gigabytes) in thirty-two bit implementations or to 0xFFFFFFFFFFFFFFFF
+in sixty-four bit implementations. Each address is represented
by either a thirty-two bit or sixty-four bit value and is byte addressable.
The address may be used to reference a single byte, half-word
(2-bytes), word (4 bytes), or in sixty-four bit implementations a
diff --git a/doc/supplements/powerpc/powerpc.texi b/doc/supplements/powerpc/powerpc.texi
index 02700bf72c..4e55a9f952 100644
--- a/doc/supplements/powerpc/powerpc.texi
+++ b/doc/supplements/powerpc/powerpc.texi
@@ -73,6 +73,7 @@ END-INFO-DIR-ENTRY
@include wksheets.texi
@include ../../common/timing.texi
@include timedata.texi
+@include timedatadmv177.texi
@ifinfo
@node Top, Preface, (dir), (dir)
@top c_powerpc
@@ -90,7 +91,8 @@ This is the online version of the RTEMS PowerPC Applications Supplement.
* Processor Dependent Information Table::
* Memory Requirements::
* Timing Specification::
-* PPC603e Timing Data::
+* PSIM Timing Data::
+* DMV177 Timing Data::
* Command and Variable Index::
* Concept Index::
@end menu
@@ -101,7 +103,7 @@ This is the online version of the RTEMS PowerPC Applications Supplement.
@c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here
@c
-@node Command and Variable Index, Concept Index, PPC603e Timing Data Rate Monotonic Manager, Top
+@node Command and Variable Index, Concept Index, DMV177 Timing Data Rate Monotonic Manager, Top
@unnumbered Command and Variable Index
There are currently no Command and Variable Index entries.
diff --git a/doc/supplements/powerpc/timeDMV177.t b/doc/supplements/powerpc/timeDMV177.t
new file mode 100644
index 0000000000..c96a1f86e1
--- /dev/null
+++ b/doc/supplements/powerpc/timeDMV177.t
@@ -0,0 +1,139 @@
+@c
+@c COPYRIGHT (c) 1988-1998.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@include ../../common/timemac.texi
+@tex
+\global\advance \smallskipamount by -4pt
+@end tex
+
+@ifinfo
+@node DMV177 Timing Data, DMV177 Timing Data Introduction, PSIM Timing Data Rate Monotonic Manager, Top
+@end ifinfo
+@chapter DMV177 Timing Data
+@ifinfo
+@menu
+* DMV177 Timing Data Introduction::
+* DMV177 Timing Data Hardware Platform::
+* DMV177 Timing Data Interrupt Latency::
+* DMV177 Timing Data Context Switch::
+* DMV177 Timing Data Directive Times::
+* DMV177 Timing Data Task Manager::
+* DMV177 Timing Data Interrupt Manager::
+* DMV177 Timing Data Clock Manager::
+* DMV177 Timing Data Timer Manager::
+* DMV177 Timing Data Semaphore Manager::
+* DMV177 Timing Data Message Manager::
+* DMV177 Timing Data Event Manager::
+* DMV177 Timing Data Signal Manager::
+* DMV177 Timing Data Partition Manager::
+* DMV177 Timing Data Region Manager::
+* DMV177 Timing Data Dual-Ported Memory Manager::
+* DMV177 Timing Data I/O Manager::
+* DMV177 Timing Data Rate Monotonic Manager::
+@end menu
+@end ifinfo
+
+@ifinfo
+@node DMV177 Timing Data Introduction, DMV177 Timing Data Hardware Platform, DMV177 Timing Data, DMV177 Timing Data
+@end ifinfo
+@section Introduction
+
+The timing data for RTEMS on the DMV177 implementation
+of the PowerPC architecture is provided along with the target
+dependent aspects concerning the gathering of the timing data.
+The hardware platform used to gather the times is described to
+give the reader a better understanding of each directive time
+provided. Also, provided is a description of the interrupt
+latency and the context switch times as they pertain to the
+PowerPC version of RTEMS.
+
+@ifinfo
+@node DMV177 Timing Data Hardware Platform, DMV177 Timing Data Interrupt Latency, DMV177 Timing Data Introduction, DMV177 Timing Data
+@end ifinfo
+@section Hardware Platform
+
+All times reported in this chapter were measured using the PowerPC
+Instruction Simulator (PSIM). PSIM simulates a variety of PowerPC
+6xx models with the DMV177 being used as the basis for the measurements
+reported in this chapter.
+
+The PowerPC decrementer register was was used to gather
+all timing information. In real hardware implementations
+of the PowerPC architecture, this register would typically
+count something like CPU cycles or be a function of the clock
+speed. However, wth PSIM each count of the decrementer register
+represents an instruction. Thus all measurements in this
+chapter are reported as the actual number of instructions
+executed. All sources of hardware interrupts were disabled,
+although traps were enabled and the interrupt level of the
+PowerPC allows all interrupts.
+
+@ifinfo
+@node DMV177 Timing Data Interrupt Latency, DMV177 Timing Data Context Switch, DMV177 Timing Data Hardware Platform, DMV177 Timing Data
+@end ifinfo
+@section Interrupt Latency
+
+The maximum period with traps disabled or the
+processor interrupt level set to it's highest value inside RTEMS
+is less than RTEMS_MAXIMUM_DISABLE_PERIOD
+microseconds including the instructions which
+disable and re-enable interrupts. The time required for the
+PowerPC to vector an interrupt and for the RTEMS entry overhead
+before invoking the user's trap handler are a total of
+RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
+microseconds. These combine to yield a worst case interrupt
+latency of less than RTEMS_MAXIMUM_DISABLE_PERIOD +
+RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK microseconds at
+RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz.
+[NOTE: The maximum period with interrupts disabled was last
+determined for Release RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
+
+The maximum period with interrupts disabled within
+RTEMS is hand-timed with some assistance from PSIM. The maximum
+period with interrupts disabled with RTEMS occurs .... XXX
+
+The interrupt vector and entry overhead time was
+generated on the PSIM benchmark platform using the PowerPC's
+decrementer register. This register was programmed to generate
+an interrupt after one countdown.
+
+@ifinfo
+@node DMV177 Timing Data Context Switch, DMV177 Timing Data Directive Times, DMV177 Timing Data Interrupt Latency, DMV177 Timing Data
+@end ifinfo
+@section Context Switch
+
+The RTEMS processor context switch time is XXX
+microseconds on the PSIM benchmark platform when no floating
+point context is saved or restored. Additional execution time
+is required when a TASK_SWITCH user extension is configured.
+The use of the TASK_SWITCH extension is application dependent.
+Thus, its execution time is not considered part of the raw
+context switch time.
+
+Since RTEMS was designed specifically for embedded
+missile applications which are floating point intensive, the
+executive is optimized to avoid unnecessarily saving and
+restoring the state of the numeric coprocessor. The state of
+the numeric coprocessor is only saved when an FLOATING_POINT
+task is dispatched and that task was not the last task to
+utilize the coprocessor. In a system with only one
+FLOATING_POINT task, the state of the numeric coprocessor will
+never be saved or restored. When the first FLOATING_POINT task
+is dispatched, RTEMS does not need to save the current state of
+the numeric coprocessor.
+
+The following table summarizes the context switch
+times for the PSIM benchmark platform:
+
+@include timetbldmv177.texi
+
+@tex
+\global\advance \smallskipamount by 4pt
+@end tex
+
+
diff --git a/doc/supplements/powerpc/timePSIM.t b/doc/supplements/powerpc/timePSIM.t
index 49117410e7..b4c88fda25 100644
--- a/doc/supplements/powerpc/timePSIM.t
+++ b/doc/supplements/powerpc/timePSIM.t
@@ -12,38 +12,38 @@
@end tex
@ifinfo
-@node PPC603e Timing Data, PPC603e Timing Data Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
+@node RTEMS_BSP Timing Data, RTEMS_BSP Timing Data Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
@end ifinfo
-@chapter PPC603e Timing Data
+@chapter RTEMS_BSP Timing Data
@ifinfo
@menu
-* PPC603e Timing Data Introduction::
-* PPC603e Timing Data Hardware Platform::
-* PPC603e Timing Data Interrupt Latency::
-* PPC603e Timing Data Context Switch::
-* PPC603e Timing Data Directive Times::
-* PPC603e Timing Data Task Manager::
-* PPC603e Timing Data Interrupt Manager::
-* PPC603e Timing Data Clock Manager::
-* PPC603e Timing Data Timer Manager::
-* PPC603e Timing Data Semaphore Manager::
-* PPC603e Timing Data Message Manager::
-* PPC603e Timing Data Event Manager::
-* PPC603e Timing Data Signal Manager::
-* PPC603e Timing Data Partition Manager::
-* PPC603e Timing Data Region Manager::
-* PPC603e Timing Data Dual-Ported Memory Manager::
-* PPC603e Timing Data I/O Manager::
-* PPC603e Timing Data Rate Monotonic Manager::
+* RTEMS_BSP Timing Data Introduction::
+* RTEMS_BSP Timing Data Hardware Platform::
+* RTEMS_BSP Timing Data Interrupt Latency::
+* RTEMS_BSP Timing Data Context Switch::
+* RTEMS_BSP Timing Data Directive Times::
+* RTEMS_BSP Timing Data Task Manager::
+* RTEMS_BSP Timing Data Interrupt Manager::
+* RTEMS_BSP Timing Data Clock Manager::
+* RTEMS_BSP Timing Data Timer Manager::
+* RTEMS_BSP Timing Data Semaphore Manager::
+* RTEMS_BSP Timing Data Message Manager::
+* RTEMS_BSP Timing Data Event Manager::
+* RTEMS_BSP Timing Data Signal Manager::
+* RTEMS_BSP Timing Data Partition Manager::
+* RTEMS_BSP Timing Data Region Manager::
+* RTEMS_BSP Timing Data Dual-Ported Memory Manager::
+* RTEMS_BSP Timing Data I/O Manager::
+* RTEMS_BSP Timing Data Rate Monotonic Manager::
@end menu
@end ifinfo
@ifinfo
-@node PPC603e Timing Data Introduction, PPC603e Timing Data Hardware Platform, PPC603e Timing Data, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Introduction, RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data, RTEMS_BSP Timing Data
@end ifinfo
@section Introduction
-The timing data for RTEMS on the PPC603e implementation
+The timing data for RTEMS on the RTEMS_BSP implementation
of the PowerPC architecture is provided along with the target
dependent aspects concerning the gathering of the timing data.
The hardware platform used to gather the times is described to
@@ -53,7 +53,7 @@ latency and the context switch times as they pertain to the
PowerPC version of RTEMS.
@ifinfo
-@node PPC603e Timing Data Hardware Platform, PPC603e Timing Data Interrupt Latency, PPC603e Timing Data Introduction, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data Introduction, RTEMS_BSP Timing Data
@end ifinfo
@section Hardware Platform
@@ -74,7 +74,7 @@ although traps were enabled and the interrupt level of the
PowerPC allows all interrupts.
@ifinfo
-@node PPC603e Timing Data Interrupt Latency, PPC603e Timing Data Context Switch, PPC603e Timing Data Hardware Platform, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data Context Switch, RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data
@end ifinfo
@section Interrupt Latency
@@ -103,7 +103,7 @@ decrementer register. This register was programmed to generate
an interrupt after one countdown.
@ifinfo
-@node PPC603e Timing Data Context Switch, PPC603e Timing Data Directive Times, PPC603e Timing Data Interrupt Latency, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Context Switch, RTEMS_BSP Timing Data Directive Times, RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data
@end ifinfo
@section Context Switch
diff --git a/doc/supplements/powerpc/timedata.t b/doc/supplements/powerpc/timedata.t
index 49117410e7..b4c88fda25 100644
--- a/doc/supplements/powerpc/timedata.t
+++ b/doc/supplements/powerpc/timedata.t
@@ -12,38 +12,38 @@
@end tex
@ifinfo
-@node PPC603e Timing Data, PPC603e Timing Data Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
+@node RTEMS_BSP Timing Data, RTEMS_BSP Timing Data Introduction, Memory Requirements RTEMS RAM Workspace Worksheet, Top
@end ifinfo
-@chapter PPC603e Timing Data
+@chapter RTEMS_BSP Timing Data
@ifinfo
@menu
-* PPC603e Timing Data Introduction::
-* PPC603e Timing Data Hardware Platform::
-* PPC603e Timing Data Interrupt Latency::
-* PPC603e Timing Data Context Switch::
-* PPC603e Timing Data Directive Times::
-* PPC603e Timing Data Task Manager::
-* PPC603e Timing Data Interrupt Manager::
-* PPC603e Timing Data Clock Manager::
-* PPC603e Timing Data Timer Manager::
-* PPC603e Timing Data Semaphore Manager::
-* PPC603e Timing Data Message Manager::
-* PPC603e Timing Data Event Manager::
-* PPC603e Timing Data Signal Manager::
-* PPC603e Timing Data Partition Manager::
-* PPC603e Timing Data Region Manager::
-* PPC603e Timing Data Dual-Ported Memory Manager::
-* PPC603e Timing Data I/O Manager::
-* PPC603e Timing Data Rate Monotonic Manager::
+* RTEMS_BSP Timing Data Introduction::
+* RTEMS_BSP Timing Data Hardware Platform::
+* RTEMS_BSP Timing Data Interrupt Latency::
+* RTEMS_BSP Timing Data Context Switch::
+* RTEMS_BSP Timing Data Directive Times::
+* RTEMS_BSP Timing Data Task Manager::
+* RTEMS_BSP Timing Data Interrupt Manager::
+* RTEMS_BSP Timing Data Clock Manager::
+* RTEMS_BSP Timing Data Timer Manager::
+* RTEMS_BSP Timing Data Semaphore Manager::
+* RTEMS_BSP Timing Data Message Manager::
+* RTEMS_BSP Timing Data Event Manager::
+* RTEMS_BSP Timing Data Signal Manager::
+* RTEMS_BSP Timing Data Partition Manager::
+* RTEMS_BSP Timing Data Region Manager::
+* RTEMS_BSP Timing Data Dual-Ported Memory Manager::
+* RTEMS_BSP Timing Data I/O Manager::
+* RTEMS_BSP Timing Data Rate Monotonic Manager::
@end menu
@end ifinfo
@ifinfo
-@node PPC603e Timing Data Introduction, PPC603e Timing Data Hardware Platform, PPC603e Timing Data, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Introduction, RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data, RTEMS_BSP Timing Data
@end ifinfo
@section Introduction
-The timing data for RTEMS on the PPC603e implementation
+The timing data for RTEMS on the RTEMS_BSP implementation
of the PowerPC architecture is provided along with the target
dependent aspects concerning the gathering of the timing data.
The hardware platform used to gather the times is described to
@@ -53,7 +53,7 @@ latency and the context switch times as they pertain to the
PowerPC version of RTEMS.
@ifinfo
-@node PPC603e Timing Data Hardware Platform, PPC603e Timing Data Interrupt Latency, PPC603e Timing Data Introduction, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data Introduction, RTEMS_BSP Timing Data
@end ifinfo
@section Hardware Platform
@@ -74,7 +74,7 @@ although traps were enabled and the interrupt level of the
PowerPC allows all interrupts.
@ifinfo
-@node PPC603e Timing Data Interrupt Latency, PPC603e Timing Data Context Switch, PPC603e Timing Data Hardware Platform, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data Context Switch, RTEMS_BSP Timing Data Hardware Platform, RTEMS_BSP Timing Data
@end ifinfo
@section Interrupt Latency
@@ -103,7 +103,7 @@ decrementer register. This register was programmed to generate
an interrupt after one countdown.
@ifinfo
-@node PPC603e Timing Data Context Switch, PPC603e Timing Data Directive Times, PPC603e Timing Data Interrupt Latency, PPC603e Timing Data
+@node RTEMS_BSP Timing Data Context Switch, RTEMS_BSP Timing Data Directive Times, RTEMS_BSP Timing Data Interrupt Latency, RTEMS_BSP Timing Data
@end ifinfo
@section Context Switch
diff --git a/doc/supplements/powerpc/timedatadmv177.t b/doc/supplements/powerpc/timedatadmv177.t
new file mode 100644
index 0000000000..c96a1f86e1
--- /dev/null
+++ b/doc/supplements/powerpc/timedatadmv177.t
@@ -0,0 +1,139 @@
+@c
+@c COPYRIGHT (c) 1988-1998.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@include ../../common/timemac.texi
+@tex
+\global\advance \smallskipamount by -4pt
+@end tex
+
+@ifinfo
+@node DMV177 Timing Data, DMV177 Timing Data Introduction, PSIM Timing Data Rate Monotonic Manager, Top
+@end ifinfo
+@chapter DMV177 Timing Data
+@ifinfo
+@menu
+* DMV177 Timing Data Introduction::
+* DMV177 Timing Data Hardware Platform::
+* DMV177 Timing Data Interrupt Latency::
+* DMV177 Timing Data Context Switch::
+* DMV177 Timing Data Directive Times::
+* DMV177 Timing Data Task Manager::
+* DMV177 Timing Data Interrupt Manager::
+* DMV177 Timing Data Clock Manager::
+* DMV177 Timing Data Timer Manager::
+* DMV177 Timing Data Semaphore Manager::
+* DMV177 Timing Data Message Manager::
+* DMV177 Timing Data Event Manager::
+* DMV177 Timing Data Signal Manager::
+* DMV177 Timing Data Partition Manager::
+* DMV177 Timing Data Region Manager::
+* DMV177 Timing Data Dual-Ported Memory Manager::
+* DMV177 Timing Data I/O Manager::
+* DMV177 Timing Data Rate Monotonic Manager::
+@end menu
+@end ifinfo
+
+@ifinfo
+@node DMV177 Timing Data Introduction, DMV177 Timing Data Hardware Platform, DMV177 Timing Data, DMV177 Timing Data
+@end ifinfo
+@section Introduction
+
+The timing data for RTEMS on the DMV177 implementation
+of the PowerPC architecture is provided along with the target
+dependent aspects concerning the gathering of the timing data.
+The hardware platform used to gather the times is described to
+give the reader a better understanding of each directive time
+provided. Also, provided is a description of the interrupt
+latency and the context switch times as they pertain to the
+PowerPC version of RTEMS.
+
+@ifinfo
+@node DMV177 Timing Data Hardware Platform, DMV177 Timing Data Interrupt Latency, DMV177 Timing Data Introduction, DMV177 Timing Data
+@end ifinfo
+@section Hardware Platform
+
+All times reported in this chapter were measured using the PowerPC
+Instruction Simulator (PSIM). PSIM simulates a variety of PowerPC
+6xx models with the DMV177 being used as the basis for the measurements
+reported in this chapter.
+
+The PowerPC decrementer register was was used to gather
+all timing information. In real hardware implementations
+of the PowerPC architecture, this register would typically
+count something like CPU cycles or be a function of the clock
+speed. However, wth PSIM each count of the decrementer register
+represents an instruction. Thus all measurements in this
+chapter are reported as the actual number of instructions
+executed. All sources of hardware interrupts were disabled,
+although traps were enabled and the interrupt level of the
+PowerPC allows all interrupts.
+
+@ifinfo
+@node DMV177 Timing Data Interrupt Latency, DMV177 Timing Data Context Switch, DMV177 Timing Data Hardware Platform, DMV177 Timing Data
+@end ifinfo
+@section Interrupt Latency
+
+The maximum period with traps disabled or the
+processor interrupt level set to it's highest value inside RTEMS
+is less than RTEMS_MAXIMUM_DISABLE_PERIOD
+microseconds including the instructions which
+disable and re-enable interrupts. The time required for the
+PowerPC to vector an interrupt and for the RTEMS entry overhead
+before invoking the user's trap handler are a total of
+RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
+microseconds. These combine to yield a worst case interrupt
+latency of less than RTEMS_MAXIMUM_DISABLE_PERIOD +
+RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK microseconds at
+RTEMS_MAXIMUM_DISABLE_PERIOD_MHZ Mhz.
+[NOTE: The maximum period with interrupts disabled was last
+determined for Release RTEMS_RELEASE_FOR_MAXIMUM_DISABLE_PERIOD.]
+
+The maximum period with interrupts disabled within
+RTEMS is hand-timed with some assistance from PSIM. The maximum
+period with interrupts disabled with RTEMS occurs .... XXX
+
+The interrupt vector and entry overhead time was
+generated on the PSIM benchmark platform using the PowerPC's
+decrementer register. This register was programmed to generate
+an interrupt after one countdown.
+
+@ifinfo
+@node DMV177 Timing Data Context Switch, DMV177 Timing Data Directive Times, DMV177 Timing Data Interrupt Latency, DMV177 Timing Data
+@end ifinfo
+@section Context Switch
+
+The RTEMS processor context switch time is XXX
+microseconds on the PSIM benchmark platform when no floating
+point context is saved or restored. Additional execution time
+is required when a TASK_SWITCH user extension is configured.
+The use of the TASK_SWITCH extension is application dependent.
+Thus, its execution time is not considered part of the raw
+context switch time.
+
+Since RTEMS was designed specifically for embedded
+missile applications which are floating point intensive, the
+executive is optimized to avoid unnecessarily saving and
+restoring the state of the numeric coprocessor. The state of
+the numeric coprocessor is only saved when an FLOATING_POINT
+task is dispatched and that task was not the last task to
+utilize the coprocessor. In a system with only one
+FLOATING_POINT task, the state of the numeric coprocessor will
+never be saved or restored. When the first FLOATING_POINT task
+is dispatched, RTEMS does not need to save the current state of
+the numeric coprocessor.
+
+The following table summarizes the context switch
+times for the PSIM benchmark platform:
+
+@include timetbldmv177.texi
+
+@tex
+\global\advance \smallskipamount by 4pt
+@end tex
+
+
diff --git a/doc/supplements/powerpc/timetbldmv177.t b/doc/supplements/powerpc/timetbldmv177.t
new file mode 100644
index 0000000000..4cceb0b770
--- /dev/null
+++ b/doc/supplements/powerpc/timetbldmv177.t
@@ -0,0 +1,1372 @@
+@c ****** This comment is here to remind you not to edit the timetbl.t
+@c ****** in any directory but common.
+@c
+@c Time Table Template
+@c
+@c COPYRIGHT (c) 1988-1998.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{No Floating Point Contexts}{RTEMS_NO_FP_CONTEXTS}
+\rtemsdirective{Floating Point Contexts}
+\rtemscase{restore first FP task}{RTEMS_RESTORE_1ST_FP_TASK}
+\rtemscase{save initialized, restore initialized}{RTEMS_SAVE_INIT_RESTORE_INIT}
+\rtemscase{save idle, restore initialized}{RTEMS_SAVE_IDLE_RESTORE_INIT}
+\rtemscase{save idle, restore idle}{RTEMS_SAVE_IDLE_RESTORE_IDLE}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+@item No Floating Point Contexts
+@itemize -
+@item only case: RTEMS_NO_FP_CONTEXTS
+@end itemize
+@item Floating Point Contexts
+@itemize -
+@item restore first FP task: RTEMS_RESTORE_1ST_FP_TASK
+@item save initialized, restore initialized: RTEMS_SAVE_INIT_RESTORE_INIT
+@item save idle, restore initialized: RTEMS_SAVE_IDLE_RESTORE_INIT
+@item save idle, restore idle: RTEMS_SAVE_IDLE_RESTORE_INIT
+@end itemize
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>No Floating Point Contexts</STRONG></TD>
+ <TD ALIGN=center>RTEMS_NO_FP_CONTEXTS</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>Floating Point Contexts</TR>
+ <TR><TD ALIGN=left><dd>restore first FP task</TD>
+ <TD ALIGN=center>RTEMS_RESTORE_1ST_FP_TASK</TD>
+ <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD>
+ <TD ALIGN=center>RTEMS_SAVE_INIT_RESTORE_INIT</TD>
+ <TR><TD ALIGN=left><dd>save idle, restore initialized</TD>
+ <TD ALIGN=center>RTEMS_SAVE_IDLE_RESTORE_INIT</TD>
+ <TR><TD ALIGN=left><dd>save idle, restore idle</TD>
+ <TD ALIGN=center>RTEMS_SAVE_IDLE_RESTORE_IDLE</TD>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Directive Times, RTEMS_BSP Timing Data Task Manager, RTEMS_BSP Timing Data Context Switch, RTEMS_BSP Timing Data
+@end ifinfo
+@section Directive Times
+
+This sections is divided into a number of
+subsections, each of which contains a table listing the
+execution times of that manager's directives.
+
+@page
+@ifinfo
+@node RTEMS_BSP Timing Data Task Manager, RTEMS_BSP Timing Data Interrupt Manager, RTEMS_BSP Timing Data Directive Times, RTEMS_BSP Timing Data
+@end ifinfo
+@section Task Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{TASK\_CREATE}{RTEMS_TASK_CREATE_ONLY}
+\rtemsonecase{TASK\_IDENT}{RTEMS_TASK_IDENT_ONLY}
+\rtemsonecase{TASK\_START}{RTEMS_TASK_START_ONLY}
+\rtemsdirective{TASK\_RESTART}
+\rtemscase{calling task}{RTEMS_TASK_RESTART_CALLING_TASK}
+\rtemscase{suspended task -- returns to caller}
+ {RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER}
+\rtemscase{blocked task -- returns to caller}
+ {RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER}
+\rtemscase{ready task -- returns to caller}
+ {RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER}
+\rtemscase{suspended task -- preempts caller}
+ {RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER}
+\rtemscase{blocked task -- preempts caller}
+ {RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER}
+\rtemscase{ready task -- preempts caller}
+ {RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER}
+\rtemsdirective{TASK\_DELETE}
+\rtemscase{calling task}{RTEMS_TASK_DELETE_CALLING_TASK}
+\rtemscase{suspended task}{RTEMS_TASK_DELETE_SUSPENDED_TASK}
+\rtemscase{blocked task}{RTEMS_TASK_DELETE_BLOCKED_TASK}
+\rtemscase{ready task}{RTEMS_TASK_DELETE_READY_TASK}
+\rtemsdirective{TASK\_SUSPEND}
+\rtemscase{calling task}{RTEMS_TASK_SUSPEND_CALLING_TASK}
+\rtemscase{returns to caller}{RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER}
+\rtemsdirective{TASK\_RESUME}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER}
+\rtemsdirective{TASK\_SET\_PRIORITY}
+\rtemscase{obtain current priority}
+ {RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY}
+\rtemscase{returns to caller}{RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER}
+\rtemscase{preempts caller}{RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER}
+\rtemsdirective{TASK\_MODE}
+\rtemscase{obtain current mode}{RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE}
+\rtemscase{no reschedule}{RTEMS_TASK_MODE_NO_RESCHEDULE}
+\rtemscase{reschedule -- returns to caller}
+ {RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER}
+\rtemscase{reschedule -- preempts caller}
+ {RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER}
+\rtemsonecase{TASK\_GET\_NOTE}{RTEMS_TASK_GET_NOTE_ONLY}
+\rtemsonecase{TASK\_SET\_NOTE}{RTEMS_TASK_SET_NOTE_ONLY}
+\rtemsdirective{TASK\_WAKE\_AFTER}
+\rtemscase{yield -- returns to caller}
+ {RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER}
+\rtemscase{yield -- preempts caller}
+ {RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER}
+\rtemsonecase{TASK\_WAKE\_WHEN}{RTEMS_TASK_WAKE_WHEN_ONLY}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item TASK_CREATE
+@itemize -
+@item only case: RTEMS_TASK_CREATE_ONLY
+@end itemize
+
+@item TASK_IDENT
+@itemize -
+@item only case: RTEMS_TASK_IDENT_ONLY
+@end itemize
+
+@item TASK_START
+@itemize -
+@item only case: RTEMS_TASK_START_ONLY
+@end itemize
+
+@item TASK_RESTART
+@itemize -
+@item calling task: RTEMS_TASK_RESTART_CALLING_TASK
+@item suspended task -- returns to caller: RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER
+@item blocked task -- returns to caller: RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER
+@item ready task -- returns to caller: RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER
+@item suspended task -- preempts caller: RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER
+@item blocked task -- preempts caller: RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER
+@item ready task -- preempts caller: RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER
+@end itemize
+
+@item TASK_DELETE
+@itemize -
+@item calling task: RTEMS_TASK_DELETE_CALLING_TASK
+@item suspended task: RTEMS_TASK_DELETE_SUSPENDED_TASK
+@item blocked task: RTEMS_TASK_DELETE_BLOCKED_TASK
+@item ready task: RTEMS_TASK_DELETE_READY_TASK
+@end itemize
+
+@item TASK_SUSPEND
+@itemize -
+@item calling task: RTEMS_TASK_SUSPEND_CALLING_TASK
+@item returns to caller: RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER
+@end itemize
+
+@item TASK_RESUME
+@itemize -
+@item task readied -- returns to caller: RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@item TASK_SET_PRIORITY
+@itemize -
+@item obtain current priority: RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY
+@item returns to caller: RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER
+@item preempts caller: RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER
+@end itemize
+
+@item TASK_MODE
+@itemize -
+@item obtain current mode: RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE
+@item no reschedule: RTEMS_TASK_MODE_NO_RESCHEDULE
+@item reschedule -- returns to caller: RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER
+@item reschedule -- preempts caller: RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER
+@end itemize
+
+@item TASK_GET_NOTE
+@itemize -
+@item only case: RTEMS_TASK_GET_NOTE_ONLY
+@end itemize
+
+@item TASK_SET_NOTE
+@itemize -
+@item only case: RTEMS_TASK_SET_NOTE_ONLY
+@end itemize
+
+@item TASK_WAKE_AFTER
+@itemize -
+@item yield -- returns to caller: RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER
+@item yield -- preempts caller: RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER
+@end itemize
+
+@item TASK_WAKE_WHEN
+@itemize -
+@item only case: RTEMS_TASK_WAKE_WHEN_ONLY
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>TASK_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_START_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_RESTART</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>calling task</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_CALLING_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_SUSPENDED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_BLOCKED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_READY_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_SUSPENDED_PREEMPTS_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_BLOCKED_PREEMPTS_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESTART_READY_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_DELETE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>calling task</TD>
+ <TD ALIGN=center>RTEMS_TASK_DELETE_CALLING_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>suspended task</TD>
+ <TD ALIGN=center>RTEMS_TASK_DELETE_SUSPENDED_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>blocked task</TD>
+ <TD ALIGN=center>RTEMS_TASK_DELETE_BLOCKED_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>ready task</TD>
+ <TD ALIGN=center>RTEMS_TASK_DELETE_READY_TASK</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_SUSPEND</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>calling task</TD>
+ <TD ALIGN=center>RTEMS_TASK_SUSPEND_CALLING_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_SUSPEND_RETURNS_TO_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_RESUME</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESUME_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_RESUME_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_SET_PRIORITY</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>obtain current priority</TD>
+ <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_OBTAIN_CURRENT_PRIORITY</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_SET_PRIORITY_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_MODE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>obtain current mode</TD>
+ <TD ALIGN=center>RTEMS_TASK_MODE_OBTAIN_CURRENT_MODE</TD></TR>
+ <TR><TD ALIGN=left><dd>no reschedule</TD>
+ <TD ALIGN=center>RTEMS_TASK_MODE_NO_RESCHEDULE</TD></TR>
+ <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_MODE_RESCHEDULE_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_MODE_RESCHEDULE_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_GET_NOTE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_SET_NOTE_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TASK_WAKE_AFTER</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>yield -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_WAKE_AFTER_YIELD_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>yield -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_TASK_WAKE_AFTER_YIELD_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TASK_WAKE_WHEN_ONLY</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+@ifinfo
+@node RTEMS_BSP Timing Data Interrupt Manager, RTEMS_BSP Timing Data Clock Manager, RTEMS_BSP Timing Data Task Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Interrupt Manager
+
+It should be noted that the interrupt entry times
+include vectoring the interrupt handler.
+
+@ifset use-tex
+@sp 1
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsdirective{Interrupt Entry Overhead}
+\rtemscase{returns to nested interrupt}{RTEMS_INTR_ENTRY_RETURNS_TO_NESTED}
+\rtemscase{returns to interrupted task}
+ {RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK}
+\rtemscase{returns to preempting task}
+ {RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK}
+\rtemsdirective{Interrupt Exit Overhead}
+\rtemscase{returns to nested interrupt}{RTEMS_INTR_EXIT_RETURNS_TO_NESTED}
+\rtemscase{returns to interrupted task}
+ {RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK}
+\rtemscase{returns to preempting task}
+ {RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item Interrupt Entry Overhead
+@itemize -
+@item returns to nested interrupt: RTEMS_INTR_ENTRY_RETURNS_TO_NESTED
+@item returns to interrupted task: RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK
+@item returns to preempting task: RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK
+@end itemize
+
+@item Interrupt Exit Overhead
+@itemize -
+@item returns to nested interrupt: RTEMS_INTR_EXIT_RETURNS_TO_NESTED
+@item returns to interrupted task: RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK
+@item returns to preempting task: RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>Interrupt Entry Overhead</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>returns to nested interrupt</TD>
+ <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_NESTED</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to interrupted task</TD>
+ <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_INTERRUPTED_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to preempting task</TD>
+ <TD ALIGN=center>RTEMS_INTR_ENTRY_RETURNS_TO_PREEMPTING_TASK</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>Interrupt Exit Overhead</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>returns to nested interrupt</TD>
+ <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_NESTED</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to interrupted task</TD>
+ <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_INTERRUPTED_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to preempting task</TD>
+ <TD ALIGN=center>RTEMS_INTR_EXIT_RETURNS_TO_PREEMPTING_TASK</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+
+@ifinfo
+@node RTEMS_BSP Timing Data Clock Manager, RTEMS_BSP Timing Data Timer Manager, RTEMS_BSP Timing Data Interrupt Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Clock Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{CLOCK\_SET}{RTEMS_CLOCK_SET_ONLY}
+\rtemsonecase{CLOCK\_GET}{RTEMS_CLOCK_GET_ONLY}
+\rtemsonecase{CLOCK\_TICK}{RTEMS_CLOCK_TICK_ONLY}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item CLOCK_SET
+@itemize -
+@item only case: RTEMS_CLOCK_SET_ONLY
+@end itemize
+
+@item CLOCK_GET
+@itemize -
+@item only case: RTEMS_CLOCK_GET_ONLY
+@end itemize
+
+@item CLOCK_TICK
+@itemize -
+@item only case: RTEMS_CLOCK_TICK_ONLY
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>CLOCK_SET</STRONG></TD>
+ <TD ALIGN=center>RTEMS_CLOCK_SET_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD>
+ <TD ALIGN=center>RTEMS_CLOCK_GET_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD>
+ <TD ALIGN=center>RTEMS_CLOCK_TICK_ONLY</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Timer Manager, RTEMS_BSP Timing Data Semaphore Manager, RTEMS_BSP Timing Data Clock Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Timer Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{TIMER\_CREATE}{RTEMS_TIMER_CREATE_ONLY}
+\rtemsonecase{TIMER\_IDENT}{RTEMS_TIMER_IDENT_ONLY}
+\rtemsdirective{TIMER\_DELETE}
+\rtemscase{inactive}{RTEMS_TIMER_DELETE_INACTIVE}
+\rtemscase{active}{RTEMS_TIMER_DELETE_ACTIVE}
+\rtemsdirective{TIMER\_FIRE\_AFTER}
+\rtemscase{inactive}{RTEMS_TIMER_FIRE_AFTER_INACTIVE}
+\rtemscase{active}{RTEMS_TIMER_FIRE_AFTER_ACTIVE}
+\rtemsdirective{TIMER\_FIRE\_WHEN}
+\rtemscase{inactive}{RTEMS_TIMER_FIRE_WHEN_INACTIVE}
+\rtemscase{active}{RTEMS_TIMER_FIRE_WHEN_ACTIVE}
+\rtemsdirective{TIMER\_RESET}
+\rtemscase{inactive}{RTEMS_TIMER_RESET_INACTIVE}
+\rtemscase{active}{RTEMS_TIMER_RESET_ACTIVE}
+\rtemsdirective{TIMER\_CANCEL}
+\rtemscase{inactive}{RTEMS_TIMER_CANCEL_INACTIVE}
+\rtemscase{active}{RTEMS_TIMER_CANCEL_ACTIVE}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item TIMER_CREATE
+@itemize -
+@item only case: RTEMS_TIMER_CREATE_ONLY
+@end itemize
+
+@item TIMER_IDENT
+@itemize -
+@item only case: RTEMS_TIMER_IDENT_ONLY
+@end itemize
+
+@item TIMER_DELETE
+@itemize -
+@item inactive: RTEMS_TIMER_DELETE_INACTIVE
+@item active: RTEMS_TIMER_DELETE_ACTIVE
+@end itemize
+
+@item TIMER_FIRE_AFTER
+@itemize -
+@item inactive: RTEMS_TIMER_FIRE_AFTER_INACTIVE
+@item active: RTEMS_TIMER_FIRE_AFTER_ACTIVE
+@end itemize
+
+@item TIMER_FIRE_WHEN
+@itemize -
+@item inactive: TIMER_FIRE_WHEN_INACTIVE
+@item active: TIMER_FIRE_WHEN_ACTIVE
+@end itemize
+
+@item TIMER_RESET
+@itemize -
+@item inactive: TIMER_RESET_INACTIVE
+@item active: TIMER_RESET_ACTIVE
+@end itemize
+
+@item TIMER_CANCEL
+@itemize -
+@item inactive: TIMER_CANCEL_INACTIVE
+@item active: TIMER_CANCEL_ACTIVE
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>TIMER_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TIMER_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_TIMER_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_TIMER_DELETE_INACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_TIMER_DELETE_ACTIVE</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_FIRE_AFTER</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_TIMER_FIRE_AFTER_INACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_TIMER_FIRE_AFTER_ACTIVE</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_FIRE_WHEN</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_TIMER_FIRE_WHEN_INACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_TIMER_FIRE_WHEN_ACTIVE</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_TIMER_RESET_INACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_TIMER_RESET_ACTIVE</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_TIMER_CANCEL_INACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_TIMER_CANCEL_ACTIVE</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+@ifinfo
+@node RTEMS_BSP Timing Data Semaphore Manager, RTEMS_BSP Timing Data Message Manager, RTEMS_BSP Timing Data Timer Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Semaphore Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{SEMAPHORE\_CREATE}{RTEMS_SEMAPHORE_CREATE_ONLY}
+\rtemsonecase{SEMAPHORE\_IDENT}{RTEMS_SEMAPHORE_IDENT_ONLY}
+\rtemsonecase{SEMAPHORE\_DELETE}{RTEMS_SEMAPHORE_DELETE_ONLY}
+\rtemsdirective{SEMAPHORE\_OBTAIN}
+\rtemscase{available}{RTEMS_SEMAPHORE_OBTAIN_AVAILABLE}
+\rtemscase{not available -- NO\_WAIT}
+ {RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT}
+\rtemscase{not available -- caller blocks}
+ {RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS}
+\rtemsdirective{SEMAPHORE\_RELEASE}
+\rtemscase{no waiting tasks}{RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item SEMAPHORE_CREATE
+@itemize -
+@item only case: RTEMS_SEMAPHORE_CREATE_ONLY
+@end itemize
+
+@item SEMAPHORE_IDENT
+@itemize -
+@item only case: RTEMS_SEMAPHORE_IDENT_ONLY
+@end itemize
+
+@item SEMAPHORE_DELETE
+@itemize -
+@item only case: RTEMS_SEMAPHORE_DELETE_ONLY
+@end itemize
+
+@item SEMAPHORE_OBTAIN
+@itemize -
+@item available: RTEMS_SEMAPHORE_OBTAIN_AVAILABLE
+@item not available -- NO_WAIT: RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT
+@item not available -- caller blocks: RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS
+@end itemize
+
+@item SEMAPHORE_RELEASE
+@itemize -
+@item no waiting tasks: RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS
+@item task readied -- returns to caller: RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>SEMAPHORE_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_DELETE_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>available</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_NO_WAIT</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- caller blocks</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_OBTAIN_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_RELEASE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no waiting tasks</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_NO_WAITING_TASKS</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_RELEASE_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Message Manager, RTEMS_BSP Timing Data Event Manager, RTEMS_BSP Timing Data Semaphore Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Message Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{MESSAGE\_QUEUE\_CREATE}{RTEMS_MESSAGE_QUEUE_CREATE_ONLY}
+\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{RTEMS_MESSAGE_QUEUE_IDENT_ONLY}
+\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{RTEMS_MESSAGE_QUEUE_DELETE_ONLY}
+\rtemsdirective{MESSAGE\_QUEUE\_SEND}
+\rtemscase{no waiting tasks}
+ {RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER}
+\rtemsdirective{MESSAGE\_QUEUE\_URGENT}
+\rtemscase{no waiting tasks}{RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER}
+\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST}
+\rtemscase{no waiting tasks}{RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER}
+\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE}
+\rtemscase{available}{RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE}
+\rtemscase{not available -- NO\_WAIT}
+ {RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT}
+\rtemscase{not available -- caller blocks}
+ {RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS}
+\rtemsdirective{MESSAGE\_QUEUE\_FLUSH}
+\rtemscase{no messages flushed}{RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED}
+\rtemscase{messages flushed}{RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item MESSAGE_QUEUE_CREATE
+@itemize -
+@item only case: RTEMS_MESSAGE_QUEUE_CREATE_ONLY
+@end itemize
+
+@item MESSAGE_QUEUE_IDENT
+@itemize -
+@item only case: RTEMS_MESSAGE_QUEUE_IDENT_ONLY
+@end itemize
+
+@item MESSAGE_QUEUE_DELETE
+@itemize -
+@item only case: RTEMS_MESSAGE_QUEUE_DELETE_ONLY
+@end itemize
+
+@item MESSAGE_QUEUE_SEND
+@itemize -
+@item no waiting tasks: RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS
+@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@item MESSAGE_QUEUE_URGENT
+@itemize -
+@item no waiting tasks: RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS
+@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@item MESSAGE_QUEUE_BROADCAST
+@itemize -
+@item no waiting tasks: RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS
+@item task readied -- returns to caller: RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@item MESSAGE_QUEUE_RECEIVE
+@itemize -
+@item available: RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE
+@item not available -- NO_WAIT: RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT
+@item not available -- caller blocks: RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS
+@end itemize
+
+@item MESSAGE_QUEUE_FLUSH
+@itemize -
+@item no messages flushed: RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED
+@item messages flushed: RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_DELETE_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_SEND</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no waiting tasks</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_NO_WAITING_TASKS</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_SEND_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_URGENT</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no waiting tasks</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_NO_WAITING_TASKS</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_URGENT_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_BROADCAST</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no waiting tasks</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_NO_WAITING_TASKS</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_BROADCAST_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_RECEIVE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>available</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_NO_WAIT</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- caller blocks</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>MESSAGE_QUEUE_FLUSH</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no messages flushed</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_FLUSH_NO_MESSAGES_FLUSHED</TD></TR>
+ <TR><TD ALIGN=left><dd>messages flushed</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_QUEUE_FLUSH_MESSAGES_FLUSHED</TD></TR>
+
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+@ifinfo
+@node RTEMS_BSP Timing Data Event Manager, RTEMS_BSP Timing Data Signal Manager, RTEMS_BSP Timing Data Message Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Event Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsdirective{EVENT\_SEND}
+\rtemscase{no task readied}{RTEMS_EVENT_SEND_NO_TASK_READIED}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER}
+\rtemsdirective{EVENT\_RECEIVE}
+\rtemscase{obtain current events}{RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS}
+\rtemscase{available}{RTEMS_EVENT_RECEIVE_AVAILABLE}
+\rtemscase{not available -- NO\_WAIT}{RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT}
+\rtemscase{not available -- caller blocks}
+ {RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item EVENT_SEND
+@itemize -
+@item no task readied: RTEMS_EVENT_SEND_NO_TASK_READIED
+@item task readied -- returns to caller: RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@item EVENT_RECEIVE
+@itemize -
+@item obtain current events: RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS
+@item available: RTEMS_EVENT_RECEIVE_AVAILABLE
+@item not available -- NO_WAIT: RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT
+@item not available -- caller blocks: RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>EVENT_SEND</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>no task readied</TD>
+ <TD ALIGN=center>RTEMS_EVENT_SEND_NO_TASK_READIED</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>RTEMS_EVENT_SEND_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>RTEMS_EVENT_SEND_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>EVENT_RECEIVE</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>obtain current events</TD>
+ <TD ALIGN=center>RTEMS_EVENT_RECEIVE_OBTAIN_CURRENT_EVENTS</TD></TR>
+ <TR><TD ALIGN=left><dd>available</TD>
+ <TD ALIGN=center>RTEMS_EVENT_RECEIVE_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD>
+ <TD ALIGN=center>RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_NO_WAIT</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- caller blocks</TD>
+ <TD ALIGN=center>RTEMS_EVENT_RECEIVE_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR>
+
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+@ifinfo
+@node RTEMS_BSP Timing Data Signal Manager, RTEMS_BSP Timing Data Partition Manager, RTEMS_BSP Timing Data Event Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Signal Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{SIGNAL\_CATCH}{RTEMS_SIGNAL_CATCH_ONLY}
+\rtemsdirective{SIGNAL\_SEND}
+\rtemscase{returns to caller}{RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER}
+\rtemscase{signal to self}{RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF}
+\rtemsdirective{EXIT ASR OVERHEAD}
+\rtemscase{returns to calling task}
+ {RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK}
+\rtemscase{returns to preempting task}
+ {RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+@item SIGNAL_CATCH
+@itemize -
+@item only case: RTEMS_SIGNAL_CATCH_ONLY
+@end itemize
+
+@item SIGNAL_SEND
+@itemize -
+@item returns to caller: RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER
+@item signal to self: RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF
+@end itemize
+
+@item EXIT ASR OVERHEAD
+@itemize -
+@item returns to calling task: RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK
+@item returns to preempting task: RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>SIGNAL_CATCH</STRONG></TD>
+ <TD ALIGN=center>RTEMS_SIGNAL_CATCH_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>SIGNAL_SEND</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to caller</TD>
+ <TD ALIGN=center>RTEMS_SIGNAL_SEND_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>signal to self</TD>
+ <TD ALIGN=center>RTEMS_SIGNAL_SEND_SIGNAL_TO_SELF</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>EXIT ASR OVERHEAD</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to calling task</TD>
+ <TD ALIGN=center>
+ RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_CALLING_TASK</TD></TR>
+ <TR><TD ALIGN=left><dd>returns to preempting task</TD>
+ <TD ALIGN=center>
+ RTEMS_SIGNAL_EXIT_ASR_OVERHEAD_RETURNS_TO_PREEMPTING_TASK</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Partition Manager, RTEMS_BSP Timing Data Region Manager, RTEMS_BSP Timing Data Signal Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Partition Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{PARTITION\_CREATE}{RTEMS_PARTITION_CREATE_ONLY}
+\rtemsonecase{PARTITION\_IDENT}{RTEMS_PARTITION_IDENT_ONLY}
+\rtemsonecase{PARTITION\_DELETE}{RTEMS_PARTITION_DELETE_ONLY}
+\rtemsdirective{PARTITION\_GET\_BUFFER}
+\rtemscase{available}{RTEMS_PARTITION_GET_BUFFER_AVAILABLE}
+\rtemscase{not available}{RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE}
+\rtemsonecase{PARTITION\_RETURN\_BUFFER}
+ {RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item PARTITION_CREATE
+@itemize -
+@item only case: RTEMS_PARTITION_CREATE_ONLY
+@end itemize
+
+@item PARTITION_IDENT
+@itemize -
+@item only case: RTEMS_PARTITION_IDENT_ONLY
+@end itemize
+
+@item PARTITION_DELETE
+@itemize -
+@item only case: RTEMS_PARTITION_DELETE_ONLY
+@end itemize
+
+@item PARTITION_GET_BUFFER
+@itemize -
+@item available: RTEMS_PARTITION_GET_BUFFER_AVAILABLE
+@item not available: RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE
+@end itemize
+
+@item PARTITION_RETURN_BUFFER
+@itemize -
+@item only case: RTEMS_PARTITION_RETURN_BUFFER_ONLY
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>PARTITION_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PARTITION_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PARTITION_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PARTITION_DELETE_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>PARTITION_GET_BUFFER</STRONG></TD></TR>
+ <TR><TD ALIGN=left><dd>available</TD>
+ <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><dd>not available</TD>
+ <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PARTITION_GET_BUFFER_NOT_AVAILABLE</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+@ifinfo
+@node RTEMS_BSP Timing Data Region Manager, RTEMS_BSP Timing Data Dual-Ported Memory Manager, RTEMS_BSP Timing Data Partition Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Region Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{REGION\_CREATE}{RTEMS_REGION_CREATE_ONLY}
+\rtemsonecase{REGION\_IDENT}{RTEMS_REGION_IDENT_ONLY}
+\rtemsonecase{REGION\_DELETE}{RTEMS_REGION_DELETE_ONLY}
+\rtemsdirective{REGION\_GET\_SEGMENT}
+\rtemscase{available}{RTEMS_REGION_GET_SEGMENT_AVAILABLE}
+\rtemscase{not available -- NO\_WAIT}
+ {RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT}
+\rtemscase{not available -- caller blocks}
+ {RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS}
+\rtemsdirective{REGION\_RETURN\_SEGMENT}
+\rtemscase{no waiting tasks}{RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS}
+\rtemscase{task readied -- returns to caller}
+ {RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER}
+\rtemscase{task readied -- preempts caller}
+ {RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item REGION_CREATE
+@itemize -
+@item only case: RTEMS_REGION_CREATE_ONLY
+@end itemize
+
+@item REGION_IDENT
+@itemize -
+@item only case: RTEMS_REGION_IDENT_ONLY
+@end itemize
+
+@item REGION_DELETE
+@itemize -
+@item only case: RTEMS_REGION_DELETE_ONLY
+@end itemize
+
+@item REGION_GET_SEGMENT
+@itemize -
+@item available: RTEMS_REGION_GET_SEGMENT_AVAILABLE
+@item not available -- NO_WAIT: RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT
+@item not available -- caller blocks: RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS
+@end itemize
+
+@item REGION_RETURN_SEGMENT
+@itemize -
+@item no waiting tasks: RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS
+@item task readied -- returns to caller: RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER
+@item task readied -- preempts caller: RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>REGION_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_REGION_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_REGION_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_REGION_DELETE_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR>
+ <TR><TD ALIGN=left><dd>available</TD>
+ <TD ALIGN=center>RTEMS_REGION_GET_SEGMENT_AVAILABLE</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD>
+ <TD ALIGN=center>
+ RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_NO_WAIT</TD></TR>
+ <TR><TD ALIGN=left><dd>not available -- caller blocks</TD>
+ <TD ALIGN=center>
+ RTEMS_REGION_GET_SEGMENT_NOT_AVAILABLE_CALLER_BLOCKS</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_RETURN_SEGMENT</TD></TR>
+ <TR><TD ALIGN=left><dd>no waiting tasks</TD>
+ <TD ALIGN=center>RTEMS_REGION_RETURN_SEGMENT_NO_WAITING_TASKS</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD>
+ <TD ALIGN=center>
+ RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD>
+ <TD ALIGN=center>
+ RTEMS_REGION_RETURN_SEGMENT_TASK_READIED_PREEMPTS_CALLER</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Dual-Ported Memory Manager, RTEMS_BSP Timing Data I/O Manager, RTEMS_BSP Timing Data Region Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Dual-Ported Memory Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{PORT\_CREATE}{RTEMS_PORT_CREATE_ONLY}
+\rtemsonecase{PORT\_IDENT}{RTEMS_PORT_IDENT_ONLY}
+\rtemsonecase{PORT\_DELETE}{RTEMS_PORT_DELETE_ONLY}
+\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL}
+ {RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY}
+\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL}
+ {RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item PORT_CREATE
+@itemize -
+@item only case: RTEMS_PORT_CREATE_ONLY
+@end itemize
+
+@item PORT_IDENT
+@itemize -
+@item only case: RTEMS_PORT_IDENT_ONLY
+@end itemize
+
+@item PORT_DELETE
+@itemize -
+@item only case: RTEMS_PORT_DELETE_ONLY
+@end itemize
+
+@item PORT_INTERNAL_TO_EXTERNAL
+@itemize -
+@item only case: RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY
+@end itemize
+
+@item PORT_EXTERNAL_TO_INTERNAL
+@itemize -
+@item only case: RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>PORT_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PORT_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PORT_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PORT_DELETE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PORT_INTERNAL_TO_EXTERNAL_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD>
+ <TD ALIGN=center>RTEMS_PORT_EXTERNAL_TO_INTERNAL_ONLY</TD></TR>
+
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data I/O Manager, RTEMS_BSP Timing Data Rate Monotonic Manager, RTEMS_BSP Timing Data Dual-Ported Memory Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section I/O Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{IO\_INITIALIZE}{RTEMS_IO_INITIALIZE_ONLY}
+\rtemsonecase{IO\_OPEN}{RTEMS_IO_OPEN_ONLY}
+\rtemsonecase{IO\_CLOSE}{RTEMS_IO_CLOSE_ONLY}
+\rtemsonecase{IO\_READ}{RTEMS_IO_READ_ONLY}
+\rtemsonecase{IO\_WRITE}{RTEMS_IO_WRITE_ONLY}
+\rtemsonecase{IO\_CONTROL}{RTEMS_IO_CONTROL_ONLY}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item IO_INITIALIZE
+@itemize -
+@item only case: RTEMS_IO_INITIALIZE_ONLY
+@end itemize
+
+@item IO_OPEN
+@itemize -
+@item only case: RTEMS_IO_OPEN_ONLY
+@end itemize
+
+@item IO_CLOSE
+@itemize -
+@item only case: RTEMS_IO_CLOSE_ONLY
+@end itemize
+
+@item IO_READ
+@itemize -
+@item only case: RTEMS_IO_READ_ONLY
+@end itemize
+
+@item IO_WRITE
+@itemize -
+@item only case: RTEMS_IO_WRITE_ONLY
+@end itemize
+
+@item IO_CONTROL
+@itemize -
+@item only case: RTEMS_IO_CONTROL_ONLY
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>IO_INITIALIZE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_INITIALIZE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_OPEN_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_CLOSE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_READ_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_WRITE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD>
+ <TD ALIGN=center>RTEMS_IO_CONTROL_ONLY</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@ifinfo
+@node RTEMS_BSP Timing Data Rate Monotonic Manager, Command and Variable Index, RTEMS_BSP Timing Data I/O Manager, RTEMS_BSP Timing Data
+@end ifinfo
+@section Rate Monotonic Manager
+
+@ifset use-tex
+@tex
+\centerline{\vbox{\offinterlineskip\halign{
+\span\rtemstimetable
+\rtemsonecase{RATE\_MONOTONIC\_CREATE}{RTEMS_RATE_MONOTONIC_CREATE_ONLY}
+\rtemsonecase{RATE\_MONOTONIC\_IDENT}{RTEMS_RATE_MONOTONIC_IDENT_ONLY}
+\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{RTEMS_RATE_MONOTONIC_CANCEL_ONLY}
+\rtemsdirective{RATE\_MONOTONIC\_DELETE}
+\rtemscase{active}{RTEMS_RATE_MONOTONIC_DELETE_ACTIVE}
+\rtemscase{inactive}{RTEMS_RATE_MONOTONIC_DELETE_INACTIVE}
+\rtemsdirective{RATE\_MONOTONIC\_PERIOD}
+\rtemscase{initiate period -- returns to caller}
+ {RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER}
+\rtemscase{conclude period -- caller blocks}
+ {RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS}
+\rtemscase{obtain status}{RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS}
+\rtemsendtimetable
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-ascii
+@ifinfo
+@itemize @bullet
+
+@item RATE_MONOTONIC_CREATE
+@itemize -
+@item only case: RTEMS_RATE_MONOTONIC_CREATE_ONLY
+@end itemize
+
+@item RATE_MONOTONIC_IDENT
+@itemize -
+@item only case: RTEMS_RATE_MONOTONIC_IDENT_ONLY
+@end itemize
+
+@item RATE_MONOTONIC_CANCEL
+@itemize -
+@item only case: RTEMS_RATE_MONOTONIC_CANCEL_ONLY
+@end itemize
+
+@item RATE_MONOTONIC_DELETE
+@itemize -
+@item active: RTEMS_RATE_MONOTONIC_DELETE_ACTIVE
+@item inactive: RTEMS_RATE_MONOTONIC_DELETE_INACTIVE
+@end itemize
+
+@item RATE_MONOTONIC_PERIOD
+@itemize -
+@item initiate period -- returns to caller: RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER
+@item conclude period -- caller blocks: RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS
+@item obtain status: RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS
+@end itemize
+
+@end itemize
+@end ifinfo
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=2 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CREATE</STRONG></TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CREATE_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_IDENT_ONLY</TD></TR>
+<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CANCEL_ONLY</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR>
+ <TR><TD ALIGN=left><dd>active</TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_DELETE_ACTIVE</TD></TR>
+ <TR><TD ALIGN=left><dd>inactive</TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_DELETE_INACTIVE</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_PERIOD</TD></TR>
+ <TR><TD ALIGN=left><dd>initiate period -- returns to caller</TD>
+ <TD ALIGN=center>
+ RTEMS_RATE_MONOTONIC_PERIOD_INITIATE_PERIOD_RETURNS_TO_CALLER</TD></TR>
+ <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD>
+ <TD ALIGN=center>
+ RTEMS_RATE_MONOTONIC_PERIOD_CONCLUDE_PERIOD_CALLER_BLOCKS</TD></TR>
+ <TR><TD ALIGN=left><dd>obtain status</TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_PERIOD_OBTAIN_STATUS</TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@tex
+\global\advance \smallskipamount by 4pt
+@end tex