diff options
Diffstat (limited to 'doc/common')
-rw-r--r-- | doc/common/cpright.texi | 45 | ||||
-rw-r--r-- | doc/common/oaronly.jpg | bin | 1584 -> 0 bytes | |||
-rw-r--r-- | doc/common/setup.texi | 75 | ||||
-rw-r--r-- | doc/common/timemac.texi | 36 | ||||
-rw-r--r-- | doc/common/timetbl.t | 1330 | ||||
-rw-r--r-- | doc/common/timing.t | 396 | ||||
-rw-r--r-- | doc/common/treedef.tex | 317 | ||||
-rw-r--r-- | doc/common/up-arrow.gif | bin | 264 -> 0 bytes | |||
-rw-r--r-- | doc/common/wksheets.t | 409 |
9 files changed, 0 insertions, 2608 deletions
diff --git a/doc/common/cpright.texi b/doc/common/cpright.texi deleted file mode 100644 index 12b698ee7b..0000000000 --- a/doc/common/cpright.texi +++ /dev/null @@ -1,45 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@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{} 1988 - 1998.@* -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: (256) 722-9985 -FAX: (256) 722-0985 -EMAIL: rtems@@OARcorp.com -@end example - diff --git a/doc/common/oaronly.jpg b/doc/common/oaronly.jpg Binary files differdeleted file mode 100644 index c87c151404..0000000000 --- a/doc/common/oaronly.jpg +++ /dev/null diff --git a/doc/common/setup.texi b/doc/common/setup.texi deleted file mode 100644 index 8578a86ece..0000000000 --- a/doc/common/setup.texi +++ /dev/null @@ -1,75 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@c -@c Set Variables -@c - -@set RTEMS-RELEASE 4.0.0 -@set RTEMS-EDITION 4.0.0 -@set RTEMS-VERSION 4.0.0 -@set RTEMS-UPDATE-DATE October 27 1998 -@set RTEMS-UPDATE-MONTH October 1998 - -@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 deleted file mode 100644 index 25a0b27e9a..0000000000 --- a/doc/common/timemac.texi +++ /dev/null @@ -1,36 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@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 deleted file mode 100644 index ce91bb79ff..0000000000 --- a/doc/common/timetbl.t +++ /dev/null @@ -1,1330 +0,0 @@ -@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 - -@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 -@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 -@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 - - -@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 - -@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 -@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 - -@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 -@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 -@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 - -@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 -@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 - -@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 - -@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 - -@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.t b/doc/common/timing.t deleted file mode 100644 index 60840c5752..0000000000 --- a/doc/common/timing.t +++ /dev/null @@ -1,396 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Timing Specification - -@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. - -@section Philosophy - -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. - -@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). - -@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. - -@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. - -@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. - -@section Methodology - -@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. - -@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. - -@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. - -@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. - -@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/treedef.tex b/doc/common/treedef.tex deleted file mode 100644 index 26eda0c28c..0000000000 --- a/doc/common/treedef.tex +++ /dev/null @@ -1,317 +0,0 @@ -% treedef.tex -% -% These definitions for tree macros are taken from "Trees in TeX", -% by David Eppstein, as published in TUGboat 6#1, March 1985. -% David Eppstein's address (as of 15 June 1988) is -% Computer Science Department -% Columbia University -% New York, NY 10027 -% Eppstein@cs.Columbia.edu -% -% Tree -- a macro to make aligned (horizontal) trees in TeX -% -% Input is of the form -% \tree -% item -% \subtree -% \leaf{item} -% . -% . -% . -% \endsubtree -% \subtree -% . -% . -% . -% \endsubtree -% \endsubtree -% \endtree -% -% Nesting is to any level. \leaf is defined as a subtree of one item: -% \def\leaf#1{\subtree#1\endsubtree}. -% -% A structure: -% \subtree -% item_part1 -% item_part2 -% . -% . -% . -% -% will print item_part2 directly below item_part1 as a single item -% as if they were in a \box. -% -% The macro is a 3-pass macro. On the first pass it sets up a data -% structure from the \subtree ... \endsubtree definitions. On the second pass -% it recursively calculates the width of each level of the tree. On the third -% pass it sets up the boxes, glue and rules. -% -% By David Eppstein, TUGboat, vol. 6 (1985), no. 1, pp. 31--35. -% Transcribed by Margaret Kromer (peg), Feb., 1986. -% -% Pass 1 -% At the end of pass 1, the tree is coded as a nested collection of \hboxes -% and \vboxes. -\newbox\treebox\newcount\treeboxcnt -\def\tree{\message{Begin tree}\treeboxcnt=1\global\setbox\treebox=\boxtree} -\def\subtree{\ettext \advance\treeboxcnt by 1 \boxtree} -\def\leaf#1{\subtree#1\endsubtree} -\def\endsubtree{\ettext \egroup \advance\treeboxcnt-1{}% - \ifnum\treeboxcnt=-1 \treeerrora\fi} -\def\endtree{\endsubtree \ifnum\treeboxcnt>0 \treeerrorb\fi% - \settreesizes \typesettree \message{-- end tree}} -% Error messages for unbalanced tree -\def\treeerrora{\errhelp=\treeerrorahelp% - \errmessage{Unbalanced tree -- too many endsubtrees}} -\newhelp\treeerrorahelp{There are more subtrees closed than opened} -\def\treeerrorb{\errhelp=\treeerrorbhelp% - \errmessage{Unbalanced tree -- not enough endsubtrees}} -\newhelp\treeerrorbhelp{Not all the subtrees of the tree are closed. -If you continue, you'll get some mysterious secondary errors.} -% Set up \vbox containing root of tree -\newif\iftreetext\treetextfalse % Whether still aligning text -\def\boxtree{\hbox\bgroup % Start outer box of tree or subtree - \baselineskip 2.5ex % Narrow line spacing slightly - \tabskip 0pt % No spurious glue in alignment - \vbox\bgroup % Start inner text \vbox - \treetexttrue % Remember for \ettext - \let\par\crcr \obeylines % New line breaks without explicit \cr - \halign\bgroup##\hfil\cr} % Start alignment with simple template -\def\ettext{\iftreetext % Are we still in inner text \vbox? - \crcr\egroup \egroup \fi} % Yes, end alignment and box -% Pass 2 -% Recursively calculate widths of tree with \setsizes; keep results in -% \treesizes; \treewidth contains total width calculated so far. \treeworkbox -% is workspace containing subtree being sized. -\newbox\treeworkbox -\def\cons#1#2{\edef#2{\xmark #1#2}} % Add something to start of list -\def\car#1{\expandafter\docar#1\docar} % Take first element of list -\def\docar\xmark#1\xmark#2\docar{#1} % ..by ignoring rest in expansion -\def\cdr#1{\expandafter\docdr#1\docdr#1}% Similarly, drop first element -\def\docdr\xmark#1\xmark#2\docdr#3{\def#3{\xmark #2}} -\def\xmark{\noexpand\xmark} % List separator expands to self -\def\nil{\xmark} % Empty list is just separator -\def\settreesizes{\setbox\treeworkbox=\copy\treebox% - \global\let\treesizes\nil \setsizes} -\newdimen\treewidth % Width of this part of the tree -\def\setsizes{\setbox\treeworkbox=\hbox\bgroup% Get a horiz list as a workspace - \unhbox\treeworkbox\unskip % Take tree, unpack it into horiz list - \inittreewidth % Get old width at this level - \sizesubtrees % Recurse through all subtrees - \sizelevel % Now set width from remaining \vbox - \egroup} % All done, finish our \hbox -\def\inittreewidth{\ifx\treesizes\nil % If this is the first at this level - \treewidth=0pt % ..then we have no previous max width - \else \treewidth=\car\treesizes % Otherwise take old max level width - \global\cdr\treesizes % ..and advance level width storage - \fi} % ..in preparation for next level. -\def\sizesubtrees{\loop % For each box in horiz list (subtree) - \setbox\treeworkbox=\lastbox \unskip % ..pull it off list and flush glue - \ifhbox\treeworkbox \setsizes % If hbox, it's a subtree - recurse - \repeat} % ..and loop; end loop on tree text -\def\sizelevel{% - \ifdim\treewidth<\wd\treeworkbox % If greater than previous maximum - \treewidth=\wd\treeworkbox \fi % Then set max to new high - \global\cons{\the\treewidth}\treesizes}% In either case, put back on list -% Pass 3 -% Recursively typeset tree with \maketree by adding an \hbox containing -% a subtree (in \treebox) to the horizontal list. -\newdimen\treeheight % Height of this part of the tree -\newif\ifleaf % Tree has no subtrees (is a leaf) -\newif\ifbotsub % Bottom subtree of parent -\newif\iftopsub % Top subtree of parent -\def\typesettree{\medskip\maketree\medskip} % Make whole tree -\def\maketree{\hbox{\treewidth=\car\treesizes % Get width at this level - \cdr\treesizes % Set up width list for recursion - \makesubtreebox\unskip % Set \treebox to text, make subtrees - \ifleaf \makeleaf % No subtrees, add glue - \else \makeparent \fi}} % Have subtrees, stick them at right -{\catcode`@=11 % Be able to use \voidb@x -\gdef\makesubtreebox{\unhbox\treebox % Open up tree or subtree - \unskip\global\setbox\treebox\lastbox % Pick up very last box - \ifvbox\treebox % If we're already at the \vbox - \global\leaftrue \let\next\relax % ..then this is a leaf - \else \botsubtrue % Otherwise, we have subtrees - \setbox\treeworkbox\box\voidb@x % Init stack of processed subs - \botsubtrue \let\next\makesubtree % ..and call \maketree on them - \fi \next}} % Finish up for whichever it was -\def\makesubtree{\setbox1\maketree % Call \maketree on this subtree - \unskip\global\setbox\treebox\lastbox % Pick up box before it - \treeheight=\ht1 % Get height of subtree we made - \advance\treeheight 2ex % Add some room around the edges - \ifhbox\treebox \topsubfalse % If picked up box is a \vbox, - \else \topsubtrue \fi % ..this is the top, otherwise not - \addsubtreebox % Stack subtree with the rest - \iftopsub \global\leaffalse % If top, remember not a leaf - \let\next\relax \else % ..(after recursion), set return - \botsubfalse \let\next\makesubtree % Otherwise, we have more subtrees - \fi \next} % Do tail recursion or return -\def\addsubtreebox{\setbox\treeworkbox=\vbox{\subtreebox\unvbox\treeworkbox}} -\def\subtreebox{\hbox\bgroup % Start \hbox of tree and lines - \vbox to \treeheight\bgroup % Start \vbox for vertical rules - \ifbotsub \iftopsub \vfil % If both bottom and top subtree - \hrule width 0.4pt % ..vertical rule is just a dot - \else \treehalfrule \fi \vfil % Bottom gets half-height rule - \else \iftopsub \vfil \treehalfrule % Top gets half-height the other way - \else \hrule width 0.4pt height \treeheight \fi\fi % Middle, full height - \egroup % Finish vertical rule \vbox - \treectrbox{\hrule width 1em}\hskip 0.2em\treectrbox{\box1}\egroup} -\def\treectrbox#1{\vbox to \treeheight{\vfil #1\vfil}} -\def\treehalfrule{\dimen\treeworkbox=\treeheight % Get total height - \divide\dimen\treeworkbox 2% - \advance\dimen\treeworkbox 0.2pt % Divide by two, add half horiz height - \hrule width 0.4pt height \dimen\treeworkbox}% Make a vertical rule that high -\def\makeleaf{\box\treebox} % Add leaf box to horiz list -\def\makeparent{\ifdim\ht\treebox>% - \ht\treeworkbox % If text is higher than subtrees - \treeheight=\ht\treebox % ..use that height - \else \treeheight=\ht\treeworkbox \fi % Otherwise use height of subtrees - \advance\treewidth-\wd\treebox % Take remainder of level width - \advance\treewidth 1em % ..after accounting for text and glue - \treectrbox{\box\treebox}\hskip 0.2em % Add text, space before connection -\treectrbox{\hrule width \treewidth}% - \treectrbox{\box\treeworkbox}} % Add \hrule, subs - -************************************************ -% Plain TeX driver for tree.tex - -\def\uncatcodespecials{\catcode`@=12\def\do##1{\catcode`##1=12}\dospecials} -\def\setupverbatim{\tt\obeylines\uncatcodespecials\obeyspaces} -{\obeyspaces\global\let =\ } -\def\beginshowoff{\par\begingroup\setupverbatim\doverbatim} -{\catcode`\!=0 \catcode`\\=12 -!obeylines!gdef!doverbatim^^M#1\endshowoff{#1!endgroup!medbreak!filbreak% -!smallskip}} - -% see The TeXbook, exercise 22.14 -%\input tree.tex -\centerline{\bf TREE TREE} -\bigskip -\tree - {Tree} - Uses - \subtree - Computer - Science - \subtree - Data - Structures - \leaf{Search Tree} - \leaf{Priority Queue} - \endsubtree - \subtree - Parsing - \leaf{Parse Tree} - \leaf{Symbol Table} - \endsubtree - \subtree - Structured - Programming - \endsubtree - \endsubtree - \subtree - Genealogy - \leaf{Ancestors} - \leaf{Descendants} - \endsubtree - \subtree - Electrical - Engineering - \subtree - Paper - \leaf{{\it Vitae}} - \leaf{Announcements} - \leaf{Proposals} - \leaf{\TeX{} Samples} - \endsubtree - \endsubtree - \subtree - Construction - \leaf{Fences} - \subtree - Buildings - \subtree - Houses - \leaf{Human} - \leaf{Dog} - \leaf{Bird} - \leaf{Tree} - \endsubtree - \leaf{Barns} - \leaf{Other} - \endsubtree - \leaf{\dots} - \endsubtree - \subtree - Taxonomies - \leaf{Tree Uses} - \endsubtree -\endtree - -\vskip.5truein -\beginshowoff -% see The TeXbook, exercise 22.14 -\input tree.tex -\centerline{TREE TREE} -\bigskip -\tree - Tree - Uses - \subtree - Computer - Science - \subtree - Data - Structures - \leaf{Search Tree} - \leaf{Priority Queue} - \endsubtree - \subtree - Parsing - \leaf{Parse Tree} - \leaf{Symbol Table} - \endsubtree - \subtree - Structured - Programming - \endsubtree - \endsubtree - \subtree - Genealogy - \leaf{Ancestors} - \leaf{Descendants} - \endsubtree - \subtree - Electrical - Engineering - \subtree - Paper - \leaf{{\it Vitae}} - \leaf{Announcements} - \leaf{Proposals} - \leaf{\TeX{} Samples} - \endsubtree - \endsubtree - \subtree - Construction - \leaf{Fences} - \subtree - Buildings - \subtree - Houses - \leaf{Human} - \leaf{Dog} - \leaf{Bird} - \leaf{Tree} - \endsubtree - \leaf{Barns} - \leaf{Other} - \endsubtree - \leaf{\dots} - \endsubtree - \subtree - Taxonomies - \leaf{Tree Uses} - \endsubtree -\endtree -\endshowoff diff --git a/doc/common/up-arrow.gif b/doc/common/up-arrow.gif Binary files differdeleted file mode 100644 index 82aa8ccc68..0000000000 --- a/doc/common/up-arrow.gif +++ /dev/null diff --git a/doc/common/wksheets.t b/doc/common/wksheets.t deleted file mode 100644 index b3e5c2c94f..0000000000 --- a/doc/common/wksheets.t +++ /dev/null @@ -1,409 +0,0 @@ -@c ****** This comment is here to remind you not to edit the wksheets.t -@c ****** in any directory but common. -@c -@c Figures ... -@c RTEMS RAM Workspace Worksheet -@c RTEMS Code Space Worksheet -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Memory Requirements - -@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. - -@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 - -@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 - -@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 - -@c ****** Next node is set by a sed script in the document Makefile. -@c ****** This comment is here to remind you not to edit the wksheets.t -@c ****** in any directory but common. - -@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 - |