summaryrefslogtreecommitdiffstats
path: root/doc/common
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1997-05-27 12:40:11 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1997-05-27 12:40:11 +0000
commitae68ff085724dd35d60151bd153e80b8b0776873 (patch)
tree2f1535a0497f5b872a4744ae13c9264b77e89c11 /doc/common
parentThis commit was generated by cvs2svn to compensate for changes in r832, (diff)
downloadrtems-ae68ff085724dd35d60151bd153e80b8b0776873.tar.bz2
Initial revision
Diffstat (limited to 'doc/common')
-rw-r--r--doc/common/cpright.texi42
-rw-r--r--doc/common/missing-arrow.gifbin0 -> 166 bytes
-rw-r--r--doc/common/next-arrow.gifbin0 -> 275 bytes
-rw-r--r--doc/common/oaronly.jpgbin0 -> 1584 bytes
-rw-r--r--doc/common/prev-arrow.gifbin0 -> 279 bytes
-rw-r--r--doc/common/setup.texi69
-rw-r--r--doc/common/timemac.texi34
-rw-r--r--doc/common/timetbl.t1364
-rw-r--r--doc/common/timing.texi457
-rw-r--r--doc/common/up-arrow.gifbin0 -> 264 bytes
-rw-r--r--doc/common/wksheets.t424
11 files changed, 2390 insertions, 0 deletions
diff --git a/doc/common/cpright.texi b/doc/common/cpright.texi
new file mode 100644
index 0000000000..166ac869e1
--- /dev/null
+++ b/doc/common/cpright.texi
@@ -0,0 +1,42 @@
+@c
+@c COPYRIGHT (c) 1996-1997.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+
+@c
+@c The following puts a space somewhere on an otherwise empty page so we
+@c can force the copyright description onto a left hand page.
+@c
+
+@tex
+{\parskip=0pt \hfill On-Line Applications Research Corporation\par \hfill
+\TeX{}info \texinfoversion\par }
+@end tex
+
+@vskip 0pt plus 1filll
+COPYRIGHT @copyright{} 1989 - 1997.@*
+On-Line Applications Research Corporation (OAR).@*
+
+The authors have used their best efforts in preparing
+this material. These efforts include the development, research,
+and testing of the theories and programs to determine their
+effectiveness. No warranty of any kind, expressed or implied,
+with regard to the software or the material contained in this
+document is provided. No liability arising out of the
+application or use of any product described in this document is
+assumed. The authors reserve the right to revise this material
+and to make changes from time to time in the content hereof
+without obligation to notify anyone of such revision or changes.
+
+Any inquiries concerning RTEMS, its related support
+components, or its documentation should be directed to either:
+
+@example
+On-Line Applications Research Corporation
+4910-L Corporate Drive
+Huntsville, AL 35805
+VOICE: (205) 722-9985
+EMAIL: rtems@@OARcorp.com
+@end example
+
diff --git a/doc/common/missing-arrow.gif b/doc/common/missing-arrow.gif
new file mode 100644
index 0000000000..c686c80b5f
--- /dev/null
+++ b/doc/common/missing-arrow.gif
Binary files differ
diff --git a/doc/common/next-arrow.gif b/doc/common/next-arrow.gif
new file mode 100644
index 0000000000..57f5cddb81
--- /dev/null
+++ b/doc/common/next-arrow.gif
Binary files differ
diff --git a/doc/common/oaronly.jpg b/doc/common/oaronly.jpg
new file mode 100644
index 0000000000..c87c151404
--- /dev/null
+++ b/doc/common/oaronly.jpg
Binary files differ
diff --git a/doc/common/prev-arrow.gif b/doc/common/prev-arrow.gif
new file mode 100644
index 0000000000..350785be10
--- /dev/null
+++ b/doc/common/prev-arrow.gif
Binary files differ
diff --git a/doc/common/setup.texi b/doc/common/setup.texi
new file mode 100644
index 0000000000..a82bd0b78d
--- /dev/null
+++ b/doc/common/setup.texi
@@ -0,0 +1,69 @@
+@c
+@c COPYRIGHT (c) 1988-1997.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+
+@c
+@c Set Variables
+@c
+
+@set RTEMS-RELEASE 4.0.0
+
+@c
+@c The following determines which set of the tables and figures we will use.
+@c We default to ASCII but if available TeX or HTML versions will
+@c be used instead.
+@c
+
+@set use-ascii
+@clear use-html
+@clear use-tex
+
+@iftex
+@clear use-ascii
+@clear use-html
+@set use-tex
+@end iftex
+
+@ifhtml
+@clear use-ascii
+@clear use-tex
+@set use-html
+@end ifhtml
+
+@c
+@c The following variable says to use texinfo or html for the two column
+@c texinfo tables. For somethings the format does not look good in html.
+@c With our adjustment to the left column in TeX, it nearly always looks
+@c good printed.
+@c
+@ifset use-ascii
+@set use-texinfo-tables
+@end ifset
+@ifset use-tex
+@set use-texinfo-tables
+@end ifset
+@ifset use-html
+@clear use-texinfo-tables
+@end ifset
+
+@c
+@c Custom whitespace adjustments. We could fiddle a bit more.
+@c
+@tex
+\global\parindent 0in
+\global\chapheadingskip = 15pt plus 4pt minus 2pt
+\global\secheadingskip = 12pt plus 4pt minus 2pt
+\global\subsecheadingskip = 9pt plus 4pt minus 2pt
+\global\hbadness = 10000
+\global\tolerance = 6000
+\global\tableindent = 1.5in
+\global\itemindent = 0.5in
+
+@ifclear smallbook
+\global\parskip 6pt plus 1pt
+@end ifclear
+@end tex
+
+
diff --git a/doc/common/timemac.texi b/doc/common/timemac.texi
new file mode 100644
index 0000000000..9aa340c307
--- /dev/null
+++ b/doc/common/timemac.texi
@@ -0,0 +1,34 @@
+@c
+@c COPYRIGHT (c) 1988-1997.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c
+@c Macros to help with the tables in this file
+@c
+
+@tex
+\global\advance \smallskipamount by -4pt
+
+\global\def\rtemstimetable{
+\vrule\strut##&
+\hbox to 3.0in{\enskip##\hfil}&
+\hbox to 0.75in{\enskip##\hfil}&
+\vrule##\cr
+\noalign{\hrule}
+}
+
+\global\def\rtemsendtimetable{}
+\global\def\rtemsonecase#1#2{
+& \bf #1\hfil& #2 & \cr\noalign{\hrule}
+}
+
+\global\def\rtemsdirective#1{
+& \bf #1 \hfil& & \cr\noalign{\hrule}
+}
+
+\global\def\rtemscase#1#2{
+& \hskip 0.3in #1\hfil& #2 & \cr\noalign{\hrule}
+}
+
+@end tex
diff --git a/doc/common/timetbl.t b/doc/common/timetbl.t
new file mode 100644
index 0000000000..29906011ee
--- /dev/null
+++ b/doc/common/timetbl.t
@@ -0,0 +1,1364 @@
+@c
+@c Time Table Template
+@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_CPU_MODEL Timing Data Directive Times, RTEMS_CPU_MODEL Timing Data Task Manager, RTEMS_CPU_MODEL Timing Data Context Switch, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Task Manager, RTEMS_CPU_MODEL Timing Data Interrupt Manager, RTEMS_CPU_MODEL Timing Data Directive Times, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Interrupt Manager, RTEMS_CPU_MODEL Timing Data Clock Manager, RTEMS_CPU_MODEL Timing Data Task Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Clock Manager, RTEMS_CPU_MODEL Timing Data Timer Manager, RTEMS_CPU_MODEL Timing Data Interrupt Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Timer Manager, RTEMS_CPU_MODEL Timing Data Semaphore Manager, RTEMS_CPU_MODEL Timing Data Clock Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Semaphore Manager, RTEMS_CPU_MODEL Timing Data Message Manager, RTEMS_CPU_MODEL Timing Data Timer Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Message Manager, RTEMS_CPU_MODEL Timing Data Event Manager, RTEMS_CPU_MODEL Timing Data Semaphore Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Event Manager, RTEMS_CPU_MODEL Timing Data Signal Manager, RTEMS_CPU_MODEL Timing Data Message Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Signal Manager, RTEMS_CPU_MODEL Timing Data Partition Manager, RTEMS_CPU_MODEL Timing Data Event Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Partition Manager, RTEMS_CPU_MODEL Timing Data Region Manager, RTEMS_CPU_MODEL Timing Data Signal Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Region Manager, RTEMS_CPU_MODEL Timing Data Dual-Ported Memory Manager, RTEMS_CPU_MODEL Timing Data Partition Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Dual-Ported Memory Manager, RTEMS_CPU_MODEL Timing Data I/O Manager, RTEMS_CPU_MODEL Timing Data Region Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data I/O Manager, RTEMS_CPU_MODEL Timing Data Rate Monotonic Manager, RTEMS_CPU_MODEL Timing Data Dual-Ported Memory Manager, RTEMS_CPU_MODEL 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_CPU_MODEL Timing Data Rate Monotonic Manager, TIMETABLE_NEXT_LINK, RTEMS_CPU_MODEL Timing Data I/O Manager, RTEMS_CPU_MODEL 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
diff --git a/doc/common/timing.texi b/doc/common/timing.texi
new file mode 100644
index 0000000000..2d5b7e35a2
--- /dev/null
+++ b/doc/common/timing.texi
@@ -0,0 +1,457 @@
+@c
+@c COPYRIGHT (c) 1988-1997.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+
+@ifinfo
+@node Timing Specification, Timing Specification Introduction, , Top
+@end ifinfo
+@chapter Timing Specification
+@ifinfo
+@menu
+* Timing Specification Introduction::
+* Timing Specification Philosophy::
+* Timing Specification Methodology::
+@end menu
+@end ifinfo
+
+@ifinfo
+@node Timing Specification Introduction, Timing Specification Philosophy, Timing Specification, Timing Specification
+@end ifinfo
+@section Introduction
+
+This chapter provides information pertaining to the
+measurement of the performance of RTEMS, the methods of
+gathering the timing data, and the usefulness of the data. Also
+discussed are other time critical aspects of RTEMS that affect
+an applications design and ultimate throughput. These aspects
+include determinancy, interrupt latency and context switch times.
+
+@ifinfo
+@node Timing Specification Philosophy, Determinancy, Timing Specification Introduction, Timing Specification
+@end ifinfo
+@section Philosophy
+@ifinfo
+@menu
+* Determinancy::
+* Interrupt Latency::
+* Context Switch Time::
+* Directive Times::
+@end menu
+@end ifinfo
+
+Benchmarks are commonly used to evaluate the
+performance of software and hardware. Benchmarks can be an
+effective tool when comparing systems. Unfortunately,
+benchmarks can also be manipulated to justify virtually any
+claim. Benchmarks of real-time executives are difficult to
+evaluate for a variety of reasons. Executives vary in the
+robustness of features and options provided. Even when
+executives compare favorably in functionality, it is quite
+likely that different methodologies were used to obtain the
+timing data. Another problem is that some executives provide
+times for only a small subset of directives, This is typically
+justified by claiming that these are the only time-critical
+directives. The performance of some executives is also very
+sensitive to the number of objects in the system. To obtain any
+measure of usefulness, the performance information provided for
+an executive should address each of these issues.
+
+When evaluating the performance of a real-time
+executive, one typically considers the following areas:
+determinancy, directive times, worst case interrupt latency, and
+context switch time. Unfortunately, these areas do not have
+standard measurement methodologies. This allows vendors to
+manipulate the results such that their product is favorably
+represented. We have attempted to provide useful and meaningful
+timing information for RTEMS. To insure the usefulness of our
+data, the methodology and definitions used to obtain and
+describe the data are also documented.
+
+@ifinfo
+@node Determinancy, Interrupt Latency, Timing Specification Philosophy, Timing Specification Philosophy
+@end ifinfo
+@subsection Determinancy
+
+The correctness of data in a real-time system must
+always be judged by its timeliness. In many real-time systems,
+obtaining the correct answer does not necessarily solve the
+problem. For example, in a nuclear reactor it is not enough to
+determine that the core is overheating. This situation must be
+detected and acknowledged early enough that corrective action
+can be taken and a meltdown avoided.
+
+Consequently, a system designer must be able to
+predict the worst-case behavior of the application running under
+the selected executive. In this light, it is important that a
+real-time system perform consistently regardless of the number
+of tasks, semaphores, or other resources allocated. An
+important design goal of a real-time executive is that all
+internal algorithms be fixed-cost. Unfortunately, this goal is
+difficult to completely meet without sacrificing the robustness
+of the executive's feature set.
+
+Many executives use the term deterministic to mean
+that the execution times of their services can be predicted.
+However, they often provide formulas to modify execution times
+based upon the number of objects in the system. This usage is
+in sharp contrast to the notion of deterministic meaning fixed
+cost.
+
+Almost all RTEMS directives execute in a fixed amount
+of time regardless of the number of objects present in the
+system. The primary exception occurs when a task blocks while
+acquiring a resource and specifies a non-zero timeout interval.
+
+Other exceptions are message queue broadcast,
+obtaining a variable length memory block, object name to ID
+translation, and deleting a resource upon which tasks are
+waiting. In addition, the time required to service a clock tick
+interrupt is based upon the number of timeouts and other
+"events" which must be processed at that tick. This second
+group is composed primarily of capabilities which are inherently
+non-deterministic but are infrequently used in time critical
+situations. The major exception is that of servicing a clock
+tick. However, most applications have a very small number of
+timeouts which expire at exactly the same millisecond (usually
+none, but occasionally two or three).
+
+@ifinfo
+@node Interrupt Latency, Context Switch Time, Determinancy, Timing Specification Philosophy
+@end ifinfo
+@subsection Interrupt Latency
+
+Interrupt latency is the delay between the CPU's
+receipt of an interrupt request and the execution of the first
+application-specific instruction in an interrupt service
+routine. Interrupts are a critical component of most real-time
+applications and it is critical that they be acted upon as
+quickly as possible.
+
+Knowledge of the worst case interrupt latency of an
+executive aids the application designer in determining the
+maximum period of time between the generation of an interrupt
+and an interrupt handler responding to that interrupt. The
+interrupt latency of an system is the greater of the executive's
+and the applications's interrupt latency. If the application
+disables interrupts longer than the executive, then the
+application's interrupt latency is the system's worst case
+interrupt disable period.
+
+The worst case interrupt latency for a real-time
+executive is based upon the following components:
+
+@itemize @bullet
+@item the longest period of time interrupts are disabled
+by the executive,
+
+@item the overhead required by the executive at the
+beginning of each ISR,
+
+@item the time required for the CPU to vector the
+interrupt, and
+
+@item for some microprocessors, the length of the longest
+instruction.
+@end itemize
+
+The first component is irrelevant if an interrupt
+occurs when interrupts are enabled, although it must be included
+in a worst case analysis. The third and fourth components are
+particular to a CPU implementation and are not dependent on the
+executive. The fourth component is ignored by this document
+because most applications use only a subset of a
+microprocessor's instruction set. Because of this the longest
+instruction actually executed is application dependent. The
+worst case interrupt latency of an executive is typically
+defined as the sum of components (1) and (2). The second
+component includes the time necessry for RTEMS to save registers
+and vector to the user-defined handler. RTEMS includes the
+third component, the time required for the CPU to vector the
+interrupt, because it is a required part of any interrupt.
+
+Many executives report the maximum interrupt disable
+period as their interrupt latency and ignore the other
+components. This results in very low worst-case interrupt
+latency times which are not indicative of actual application
+performance. The definition used by RTEMS results in a higher
+interrupt latency being reported, but accurately reflects the
+longest delay between the CPU's receipt of an interrupt request
+and the execution of the first application-specific instruction
+in an interrupt service routine.
+
+The actual interrupt latency times are reported in
+the Timing Data chapter of this supplement.
+
+@ifinfo
+@node Context Switch Time, Directive Times, Interrupt Latency, Timing Specification Philosophy
+@end ifinfo
+@subsection Context Switch Time
+
+An RTEMS context switch is defined as the act of
+taking the CPU from the currently executing task and giving it
+to another task. This process involves the following components:
+
+@itemize @bullet
+@item Saving the hardware state of the current task.
+
+@item Optionally, invoking the TASK_SWITCH user extension.
+
+@item Restoring the hardware state of the new task.
+@end itemize
+
+RTEMS defines the hardware state of a task to include
+the CPU's data registers, address registers, and, optionally,
+floating point registers.
+
+Context switch time is often touted as a performance
+measure of real-time executives. However, a context switch is
+performed as part of a directive's actions and should be viewed
+as such when designing an application. For example, if a task
+is unable to acquire a semaphore and blocks, a context switch is
+required to transfer control from the blocking task to a new
+task. From the application's perspective, the context switch is
+a direct result of not acquiring the semaphore. In this light,
+the context switch time is no more relevant than the performance
+of any other of the executive's subroutines which are not
+directly accessible by the application.
+
+In spite of the inappropriateness of using the
+context switch time as a performance metric, RTEMS context
+switch times for floating point and non-floating points tasks
+are provided for comparison purposes. Of the executives which
+actually support floating point operations, many do not report
+context switch times for floating point context switch time.
+This results in a reported context switch time which is
+meaningless for an application with floating point tasks.
+
+The actual context switch times are reported in the
+Timing Data chapter of this supplement.
+
+@ifinfo
+@node Directive Times, Timing Specification Methodology, Context Switch Time, Timing Specification Philosophy
+@end ifinfo
+@subsection Directive Times
+
+Directives are the application's interface to the
+executive, and as such their execution times are critical in
+determining the performance of the application. For example, an
+application using a semaphore to protect a critical data
+structure should be aware of the time required to acquire and
+release a semaphore. In addition, the application designer can
+utilize the directive execution times to evaluate the
+performance of different synchronization and communication
+mechanisms.
+
+The actual directive execution times are reported in
+the Timing Data chapter of this supplement.
+
+@ifinfo
+@node Timing Specification Methodology, Software Platform, Directive Times, Timing Specification
+@end ifinfo
+@section Methodology
+@ifinfo
+@menu
+* Software Platform::
+* Hardware Platform::
+* What is measured?::
+* What is not measured?::
+* Terminology::
+@end menu
+@end ifinfo
+
+@ifinfo
+@node Software Platform, Hardware Platform, Timing Specification Methodology, Timing Specification Methodology
+@end ifinfo
+@subsection Software Platform
+
+The RTEMS timing suite is written in C. The overhead
+of passing arguments to RTEMS by C is not timed. The times
+reported represent the amount of time from entering to exiting
+RTEMS.
+
+The tests are based upon one of two execution models:
+(1) single invocation times, and (2) average times of repeated
+invocations. Single invocation times are provided for
+directives which cannot easily be invoked multiple times in the
+same scenario. For example, the times reported for entering and
+exiting an interrupt service routine are single invocation
+times. The second model is used for directives which can easily
+be invoked multiple times in the same scenario. For example,
+the times reported for semaphore obtain and semaphore release
+are averages of multiple invocations. At least 100 invocations
+are used to obtain the average.
+
+@ifinfo
+@node Hardware Platform, What is measured?, Software Platform, Timing Specification Methodology
+@end ifinfo
+@subsection Hardware Platform
+
+Since RTEMS supports a variety of processors, the
+hardware platform used to gather the benchmark times must also
+vary. Therefore, for each processor supported the hardware
+platform must be defined. Each definition will include a brief
+description of the target hardware platform including the clock
+speed, memory wait states encountered, and any other pertinent
+information. This definition may be found in the processor
+dependent timing data chapter within this supplement.
+
+@ifinfo
+@node What is measured?, What is not measured?, Hardware Platform, Timing Specification Methodology
+@end ifinfo
+@subsection What is measured?
+
+An effort was made to provide execution times for a
+large portion of RTEMS. Times were provided for most directives
+regardless of whether or not they are typically used in time
+critical code. For example, execution times are provided for
+all object create and delete directives, even though these are
+typically part of application initialization.
+
+The times include all RTEMS actions necessary in a
+particular scenario. For example, all times for blocking
+directives include the context switch necessary to transfer
+control to a new task. Under no circumstances is it necessary
+to add context switch time to the reported times.
+
+The following list describes the objects created by
+the timing suite:
+
+@itemize @bullet
+@item All tasks are non-floating point.
+
+@item All tasks are created as local objects.
+
+@item No timeouts are used on blocking directives.
+
+@item All tasks wait for objects in FIFO order.
+
+@end itemize
+
+In addition, no user extensions are configured.
+
+@ifinfo
+@node What is not measured?, Terminology, What is measured?, Timing Specification Methodology
+@end ifinfo
+@subsection What is not measured?
+
+The times presented in this document are not intended
+to represent best or worst case times, nor are all directives
+included. For example, no times are provided for the initialize
+executive and fatal_error_occurred directives. Other than the
+exceptions detailed in the Determinancy section, all directives
+will execute in the fixed length of time given.
+
+Other than entering and exiting an interrupt service
+routine, all directives were executed from tasks and not from
+interrupt service routines. Directives invoked from ISRs, when
+allowable, will execute in slightly less time than when invoked
+from a task because rescheduling is delayed until the interrupt
+exits.
+
+@ifinfo
+@node Terminology, , What is not measured?, Timing Specification Methodology
+@end ifinfo
+@subsection Terminology
+
+The following is a list of phrases which are used to
+distinguish individual execution paths of the directives taken
+during the RTEMS performance analysis:
+
+@table @b
+@item another task
+The directive was performed
+on a task other than the calling task.
+
+@item available
+A task attempted to obtain a resource and
+immediately acquired it.
+
+@item blocked task
+The task operated upon by the
+directive was blocked waiting for a resource.
+
+@item caller blocks
+The requested resoure was not
+immediately available and the calling task chose to wait.
+
+@item calling task
+The task invoking the directive.
+
+@item messages flushed
+One or more messages was flushed
+from the message queue.
+
+@item no messages flushed
+No messages were flushed from
+the message queue.
+
+@item not available
+A task attempted to obtain a resource
+and could not immediately acquire it.
+
+@item no reschedule
+The directive did not require a
+rescheduling operation.
+
+@item NO_WAIT
+A resource was not available and the
+calling task chose to return immediately via the NO_WAIT option
+with an error.
+
+@item obtain current
+The current value of something was
+requested by the calling task.
+
+@item preempts caller
+The release of a resource caused a
+task of higher priority than the calling to be readied and it
+became the executing task.
+
+@item ready task
+The task operated upon by the directive
+was in the ready state.
+
+@item reschedule
+The actions of the directive
+necessitated a rescheduling operation.
+
+@item returns to caller
+The directive succeeded and
+immediately returned to the calling task.
+
+@item returns to interrupted task
+The instructions
+executed immediately following this interrupt will be in the
+interrupted task.
+
+@item returns to nested interrupt
+The instructions
+executed immediately following this interrupt will be in a
+previously interrupted ISR.
+
+@item returns to preempting task
+The instructions
+executed immediately following this interrupt or signal handler
+will be in a task other than the interrupted task.
+
+@item signal to self
+The signal set was sent to the
+calling task and signal processing was enabled.
+
+@item suspended task
+The task operated upon by the
+directive was in the suspended state.
+
+@item task readied
+The release of a resource caused a
+task of lower or equal priority to be readied and the calling
+task remained the executing task.
+
+@item yield
+The act of attempting to voluntarily release
+the CPU.
+
+@end table
+
diff --git a/doc/common/up-arrow.gif b/doc/common/up-arrow.gif
new file mode 100644
index 0000000000..82aa8ccc68
--- /dev/null
+++ b/doc/common/up-arrow.gif
Binary files differ
diff --git a/doc/common/wksheets.t b/doc/common/wksheets.t
new file mode 100644
index 0000000000..8f2334dd93
--- /dev/null
+++ b/doc/common/wksheets.t
@@ -0,0 +1,424 @@
+@c
+@c Figures ...
+@c RTEMS RAM Workspace Worksheet
+@c RTEMS Code Space Worksheet
+@c
+
+@ifinfo
+@node Memory Requirements, Memory Requirements Introduction, WORKSHEETS_PREVIOUS_LINK, Top
+@end ifinfo
+@chapter Memory Requirements
+@ifinfo
+@menu
+* Memory Requirements Introduction::
+* Memory Requirements Data Space Requirements::
+* Memory Requirements Minimum and Maximum Code Space Requirements::
+* Memory Requirements RTEMS Code Space Worksheet::
+* Memory Requirements RTEMS RAM Workspace Worksheet::
+@end menu
+@end ifinfo
+
+@ifinfo
+@node Memory Requirements Introduction, Memory Requirements Data Space Requirements, Memory Requirements, Memory Requirements
+@end ifinfo
+@section Introduction
+
+Memory is typically a limited resource in real-time
+embedded systems, therefore, RTEMS can be configured to utilize
+the minimum amount of memory while meeting all of the
+applications requirements. Worksheets are provided which allow
+the RTEMS application developer to determine the amount of RTEMS
+code and RAM workspace which is required by the particular
+configuration. Also provided are the minimum code space,
+maximum code space, and the constant data space required by
+RTEMS.
+
+@ifinfo
+@node Memory Requirements Data Space Requirements, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements Introduction, Memory Requirements
+@end ifinfo
+@section Data Space Requirements
+
+RTEMS requires a small amount of memory for its
+private variables. This data area must be in RAM and is
+separate from the RTEMS RAM Workspace. The following
+illustrates the data space required for all configurations of
+RTEMS:
+
+@itemize @bullet
+@item Data Space: RTEMS_DATA_SPACE
+@end itemize
+
+@ifinfo
+@node Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements Data Space Requirements, Memory Requirements
+@end ifinfo
+@section Minimum and Maximum Code Space Requirements
+
+A maximum configuration of RTEMS includes the core
+and all managers, including the multiprocessing manager.
+Conversely, a minimum configuration of RTEMS includes only the
+core and the following managers: initialization, task, interrupt
+and fatal error. The following illustrates the code space
+required by these configurations of RTEMS:
+
+@itemize @bullet
+@item Minimum Configuration: RTEMS_MINIMUM_CONFIGURATION
+@item Maximum Configuration: RTEMS_MAXIMUM_CONFIGURATION
+@end itemize
+
+@ifinfo
+@node Memory Requirements RTEMS Code Space Worksheet, Memory Requirements RTEMS RAM Workspace Worksheet, Memory Requirements Minimum and Maximum Code Space Requirements, Memory Requirements
+@end ifinfo
+@section RTEMS Code Space Worksheet
+
+The RTEMS Code Space Worksheet is a tool provided to
+aid the RTEMS application designer to accurately calculate the
+memory required by the RTEMS run-time environment. RTEMS allows
+the custom configuration of the executive by optionally
+excluding managers which are not required by a particular
+application. This worksheet provides the included and excluded
+size of each manager in tabular form allowing for the quick
+calculation of any custom configuration of RTEMS. The RTEMS
+Code Space Worksheet is below:
+
+@ifset use-ascii
+@page
+@end ifset
+@ifset use-tex
+@page
+@end ifset
+
+@page
+@center @b{RTEMS Code Space Worksheet}
+@sp 1
+
+@ifset use-ascii
+
+The following is a list of the components of the RTEMS code space. The first
+number in parentheses is the size when the component is included,
+while the second number indicates its size when not included. If the second
+number is "NA", then the component must always be included.
+
+@itemize @bullet
+@item Core (RTEMS_CORE_CODE_SIZE, NA)
+@item Initialization (RTEMS_INITIALIZATION_CODE_SIZE, NA)
+@item Task (RTEMS_TASK_CODE_SIZE, NA)
+@item Interrupt (RTEMS_INTERRUPT_CODE_SIZE, NA)
+@item Clock (RTEMS_CLOCK_CODE_SIZE, NA)
+@item Timer (RTEMS_TIMER_CODE_SIZE, RTEMS_TIMER_CODE_OPTSIZE)
+@item Semaphore (RTEMS_SEMAPHORE_CODE_SIZE, RTEMS_SEMAPHORE_CODE_OPTSIZE)
+@item Message (RTEMS_MESSAGE_CODE_SIZE, RTEMS_MESSAGE_CODE_OPTSIZE)
+@item Event (RTEMS_EVENT_CODE_SIZE, RTEMS_EVENT_CODE_OPTSIZE)
+@item Signal (RTEMS_SIGNAL_CODE_SIZE, RTEMS_SIGNAL_CODE_OPTSIZE)
+@item Partition (RTEMS_PARTITION_CODE_SIZE, RTEMS_PARTITION_CODE_OPTSIZE)
+@item Region (RTEMS_REGION_CODE_SIZE, RTEMS_REGION_CODE_OPTSIZE)
+@item Dual Ported Memory (RTEMS_DPMEM_CODE_SIZE, RTEMS_DPMEM_CODE_OPTSIZE)
+@item I/O (RTEMS_IO_CODE_SIZE, RTEMS_IO_CODE_OPTSIZE)
+@item Fatal Error (RTEMS_FATAL_ERROR_CODE_SIZE, NA)
+@item Rate Monotonic (RTEMS_RATE_MONOTONIC_CODE_SIZE, RTEMS_RATE_MONOTONIC_CODE_OPTSIZE)
+@item Multiprocessing (RTEMS_MULTIPROCESSING_CODE_SIZE, RTEMS_MULTIPROCESSING_CODE_OPTSIZE)
+@end itemize
+@end ifset
+
+@ifset use-tex
+
+@tex
+\line{\hskip 0.50in\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 2.25in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.00in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#\cr
+\noalign{\hrule}
+&\bf Component && \bf Included && \bf Not Included && \bf Size &\cr\noalign{\hrule}
+&Core && RTEMS_CORE_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Initialization && RTEMS_INITIALIZATION_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Task && RTEMS_TASK_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Interrupt && RTEMS_INTERRUPT_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Clock && RTEMS_CLOCK_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Timer && RTEMS_TIMER_CODE_SIZE && RTEMS_TIMER_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Semaphore && RTEMS_SEMAPHORE_CODE_SIZE && RTEMS_SEMAPHORE_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Message && RTEMS_MESSAGE_CODE_SIZE && RTEMS_MESSAGE_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Event && RTEMS_EVENT_CODE_SIZE && RTEMS_EVENT_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Signal && RTEMS_SIGNAL_CODE_SIZE && RTEMS_SIGNAL_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Partition && RTEMS_PARTITION_CODE_SIZE && RTEMS_PARTITION_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Region && RTEMS_REGION_CODE_SIZE && RTEMS_REGION_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Dual Ported Memory && RTEMS_DPMEM_CODE_SIZE && RTEMS_DPMEM_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&I/O && RTEMS_IO_CODE_SIZE && RTEMS_IO_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Fatal Error && RTEMS_FATAL_ERROR_CODE_SIZE && NA && &\cr\noalign{\hrule}
+&Rate Monotonic && RTEMS_RATE_MONOTONIC_CODE_SIZE && RTEMS_RATE_MONOTONIC_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&Multiprocessing && RTEMS_MULTIPROCESSING_CODE_SIZE && RTEMS_MULTIPROCESSING_CODE_OPTSIZE && &\cr\noalign{\hrule}
+&\multispan 5 \bf\hfil Total Code Space Requirements\qquad\hfil&&&\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=4 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Component</STRONG></TD>
+ <TD ALIGN=center><STRONG>Included</STRONG></TD>
+ <TD ALIGN=center><STRONG>Not Included</STRONG></TD>
+ <TD ALIGN=center><STRONG>Size</STRONG></TD></TR>
+<TR><TD ALIGN=center>Core</TD>
+ <TD ALIGN=center>RTEMS_CORE_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Initialization</TD>
+ <TD ALIGN=center>RTEMS_INITIALIZATION_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Task</TD>
+ <TD ALIGN=center>RTEMS_TASK_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Interrupt</TD>
+ <TD ALIGN=center>RTEMS_INTERRUPT_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Clock</TD>
+ <TD ALIGN=center>RTEMS_CLOCK_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Timer</TD>
+ <TD ALIGN=center>RTEMS_TIMER_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_TIMER_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Semaphore</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_SEMAPHORE_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Message</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_MESSAGE_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Event</TD>
+ <TD ALIGN=center>RTEMS_EVENT_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_EVENT_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Signal</TD>
+ <TD ALIGN=center>RTEMS_SIGNAL_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_SIGNAL_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Partition</TD>
+ <TD ALIGN=center>RTEMS_PARTITION_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_PARTITION_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Region</TD>
+ <TD ALIGN=center>RTEMS_REGION_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_REGION_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Dual Ported Memory</TD>
+ <TD ALIGN=center>RTEMS_DPMEM_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_DPMEM_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>I/O</TD>
+ <TD ALIGN=center>RTEMS_IO_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_IO_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Fatal Error</TD>
+ <TD ALIGN=center>RTEMS_FATAL_ERROR_CODE_SIZE</TD>
+ <TD ALIGN=center>NA</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Rate Monotonic</TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_RATE_MONOTONIC_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center>Multiprocessing</TD>
+ <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_SIZE</TD>
+ <TD ALIGN=center>RTEMS_MULTIPROCESSING_CODE_OPTSIZE</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=center COLSPAN=3>
+ <STRONG>Total Code Space Requirements</STRONG></TD>
+ <TD><BR></TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+
+@page
+
+@ifinfo
+@node Memory Requirements RTEMS RAM Workspace Worksheet, WORKSHEETS_NEXT_LINK, Memory Requirements RTEMS Code Space Worksheet, Memory Requirements
+@end ifinfo
+@section RTEMS RAM Workspace Worksheet
+
+The RTEMS RAM Workspace Worksheet is a tool provided
+to aid the RTEMS application designer to accurately calculate
+the minimum memory block to be reserved for RTEMS use. This
+worksheet provides equations for calculating the amount of
+memory required based upon the number of objects configured,
+whether for single or multiple processor versions of the
+executive. This information is presented in tabular form, along
+with the fixed system requirements, allowing for quick
+calculation of any application defined configuration of RTEMS.
+The RTEMS RAM Workspace Worksheet is provided below:
+
+@ifset use-ascii
+@page
+@end ifset
+@ifset use-tex
+@sp 2
+@end ifset
+
+@center @b{RTEMS RAM Workspace Worksheet}
+@sp 2
+
+@ifset use-ascii
+The total RTEMS RAM Workspace required is the sum of the following:
+
+@itemize @bullet
+@item maximum_tasks * RTEMS_BYTES_PER_TASK
+@item maximum_timers * RTEMS_BYTES_PER_TIMER
+@item maximum_semaphores * RTEMS_BYTES_PER_SEMAPHORE
+@item maximum_message_queues * RTEMS_BYTES_PER_MESSAGE_QUEUE
+@item maximum_regions * RTEMS_BYTES_PER_REGION
+@item maximum_partitions * RTEMS_BYTES_PER_PARTITION
+@item maximum_ports * RTEMS_BYTES_PER_PORT
+@item maximum_periods * RTEMS_BYTES_PER_PERIOD
+@item maximum_extensions * RTEMS_BYTES_PER_EXTENSION
+@item Floating Point Tasks * RTEMS_BYTES_PER_FP_TASK
+@item Task Stacks
+@item maximum_nodes * RTEMS_BYTES_PER_NODE
+@item maximum_global_objects * RTEMS_BYTES_PER_GLOBAL_OBJECT
+@item maximum_proxies * RTEMS_BYTES_PER_PROXY
+@item Fixed System Requirements of RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS
+@end itemize
+@end ifset
+
+@ifset use-tex
+@tex
+\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 3.0in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#\cr
+\noalign{\hrule}
+& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
+& maximum\_tasks && * RTEMS_BYTES_PER_TASK = &&&\cr\noalign{\hrule}
+& maximum\_timers && * RTEMS_BYTES_PER_TIMER = &&&\cr\noalign{\hrule}
+& maximum\_semaphores && * RTEMS_BYTES_PER_SEMAPHORE = &&&\cr\noalign{\hrule}
+& maximum\_message\_queues && * RTEMS_BYTES_PER_MESSAGE_QUEUE = &&&\cr\noalign{\hrule}
+& maximum\_regions && * RTEMS_BYTES_PER_REGION = &&&\cr\noalign{\hrule}
+& maximum\_partitions && * RTEMS_BYTES_PER_PARTITION = &&&\cr\noalign{\hrule}
+& maximum\_ports && * RTEMS_BYTES_PER_PORT = &&&\cr\noalign{\hrule}
+& maximum\_periods && * RTEMS_BYTES_PER_PERIOD = &&&\cr\noalign{\hrule}
+& maximum\_extensions && * RTEMS_BYTES_PER_EXTENSION = &&&\cr\noalign{\hrule}
+& Floating Point Tasks && * RTEMS_BYTES_PER_FP_TASK = &&&\cr\noalign{\hrule}
+& Task Stacks &&\hskip 2.3em=&&&\cr\noalign{\hrule}
+& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
+}}\hfil}
+
+\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 3.0in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#\cr
+\noalign{\hrule}
+& \bf Description && \bf Equation && \bf Bytes Required &\cr\noalign{\hrule}
+& maximum\_nodes && * RTEMS_BYTES_PER_NODE = &&&\cr\noalign{\hrule}
+& maximum\_global\_objects && * RTEMS_BYTES_PER_GLOBAL_OBJECT = &&&\cr\noalign{\hrule}
+& maximum\_proxies && * RTEMS_BYTES_PER_PROXY = &&&\cr\noalign{\hrule}
+}}\hfil}
+
+\line{\hskip 0.75in\vbox{\offinterlineskip\halign{
+\vrule\strut#&
+\hbox to 3.0in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 0.75in{\enskip\hfil#\hfil}&
+\vrule#&
+\hbox to 1.25in{\enskip\hfil#\hfil}&
+\vrule#\cr
+\noalign{\hrule}
+& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
+& Fixed System Requirements && RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS &&&\cr\noalign{\hrule}
+& Total Single Processor Requirements &&&&&\cr\noalign{\hrule}
+& Total Multiprocessing Requirements &&&&&\cr\noalign{\hrule}
+& Minimum Bytes for RTEMS Workspace &&&&&\cr\noalign{\hrule}
+}}\hfil}
+@end tex
+@end ifset
+
+@ifset use-html
+@html
+<CENTER>
+ <TABLE COLS=3 WIDTH="80%" BORDER=2>
+<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
+ <TD ALIGN=center><STRONG>Equation</STRONG></TD>
+ <TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
+<TR><TD ALIGN=left>maximum_tasks</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_TASK =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_timers</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_TIMER =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_semaphores</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_SEMAPHORE =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_message_queues</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_MESSAGE_QUEUE =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_regions</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_REGION =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_partitions</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_PARTITION =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_ports</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_PORT =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_periods</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_PERIOD =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_extensions</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_EXTENSION =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>Floating Point Tasks</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_FP_TASK =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>Task Stacks</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>
+ <STRONG>Total Single Processor Requirements</STRONG></TD>
+ <TD><BR></TD></TR>
+<TR></TR>
+<TR><TD ALIGN=center><STRONG>Description</STRONG></TD>
+ <TD ALIGN=center><STRONG>Equation</STRONG></TD>
+ <TD ALIGN=center><STRONG>Bytes Required</STRONG></TD></TR>
+<TR><TD ALIGN=left>maximum_nodes</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_NODE =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_global_objects</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_GLOBAL_OBJECT =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left>maximum_proxies</TD>
+ <TD ALIGN=right>* RTEMS_BYTES_PER_PROXY =</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>
+ <STRONG>Total Multiprocessing Requirements</STRONG></TD>
+ <TD><BR></TD></TR>
+<TR></TR>
+<TR><TD ALIGN=left COLSPAN=2>Fixed System Requirements</TD>
+ <TD ALIGN=center>RTEMS_BYTES_OF_FIXED_SYSTEM_REQUIREMENTS</TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>Total Single Processor Requirements</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>Total Multiprocessing Requirements</TD>
+ <TD><BR></TD></TR>
+<TR><TD ALIGN=left COLSPAN=2>
+ <STRONG>Minimum Bytes for RTEMS Workspace</STRONG></TD>
+ <TD><BR></TD></TR>
+ </TABLE>
+</CENTER>
+@end html
+@end ifset
+