diff options
Diffstat (limited to '')
-rw-r--r-- | doc/supplements/i386/timeFORCE386_.t | 1435 | ||||
-rw-r--r-- | doc/supplements/i960/timeCVME961_.t | 1422 | ||||
-rw-r--r-- | doc/supplements/m68k/timeMVME136_.t | 1442 | ||||
-rw-r--r-- | doc/supplements/mips64orion/timeBSP_.t | 1442 | ||||
-rw-r--r-- | doc/supplements/powerpc/timeDMV177_.t | 1447 | ||||
-rw-r--r-- | doc/supplements/powerpc/timePSIM_.t | 1431 | ||||
-rw-r--r-- | doc/supplements/sh/timeBSP_.t | 1442 | ||||
-rw-r--r-- | doc/supplements/sparc/timeERC32_.t | 1454 |
8 files changed, 0 insertions, 11515 deletions
diff --git a/doc/supplements/i386/timeFORCE386_.t b/doc/supplements/i386/timeFORCE386_.t deleted file mode 100644 index de008d23b2..0000000000 --- a/doc/supplements/i386/timeFORCE386_.t +++ /dev/null @@ -1,1435 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter CPU386 Timing Data - -@section Introduction - -The timing data for the i386 version of RTEMS is -provided along with the target dependent aspects concerning the -gathering of the timing data. The hardware platform used to -gather the times is described to give the reader a better -understanding of each directive time provided. Also, provided -is a description of the interrupt latency and the context -switch times as they pertain to the i386 version of RTEMS. - -@section Hardware Platform - -All times reported except for the maximum period -interrupts are disabled by RTEMS were measured using a Force -Computers CPU386 board. The CPU386 is a 16 Mhz board with zero -wait state dynamic memory and an i80387 numeric coprocessor. -One of the count-down timers provided by a Motorola MC68901 was -used to measure elapsed time with one microsecond resolution. -All sources of hardware interrupts are disabled, although the -interrupt level of the i386 allows all interrupts. - -The maximum period interrupts are disabled was -measured by summing the number of CPU cycles required by each -assembly language instruction executed while interrupts were -disabled. Zero wait state memory was assumed. The total CPU -cycles executed with interrupts disabled, including the -instructions to disable and enable interrupts, was divided by 16 -to simulate a i386 executing at 16 Mhz. - -@section Interrupt Latency - -The maximum period with interrupts disabled within -RTEMS is less than 13.0 microseconds -including the instructions -which disable and re-enable interrupts. The time required for -the i386 to generate an interrupt using the int instruction, -vectoring to an interrupt handler, and for the RTEMS entry -overhead before invoking the user's interrupt handler are a -total of 12 microseconds. These combine to yield a worst case -interrupt latency of less -13.0 + 12 -microseconds. [NOTE: The -maximum period with interrupts disabled within RTEMS was last -calculated for Release 3.1.0.] - -It should be noted again that the maximum period with -interrupts disabled within RTEMS is hand-timed. The interrupt -vector and entry overhead time was generated on the Force -Computers CPU386 benchmark platform using the int instruction as -the interrupt source. - -@section Context Switch - -The RTEMS processor context switch time is 34 -microseconds on the Force Computers CPU386 benchmark platform. -This time represents the raw context switch time with no user -extensions configured. Additional execution time is required -when a TASK_SWITCH user extension is configured. The use of the -TASK_SWITCH extension is application dependent. Thus, its -execution time is not considered part of the base context switch -time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when a FLOATING_POINT task -is dispatched and that task was not the last task to utilize the -coprocessor. In a system with only one FLOATING_POINT task, the -state of the numeric coprocessor will never be saved or -restored. When the first FLOATING_POINT task is dispatched, -RTEMS does not need to save the current state of the numeric -coprocessor. - -The exact amount of time required to save and restore -floating point context is dependent on the state of the numeric -coprocessor. RTEMS places the coprocessor in the initialized -state when a task is started or restarted. Once the task has -utilized the coprocessor, it is in the idle state when floating -point instructions are not executing and the busy state when -floating point instructions are executing. The state of the -coprocessor is task specific. - -The following table summarizes the context switch -times for the Force Computers CPU386 benchmark platform: - -@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-1999. -@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}{34} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{57} -\rtemscase{save initialized, restore initialized}{59} -\rtemscase{save idle, restore initialized}{59} -\rtemscase{save idle, restore idle}{83} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 34 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 57 -@item save initialized, restore initialized: 59 -@item save idle, restore initialized: 59 -@item save idle, restore idle: 59 -@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>34</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>57</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>59</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>59</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>83</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}{157} -\rtemsonecase{TASK\_IDENT}{748} -\rtemsonecase{TASK\_START}{86} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{118} -\rtemscase{suspended task -- returns to caller} - {45} -\rtemscase{blocked task -- returns to caller} - {138} -\rtemscase{ready task -- returns to caller} - {105} -\rtemscase{suspended task -- preempts caller} - {149} -\rtemscase{blocked task -- preempts caller} - {162} -\rtemscase{ready task -- preempts caller} - {156} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{187} -\rtemscase{suspended task}{147} -\rtemscase{blocked task}{153} -\rtemscase{ready task}{157} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{81} -\rtemscase{returns to caller}{45} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {46} -\rtemscase{task readied -- preempts caller} - {71} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {30} -\rtemscase{returns to caller}{67} -\rtemscase{preempts caller}{115} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{19} -\rtemscase{no reschedule}{21} -\rtemscase{reschedule -- returns to caller} - {27} -\rtemscase{reschedule -- preempts caller} - {66} -\rtemsonecase{TASK\_GET\_NOTE}{32} -\rtemsonecase{TASK\_SET\_NOTE}{32} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {18} -\rtemscase{yield -- preempts caller} - {63} -\rtemsonecase{TASK\_WAKE\_WHEN}{128} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 157 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 748 -@end itemize - -@item TASK_START -@itemize - -@item only case: 86 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 118 -@item suspended task -- returns to caller: 45 -@item blocked task -- returns to caller: 138 -@item ready task -- returns to caller: 105 -@item suspended task -- preempts caller: 149 -@item blocked task -- preempts caller: 162 -@item ready task -- preempts caller: 156 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 187 -@item suspended task: 147 -@item blocked task: 153 -@item ready task: 157 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 81 -@item returns to caller: 45 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 46 -@item task readied -- preempts caller: 71 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 30 -@item returns to caller: 67 -@item preempts caller: 115 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 19 -@item no reschedule: 21 -@item reschedule -- returns to caller: 27 -@item reschedule -- preempts caller: 66 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 32 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 32 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 18 -@item yield -- preempts caller: 63 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 128 -@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>157</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>748</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>86</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>118</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>45</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>138</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>105</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>149</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>162</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>156</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>187</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>147</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>153</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>157</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>81</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>45</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>46</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>71</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>30</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>67</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>115</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>19</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>21</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>27</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>66</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>32</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>32</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>18</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>63</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>128</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}{12} -\rtemscase{returns to interrupted task} - {13} -\rtemscase{returns to preempting task} - {12} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{10} -\rtemscase{returns to interrupted task} - {13} -\rtemscase{returns to preempting task} - {58} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 12 -@item returns to interrupted task: 13 -@item returns to preempting task: 12 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: 10 -@item returns to interrupted task: 13 -@item returns to preempting task: 58 -@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>12</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>13</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>12</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>10</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>13</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>58</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{85} -\rtemsonecase{CLOCK\_GET}{2} -\rtemsonecase{CLOCK\_TICK}{16} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 85 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 2 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 16 -@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>85</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>16</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{34} -\rtemsonecase{TIMER\_IDENT}{729} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{48} -\rtemscase{active}{52} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{65} -\rtemscase{active}{69} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{92} -\rtemscase{active}{92} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{58} -\rtemscase{active}{63} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{32} -\rtemscase{active}{37} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 34 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 729 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 48 -@item active: 52 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 65 -@item active: 69 -@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>34</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>729</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>48</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>52</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>65</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>69</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>92</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>92</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>58</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>63</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>32</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>37</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}{64} -\rtemsonecase{SEMAPHORE\_IDENT}{787} -\rtemsonecase{SEMAPHORE\_DELETE}{60} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{41} -\rtemscase{not available -- NO\_WAIT} - {40} -\rtemscase{not available -- caller blocks} - {123} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{47} -\rtemscase{task readied -- returns to caller} - {70} -\rtemscase{task readied -- preempts caller} - {95} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 64 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 787 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 60 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 41 -@item not available -- NO_WAIT: 40 -@item not available -- caller blocks: 123 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 47 -@item task readied -- returns to caller: 70 -@item task readied -- preempts caller: 95 -@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>64</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>787</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>60</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>41</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>40</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>123</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>47</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>70</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>95</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}{294} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{730} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{81} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {117} -\rtemscase{task readied -- returns to caller} - {118} -\rtemscase{task readied -- preempts caller} - {144} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{117} -\rtemscase{task readied -- returns to caller} - {116} -\rtemscase{task readied -- preempts caller} - {144} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{53} -\rtemscase{task readied -- returns to caller} - {122} -\rtemscase{task readied -- preempts caller} - {146} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{93} -\rtemscase{not available -- NO\_WAIT} - {45} -\rtemscase{not available -- caller blocks} - {127} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{29} -\rtemscase{messages flushed}{41} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 294 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 730 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 81 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 117 -@item task readied -- returns to caller: 118 -@item task readied -- preempts caller: 144 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 117 -@item task readied -- returns to caller: 116 -@item task readied -- preempts caller: 144 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 53 -@item task readied -- returns to caller: 122 -@item task readied -- preempts caller: 146 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 93 -@item not available -- NO_WAIT: 45 -@item not available -- caller blocks: 127 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 29 -@item messages flushed: 41 -@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>294</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>730</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>81</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>117</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>118</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>144</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>117</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>116</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>144</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>53</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>122</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>146</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>93</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>45</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>127</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>29</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>41</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}{26} -\rtemscase{task readied -- returns to caller} - {60} -\rtemscase{task readied -- preempts caller} - {89} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{<1} -\rtemscase{available}{27} -\rtemscase{not available -- NO\_WAIT}{25} -\rtemscase{not available -- caller blocks} - {94} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 26 -@item task readied -- returns to caller: 60 -@item task readied -- preempts caller: 89 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: <1 -@item available: 27 -@item not available -- NO_WAIT: 25 -@item not available -- caller blocks: 94 -@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>26</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>60</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>89</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><1</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>27</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>25</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>94</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{13} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{34} -\rtemscase{signal to self}{59} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {39} -\rtemscase{returns to preempting task} - {60} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 13 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 34 -@item signal to self: 59 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 39 -@item returns to preempting task: 60 -@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>13</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>34</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>59</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> - 39</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 60</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{83} -\rtemsonecase{PARTITION\_IDENT}{730} -\rtemsonecase{PARTITION\_DELETE}{40} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{34} -\rtemscase{not available}{33} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {33} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 83 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 730 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 40 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 34 -@item not available: 33 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 40 -@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>83</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>730</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>40</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>34</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>33</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>33</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}{68} -\rtemsonecase{REGION\_IDENT}{739} -\rtemsonecase{REGION\_DELETE}{39} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{49} -\rtemscase{not available -- NO\_WAIT} - {45} -\rtemscase{not available -- caller blocks} - {127} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{52} -\rtemscase{task readied -- returns to caller} - {113} -\rtemscase{task readied -- preempts caller} - {138} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 68 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 739 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 49 -@item not available -- NO_WAIT: 45 -@item not available -- caller blocks: 127 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 52 -@item task readied -- returns to caller: 113 -@item task readied -- preempts caller: 138 -@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>68</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>739</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>49</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 45</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 127</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>52</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 113</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 138</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}{39} -\rtemsonecase{PORT\_IDENT}{728} -\rtemsonecase{PORT\_DELETE}{39} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {26} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {26} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 39 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 728 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 26 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 26 -@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>39</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>728</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>26</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>26</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}{4} -\rtemsonecase{IO\_OPEN}{1} -\rtemsonecase{IO\_CLOSE}{1} -\rtemsonecase{IO\_READ}{<1} -\rtemsonecase{IO\_WRITE}{1} -\rtemsonecase{IO\_CONTROL}{1} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 4 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 1 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 1 -@end itemize - -@item IO_READ -@itemize - -@item only case: <1 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 1 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 1 -@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>4</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center><1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>1</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}{36} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{725} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{39} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{53} -\rtemscase{inactive}{49} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {53} -\rtemscase{conclude period -- caller blocks} - {82} -\rtemscase{obtain status}{30} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 36 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 725 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 39 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 53 -@item inactive: 49 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 53 -@item conclude period -- caller blocks: 82 -@item obtain status: 30 -@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>36</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>725</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>53</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>49</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> - 53</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 82</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>30</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/i960/timeCVME961_.t b/doc/supplements/i960/timeCVME961_.t deleted file mode 100644 index 22c0dafe7a..0000000000 --- a/doc/supplements/i960/timeCVME961_.t +++ /dev/null @@ -1,1422 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter CVME961 Timing Data - -NOTE: The CVME961 board used by the RTEMS Project to -obtain i960CA times is currently broken. The information in -this chapter was obtained using Release 3.2.1. - -@section Introduction - -The timing data for the i960CA version of RTEMS is -provided along with the target dependent aspects concerning the -gathering of the timing data. The hardware platform used to -gather the times is described to give the reader a better -understanding of each directive time provided. Also, provided -is a description of the interrupt latency and the context -switch times as they pertain to the i960CA version of RTEMS. - -@section Hardware Platform - -All times reported except for the maximum period -interrupts are disabled by RTEMS were measured using a Cyclone -Microsystems CVME961 board. The CVME961 is a 33 Mhz board with -dynamic RAM which has two wait state dynamic memory (four CPU -cycles) for read accesses and one wait state (two CPU cycles) -for write accesses. The Z8536 on a SQUALL SQSIO4 mezzanine -board was used to measure elapsed time with one-half microsecond -resolution. All sources of hardware interrupts are disabled, -although the interrupt level of the i960CA allows all interrupts. - -The maximum interrupt disable period was measured by -summing the number of CPU cycles required by each assembly -language instruction executed while interrupts were disabled. -Zero wait state memory was assumed. The total CPU cycles -executed with interrupts disabled, including the instructions to -disable and enable interrupts, was divided by 33 to simulate a -i960CA executing at 33 Mhz with zero wait states. - -@section Interrupt Latency - -The maximum period with interrupts disabled within -RTEMS is less than -2.5 microseconds including the instructions -which disable and re-enable interrupts. The time required for -the i960CA to generate an interrupt using the sysctl -instruction, vectoring to an interrupt handler, and for the -RTEMS entry overhead before invoking the user's interrupt -handler are a total of 37 -microseconds. These combine to yield -a worst case interrupt latency of less than -2.5 + 37 -microseconds. [NOTE: The maximum period with interrupts -disabled within RTEMS was last calculated for Release -3.2.1.] - -It should be noted again that the maximum period with -interrupts disabled within RTEMS is hand-timed. The interrupt -vector and entry overhead time was generated on the Cyclone -CVME961 benchmark platform using the sysctl instruction as the -interrupt source. - -@section Context Switch - -The RTEMS processor context switch time is 1 -microseconds on the Cyclone CVME961 benchmark platform. This -time represents the raw context switch time with no user -extensions configured. Additional execution time is required -when a TSWITCH user extension is configured. The use of the -TSWITCH extension is application dependent. Thus, its execution -time is not considered part of the base context switch time. - -The CVME961 has no hardware floating point capability -and floating point tasks are not supported. - -The following table summarizes the context switch -times for the CVME961 benchmark platform: - -@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-1999. -@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}{1} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{2} -\rtemscase{save initialized, restore initialized}{3} -\rtemscase{save idle, restore initialized}{4} -\rtemscase{save idle, restore idle}{5} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 1 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 2 -@item save initialized, restore initialized: 3 -@item save idle, restore initialized: 4 -@item save idle, restore idle: 4 -@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>1</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>2</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>3</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>4</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>5</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}{6} -\rtemsonecase{TASK\_IDENT}{7} -\rtemsonecase{TASK\_START}{8} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{9} -\rtemscase{suspended task -- returns to caller} - {9} -\rtemscase{blocked task -- returns to caller} - {10} -\rtemscase{ready task -- returns to caller} - {11} -\rtemscase{suspended task -- preempts caller} - {12} -\rtemscase{blocked task -- preempts caller} - {13} -\rtemscase{ready task -- preempts caller} - {14} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{15} -\rtemscase{suspended task}{16} -\rtemscase{blocked task}{17} -\rtemscase{ready task}{18} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{19} -\rtemscase{returns to caller}{20} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {21} -\rtemscase{task readied -- preempts caller} - {22} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {23} -\rtemscase{returns to caller}{24} -\rtemscase{preempts caller}{25} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{26} -\rtemscase{no reschedule}{27} -\rtemscase{reschedule -- returns to caller} - {28} -\rtemscase{reschedule -- preempts caller} - {29} -\rtemsonecase{TASK\_GET\_NOTE}{30} -\rtemsonecase{TASK\_SET\_NOTE}{31} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {32} -\rtemscase{yield -- preempts caller} - {33} -\rtemsonecase{TASK\_WAKE\_WHEN}{34} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 6 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 7 -@end itemize - -@item TASK_START -@itemize - -@item only case: 8 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 9 -@item suspended task -- returns to caller: 9 -@item blocked task -- returns to caller: 10 -@item ready task -- returns to caller: 11 -@item suspended task -- preempts caller: 12 -@item blocked task -- preempts caller: 13 -@item ready task -- preempts caller: 14 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 15 -@item suspended task: 16 -@item blocked task: 17 -@item ready task: 18 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 19 -@item returns to caller: 20 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 21 -@item task readied -- preempts caller: 22 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 23 -@item returns to caller: 24 -@item preempts caller: 25 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 26 -@item no reschedule: 27 -@item reschedule -- returns to caller: 28 -@item reschedule -- preempts caller: 29 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 30 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 31 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 32 -@item yield -- preempts caller: 33 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 34 -@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>6</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>7</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>8</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>9</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>10</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>11</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>12</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>13</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>14</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>15</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>16</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>17</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>18</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>19</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>20</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>21</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>22</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>23</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>24</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>25</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>26</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>27</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>28</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>29</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>30</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>31</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>32</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>33</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>34</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}{35} -\rtemscase{returns to interrupted task} - {36} -\rtemscase{returns to preempting task} - {37} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{38} -\rtemscase{returns to interrupted task} - {39} -\rtemscase{returns to preempting task} - {40} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 35 -@item returns to interrupted task: 36 -@item returns to preempting task: 37 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: 38 -@item returns to interrupted task: 39 -@item returns to preempting task: 40 -@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>35</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>36</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>37</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>38</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>39</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>40</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{41} -\rtemsonecase{CLOCK\_GET}{42} -\rtemsonecase{CLOCK\_TICK}{43} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 41 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 42 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 43 -@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>41</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>42</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>43</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{44} -\rtemsonecase{TIMER\_IDENT}{45} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{46} -\rtemscase{active}{47} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{48} -\rtemscase{active}{49} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{50} -\rtemscase{active}{51} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{52} -\rtemscase{active}{53} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{54} -\rtemscase{active}{55} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 44 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 45 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 46 -@item active: 47 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 48 -@item active: 49 -@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>44</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>45</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>46</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>47</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>48</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>49</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>50</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>51</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>52</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>53</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>54</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>55</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}{56} -\rtemsonecase{SEMAPHORE\_IDENT}{57} -\rtemsonecase{SEMAPHORE\_DELETE}{58} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{59} -\rtemscase{not available -- NO\_WAIT} - {60} -\rtemscase{not available -- caller blocks} - {61} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{62} -\rtemscase{task readied -- returns to caller} - {63} -\rtemscase{task readied -- preempts caller} - {64} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 56 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 57 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 58 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 59 -@item not available -- NO_WAIT: 60 -@item not available -- caller blocks: 61 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 62 -@item task readied -- returns to caller: 63 -@item task readied -- preempts caller: 64 -@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>56</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>57</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>59</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>60</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>61</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>62</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>63</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>64</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}{65} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{66} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{67} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {68} -\rtemscase{task readied -- returns to caller} - {69} -\rtemscase{task readied -- preempts caller} - {70} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{71} -\rtemscase{task readied -- returns to caller} - {72} -\rtemscase{task readied -- preempts caller} - {73} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{74} -\rtemscase{task readied -- returns to caller} - {75} -\rtemscase{task readied -- preempts caller} - {76} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{77} -\rtemscase{not available -- NO\_WAIT} - {78} -\rtemscase{not available -- caller blocks} - {79} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{80} -\rtemscase{messages flushed}{81} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 65 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 66 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 67 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 68 -@item task readied -- returns to caller: 69 -@item task readied -- preempts caller: 70 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 71 -@item task readied -- returns to caller: 72 -@item task readied -- preempts caller: 73 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 74 -@item task readied -- returns to caller: 75 -@item task readied -- preempts caller: 76 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 77 -@item not available -- NO_WAIT: 78 -@item not available -- caller blocks: 79 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 80 -@item messages flushed: 81 -@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>65</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>66</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>67</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>68</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>69</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>70</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>71</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>72</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>73</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>74</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>75</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>76</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>77</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>78</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>79</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>80</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>81</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}{82} -\rtemscase{task readied -- returns to caller} - {83} -\rtemscase{task readied -- preempts caller} - {84} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{85} -\rtemscase{available}{86} -\rtemscase{not available -- NO\_WAIT}{87} -\rtemscase{not available -- caller blocks} - {88} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 82 -@item task readied -- returns to caller: 83 -@item task readied -- preempts caller: 84 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 85 -@item available: 86 -@item not available -- NO_WAIT: 87 -@item not available -- caller blocks: 88 -@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>82</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>83</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>84</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>85</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>86</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>87</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>88</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{89} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{90} -\rtemscase{signal to self}{91} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {92} -\rtemscase{returns to preempting task} - {93} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 89 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 90 -@item signal to self: 91 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 92 -@item returns to preempting task: 93 -@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>89</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>90</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>91</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> - 92</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 93</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{94} -\rtemsonecase{PARTITION\_IDENT}{95} -\rtemsonecase{PARTITION\_DELETE}{96} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{97} -\rtemscase{not available}{98} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {98} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 94 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 95 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 96 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 97 -@item not available: 98 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 99 -@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>94</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>95</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>96</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>97</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>98</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>98</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}{100} -\rtemsonecase{REGION\_IDENT}{101} -\rtemsonecase{REGION\_DELETE}{102} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{103} -\rtemscase{not available -- NO\_WAIT} - {104} -\rtemscase{not available -- caller blocks} - {105} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{106} -\rtemscase{task readied -- returns to caller} - {107} -\rtemscase{task readied -- preempts caller} - {108} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 100 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 101 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 102 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 103 -@item not available -- NO_WAIT: 104 -@item not available -- caller blocks: 105 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 106 -@item task readied -- returns to caller: 107 -@item task readied -- preempts caller: 108 -@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>100</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>101</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>102</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>103</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 104</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 105</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>106</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 107</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 108</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}{109} -\rtemsonecase{PORT\_IDENT}{110} -\rtemsonecase{PORT\_DELETE}{111} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {112} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {113} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 109 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 110 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 111 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 112 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 113 -@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>109</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>110</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>111</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>112</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>113</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}{114} -\rtemsonecase{IO\_OPEN}{115} -\rtemsonecase{IO\_CLOSE}{116} -\rtemsonecase{IO\_READ}{117} -\rtemsonecase{IO\_WRITE}{118} -\rtemsonecase{IO\_CONTROL}{119} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 114 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 115 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 116 -@end itemize - -@item IO_READ -@itemize - -@item only case: 117 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 118 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 119 -@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>114</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>115</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>116</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>117</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>118</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>119</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}{120} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{121} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{122} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{123} -\rtemscase{inactive}{124} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {125} -\rtemscase{conclude period -- caller blocks} - {126} -\rtemscase{obtain status}{127} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 120 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 121 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 122 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 123 -@item inactive: 124 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 125 -@item conclude period -- caller blocks: 126 -@item obtain status: 127 -@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>120</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>121</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>122</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>123</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>124</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> - 125</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 126</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>127</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/m68k/timeMVME136_.t b/doc/supplements/m68k/timeMVME136_.t deleted file mode 100644 index ea68b5389f..0000000000 --- a/doc/supplements/m68k/timeMVME136_.t +++ /dev/null @@ -1,1442 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter MVME136 Timing Data - -@section Introduction - -The timing data for the MC68020 version of RTEMS is -provided along with the target dependent aspects concerning the -gathering of the timing data. The hardware platform used to -gather the times is described to give the reader a better -understanding of each directive time provided. Also, provided -is a description of the interrupt latency and the context switch -times as they pertain to the MC68020 version of RTEMS. - -@section Hardware Platform - -All times reported except for the maximum period -interrupts are disabled by RTEMS were measured using a Motorola -MVME135 CPU board. The MVME135 is a 20Mhz board with one wait -state dynamic memory and a MC68881 numeric coprocessor. The -Zilog 8036 countdown timer on this board was used to measure -elapsed time with a one-half microsecond resolution. All -sources of hardware interrupts were disabled, although the -interrupt level of the MC68020 allows all interrupts. - -The maximum period interrupts are disabled was -measured by summing the number of CPU cycles required by each -assembly language instruction executed while interrupts were -disabled. The worst case times of the MC68020 microprocessor -were used for each instruction. Zero wait state memory was -assumed. The total CPU cycles executed with interrupts -disabled, including the instructions to disable and enable -interrupts, was divided by 20 to simulate a 20Mhz MC68020. It -should be noted that the worst case instruction times for the -MC68020 assume that the internal cache is disabled and that no -instructions overlap. - -@section Interrupt Latency - -The maximum period with interrupts disabled within -RTEMS is less than TBD -microseconds including the instructions -which disable and re-enable interrupts. The time required for -the MC68020 to vector an interrupt and for the RTEMS entry -overhead before invoking the user's interrupt handler are a -total of 9 -microseconds. These combine to yield a worst case -interrupt latency of less than -TBD + 9 -microseconds at 20Mhz. [NOTE: The maximum period with interrupts -disabled was last determined for Release -3.2.1.] - -It should be noted again that the maximum period with -interrupts disabled within RTEMS is hand-timed and based upon -worst case (i.e. CPU cache disabled and no instruction overlap) -times for a 20Mhz MC68020. The interrupt vector and entry -overhead time was generated on an MVME135 benchmark platform -using the Multiprocessing Communications registers to generate -as the interrupt source. - -@section Context Switch - -The RTEMS processor context switch time is 35 -microseconds on the MVME135 benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The exact amount of time required to save and restore -floating point context is dependent on whether an MC68881 or -MC68882 is being used as well as the state of the numeric -coprocessor. These numeric coprocessors define three operating -states: initialized, idle, and busy. RTEMS places the -coprocessor in the initialized state when a task is started or -restarted. Once the task has utilized the coprocessor, it is in -the idle state when floating point instructions are not -executing and the busy state when floating point instructions -are executing. The state of the coprocessor is task specific. - -The following table summarizes the context switch -times for the MVME135 benchmark platform: - -@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-1999. -@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}{35} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{39} -\rtemscase{save initialized, restore initialized}{66} -\rtemscase{save idle, restore initialized}{66} -\rtemscase{save idle, restore idle}{68} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 35 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 39 -@item save initialized, restore initialized: 66 -@item save idle, restore initialized: 66 -@item save idle, restore idle: 66 -@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>35</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>39</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>68</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}{148} -\rtemsonecase{TASK\_IDENT}{350} -\rtemsonecase{TASK\_START}{76} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{95} -\rtemscase{suspended task -- returns to caller} - {89} -\rtemscase{blocked task -- returns to caller} - {124} -\rtemscase{ready task -- returns to caller} - {92} -\rtemscase{suspended task -- preempts caller} - {125} -\rtemscase{blocked task -- preempts caller} - {149} -\rtemscase{ready task -- preempts caller} - {142} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{170} -\rtemscase{suspended task}{138} -\rtemscase{blocked task}{143} -\rtemscase{ready task}{144} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{71} -\rtemscase{returns to caller}{43} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {45} -\rtemscase{task readied -- preempts caller} - {67} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {31} -\rtemscase{returns to caller}{64} -\rtemscase{preempts caller}{106} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{14} -\rtemscase{no reschedule}{16} -\rtemscase{reschedule -- returns to caller} - {23} -\rtemscase{reschedule -- preempts caller} - {60} -\rtemsonecase{TASK\_GET\_NOTE}{33} -\rtemsonecase{TASK\_SET\_NOTE}{33} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {16} -\rtemscase{yield -- preempts caller} - {56} -\rtemsonecase{TASK\_WAKE\_WHEN}{117} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 148 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 350 -@end itemize - -@item TASK_START -@itemize - -@item only case: 76 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 95 -@item suspended task -- returns to caller: 89 -@item blocked task -- returns to caller: 124 -@item ready task -- returns to caller: 92 -@item suspended task -- preempts caller: 125 -@item blocked task -- preempts caller: 149 -@item ready task -- preempts caller: 142 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 170 -@item suspended task: 138 -@item blocked task: 143 -@item ready task: 144 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 71 -@item returns to caller: 43 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 45 -@item task readied -- preempts caller: 67 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 31 -@item returns to caller: 64 -@item preempts caller: 106 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 14 -@item no reschedule: 16 -@item reschedule -- returns to caller: 23 -@item reschedule -- preempts caller: 60 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 16 -@item yield -- preempts caller: 56 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 117 -@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>148</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>350</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>76</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>95</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>89</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>124</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>92</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>125</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>149</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>142</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>170</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>138</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>143</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>144</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>71</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>43</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>45</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>67</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>31</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>64</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>106</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>14</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>16</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>60</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>33</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>33</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>16</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>56</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>117</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}{12} -\rtemscase{returns to interrupted task} - {9} -\rtemscase{returns to preempting task} - {9} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{<1} -\rtemscase{returns to interrupted task} - {8} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 12 -@item returns to interrupted task: 9 -@item returns to preempting task: 9 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: <1 -@item returns to interrupted task: 8 -@item returns to preempting task: 54 -@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>12</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>9</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><1</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>8</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{86} -\rtemsonecase{CLOCK\_GET}{1} -\rtemsonecase{CLOCK\_TICK}{17} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 86 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 1 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 17 -@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>86</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>17</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{28} -\rtemsonecase{TIMER\_IDENT}{343} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{43} -\rtemscase{active}{47} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{58} -\rtemscase{active}{61} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{88} -\rtemscase{active}{88} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{54} -\rtemscase{active}{58} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{31} -\rtemscase{active}{34} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 28 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 343 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 43 -@item active: 47 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 58 -@item active: 61 -@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>28</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>343</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>47</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>58</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>61</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>88</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>88</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>54</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>31</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>34</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}{60} -\rtemsonecase{SEMAPHORE\_IDENT}{367} -\rtemsonecase{SEMAPHORE\_DELETE}{58} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{38} -\rtemscase{not available -- NO\_WAIT} - {38} -\rtemscase{not available -- caller blocks} - {109} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{44} -\rtemscase{task readied -- returns to caller} - {66} -\rtemscase{task readied -- preempts caller} - {87} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 60 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 367 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 58 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 38 -@item not available -- NO_WAIT: 38 -@item not available -- caller blocks: 109 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 44 -@item task readied -- returns to caller: 66 -@item task readied -- preempts caller: 87 -@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>60</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>367</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>109</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>44</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>66</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>87</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}{200} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{341} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{80} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {97} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{96} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{53} -\rtemscase{task readied -- returns to caller} - {111} -\rtemscase{task readied -- preempts caller} - {133} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{79} -\rtemscase{not available -- NO\_WAIT} - {43} -\rtemscase{not available -- caller blocks} - {114} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{29} -\rtemscase{messages flushed}{39} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 200 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 80 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 97 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 96 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 53 -@item task readied -- returns to caller: 111 -@item task readied -- preempts caller: 133 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 79 -@item not available -- NO_WAIT: 43 -@item not available -- caller blocks: 114 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 29 -@item messages flushed: 39 -@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>200</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>80</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>97</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>96</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>53</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>111</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>133</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>79</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>114</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>29</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>39</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}{24} -\rtemscase{task readied -- returns to caller} - {60} -\rtemscase{task readied -- preempts caller} - {84} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{1} -\rtemscase{available}{28} -\rtemscase{not available -- NO\_WAIT}{23} -\rtemscase{not available -- caller blocks} - {84} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 24 -@item task readied -- returns to caller: 60 -@item task readied -- preempts caller: 84 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 1 -@item available: 28 -@item not available -- NO_WAIT: 23 -@item not available -- caller blocks: 84 -@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>24</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>60</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>84</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>1</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>28</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>84</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{15} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{37} -\rtemscase{signal to self}{55} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {37} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 15 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 37 -@item signal to self: 55 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 37 -@item returns to preempting task: 54 -@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>15</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>37</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>55</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> - 37</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{70} -\rtemsonecase{PARTITION\_IDENT}{341} -\rtemsonecase{PARTITION\_DELETE}{42} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{35} -\rtemscase{not available}{33} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {33} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 70 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 42 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 35 -@item not available: 33 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 43 -@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>70</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>42</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>35</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>33</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>33</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}{63} -\rtemsonecase{REGION\_IDENT}{348} -\rtemsonecase{REGION\_DELETE}{39} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{52} -\rtemscase{not available -- NO\_WAIT} - {49} -\rtemscase{not available -- caller blocks} - {123} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{54} -\rtemscase{task readied -- returns to caller} - {114} -\rtemscase{task readied -- preempts caller} - {136} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 63 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 348 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 52 -@item not available -- NO_WAIT: 49 -@item not available -- caller blocks: 123 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 54 -@item task readied -- returns to caller: 114 -@item task readied -- preempts caller: 136 -@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>63</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>348</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>52</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 49</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 123</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>54</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 114</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 136</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}{35} -\rtemsonecase{PORT\_IDENT}{340} -\rtemsonecase{PORT\_DELETE}{39} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {26} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {27} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 35 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 340 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 26 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 27 -@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>35</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>340</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>26</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>27</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}{4} -\rtemsonecase{IO\_OPEN}{2} -\rtemsonecase{IO\_CLOSE}{1} -\rtemsonecase{IO\_READ}{2} -\rtemsonecase{IO\_WRITE}{3} -\rtemsonecase{IO\_CONTROL}{2} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 4 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 2 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 1 -@end itemize - -@item IO_READ -@itemize - -@item only case: 2 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 3 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 2 -@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>4</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>3</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>2</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}{32} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{341} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{39} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{51} -\rtemscase{inactive}{48} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {54} -\rtemscase{conclude period -- caller blocks} - {74} -\rtemscase{obtain status}{31} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 32 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 39 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 51 -@item inactive: 48 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 54 -@item conclude period -- caller blocks: 74 -@item obtain status: 31 -@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>32</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>51</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>48</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> - 54</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 74</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>31</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/mips64orion/timeBSP_.t b/doc/supplements/mips64orion/timeBSP_.t deleted file mode 100644 index 3da8e44f40..0000000000 --- a/doc/supplements/mips64orion/timeBSP_.t +++ /dev/null @@ -1,1442 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter BSP_FOR_TIMES Timing Data - -@section Introduction - -The timing data for the XXX version of RTEMS is -provided along with the target dependent aspects concerning the -gathering of the timing data. The hardware platform used to -gather the times is described to give the reader a better -understanding of each directive time provided. Also, provided -is a description of the interrupt latency and the context switch -times as they pertain to the XXX version of RTEMS. - -@section Hardware Platform - -All times reported except for the maximum period -interrupts are disabled by RTEMS were measured using a Motorola -BSP_FOR_TIMES CPU board. The BSP_FOR_TIMES is a 20Mhz board with one wait -state dynamic memory and a XXX numeric coprocessor. The -Zilog 8036 countdown timer on this board was used to measure -elapsed time with a one-half microsecond resolution. All -sources of hardware interrupts were disabled, although the -interrupt level of the XXX allows all interrupts. - -The maximum period interrupts are disabled was -measured by summing the number of CPU cycles required by each -assembly language instruction executed while interrupts were -disabled. The worst case times of the XXX microprocessor -were used for each instruction. Zero wait state memory was -assumed. The total CPU cycles executed with interrupts -disabled, including the instructions to disable and enable -interrupts, was divided by 20 to simulate a 20Mhz XXX. It -should be noted that the worst case instruction times for the -XXX assume that the internal cache is disabled and that no -instructions overlap. - -@section Interrupt Latency - -The maximum period with interrupts disabled within -RTEMS is less than TBD -microseconds including the instructions -which disable and re-enable interrupts. The time required for -the XXX to vector an interrupt and for the RTEMS entry -overhead before invoking the user's interrupt handler are a -total of 9 -microseconds. These combine to yield a worst case -interrupt latency of less than -TBD + 9 -microseconds at 20Mhz. [NOTE: The maximum period with interrupts -disabled was last determined for Release -4.0.0.] - -It should be noted again that the maximum period with -interrupts disabled within RTEMS is hand-timed and based upon -worst case (i.e. CPU cache disabled and no instruction overlap) -times for a 20Mhz XXX. The interrupt vector and entry -overhead time was generated on an BSP_FOR_TIMES benchmark platform -using the Multiprocessing Communications registers to generate -as the interrupt source. - -@section Context Switch - -The RTEMS processor context switch time is 35 -microseconds on the BSP_FOR_TIMES benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The exact amount of time required to save and restore -floating point context is dependent on whether an XXX or -XXX is being used as well as the state of the numeric -coprocessor. These numeric coprocessors define three operating -states: initialized, idle, and busy. RTEMS places the -coprocessor in the initialized state when a task is started or -restarted. Once the task has utilized the coprocessor, it is in -the idle state when floating point instructions are not -executing and the busy state when floating point instructions -are executing. The state of the coprocessor is task specific. - -The following table summarizes the context switch -times for the BSP_FOR_TIMES benchmark platform: - -@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-1999. -@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}{35} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{39} -\rtemscase{save initialized, restore initialized}{66} -\rtemscase{save idle, restore initialized}{66} -\rtemscase{save idle, restore idle}{68} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 35 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 39 -@item save initialized, restore initialized: 66 -@item save idle, restore initialized: 66 -@item save idle, restore idle: 66 -@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>35</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>39</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>68</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}{148} -\rtemsonecase{TASK\_IDENT}{350} -\rtemsonecase{TASK\_START}{76} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{95} -\rtemscase{suspended task -- returns to caller} - {89} -\rtemscase{blocked task -- returns to caller} - {124} -\rtemscase{ready task -- returns to caller} - {92} -\rtemscase{suspended task -- preempts caller} - {125} -\rtemscase{blocked task -- preempts caller} - {149} -\rtemscase{ready task -- preempts caller} - {142} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{170} -\rtemscase{suspended task}{138} -\rtemscase{blocked task}{143} -\rtemscase{ready task}{144} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{71} -\rtemscase{returns to caller}{43} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {45} -\rtemscase{task readied -- preempts caller} - {67} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {31} -\rtemscase{returns to caller}{64} -\rtemscase{preempts caller}{106} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{14} -\rtemscase{no reschedule}{16} -\rtemscase{reschedule -- returns to caller} - {23} -\rtemscase{reschedule -- preempts caller} - {60} -\rtemsonecase{TASK\_GET\_NOTE}{33} -\rtemsonecase{TASK\_SET\_NOTE}{33} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {16} -\rtemscase{yield -- preempts caller} - {56} -\rtemsonecase{TASK\_WAKE\_WHEN}{117} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 148 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 350 -@end itemize - -@item TASK_START -@itemize - -@item only case: 76 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 95 -@item suspended task -- returns to caller: 89 -@item blocked task -- returns to caller: 124 -@item ready task -- returns to caller: 92 -@item suspended task -- preempts caller: 125 -@item blocked task -- preempts caller: 149 -@item ready task -- preempts caller: 142 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 170 -@item suspended task: 138 -@item blocked task: 143 -@item ready task: 144 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 71 -@item returns to caller: 43 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 45 -@item task readied -- preempts caller: 67 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 31 -@item returns to caller: 64 -@item preempts caller: 106 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 14 -@item no reschedule: 16 -@item reschedule -- returns to caller: 23 -@item reschedule -- preempts caller: 60 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 16 -@item yield -- preempts caller: 56 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 117 -@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>148</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>350</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>76</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>95</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>89</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>124</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>92</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>125</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>149</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>142</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>170</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>138</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>143</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>144</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>71</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>43</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>45</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>67</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>31</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>64</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>106</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>14</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>16</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>60</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>33</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>33</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>16</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>56</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>117</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}{12} -\rtemscase{returns to interrupted task} - {9} -\rtemscase{returns to preempting task} - {9} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{<1} -\rtemscase{returns to interrupted task} - {8} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 12 -@item returns to interrupted task: 9 -@item returns to preempting task: 9 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: <1 -@item returns to interrupted task: 8 -@item returns to preempting task: 54 -@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>12</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>9</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><1</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>8</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{86} -\rtemsonecase{CLOCK\_GET}{1} -\rtemsonecase{CLOCK\_TICK}{17} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 86 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 1 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 17 -@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>86</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>17</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{28} -\rtemsonecase{TIMER\_IDENT}{343} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{43} -\rtemscase{active}{47} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{58} -\rtemscase{active}{61} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{88} -\rtemscase{active}{88} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{54} -\rtemscase{active}{58} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{31} -\rtemscase{active}{34} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 28 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 343 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 43 -@item active: 47 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 58 -@item active: 61 -@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>28</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>343</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>47</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>58</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>61</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>88</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>88</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>54</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>31</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>34</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}{60} -\rtemsonecase{SEMAPHORE\_IDENT}{367} -\rtemsonecase{SEMAPHORE\_DELETE}{58} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{38} -\rtemscase{not available -- NO\_WAIT} - {38} -\rtemscase{not available -- caller blocks} - {109} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{44} -\rtemscase{task readied -- returns to caller} - {66} -\rtemscase{task readied -- preempts caller} - {87} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 60 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 367 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 58 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 38 -@item not available -- NO_WAIT: 38 -@item not available -- caller blocks: 109 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 44 -@item task readied -- returns to caller: 66 -@item task readied -- preempts caller: 87 -@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>60</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>367</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>109</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>44</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>66</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>87</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}{200} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{341} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{80} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {97} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{96} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{53} -\rtemscase{task readied -- returns to caller} - {111} -\rtemscase{task readied -- preempts caller} - {133} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{79} -\rtemscase{not available -- NO\_WAIT} - {43} -\rtemscase{not available -- caller blocks} - {114} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{29} -\rtemscase{messages flushed}{39} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 200 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 80 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 97 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 96 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 53 -@item task readied -- returns to caller: 111 -@item task readied -- preempts caller: 133 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 79 -@item not available -- NO_WAIT: 43 -@item not available -- caller blocks: 114 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 29 -@item messages flushed: 39 -@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>200</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>80</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>97</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>96</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>53</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>111</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>133</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>79</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>114</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>29</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>39</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}{24} -\rtemscase{task readied -- returns to caller} - {60} -\rtemscase{task readied -- preempts caller} - {84} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{1} -\rtemscase{available}{28} -\rtemscase{not available -- NO\_WAIT}{23} -\rtemscase{not available -- caller blocks} - {84} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 24 -@item task readied -- returns to caller: 60 -@item task readied -- preempts caller: 84 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 1 -@item available: 28 -@item not available -- NO_WAIT: 23 -@item not available -- caller blocks: 84 -@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>24</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>60</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>84</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>1</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>28</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>84</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{15} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{37} -\rtemscase{signal to self}{55} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {37} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 15 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 37 -@item signal to self: 55 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 37 -@item returns to preempting task: 54 -@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>15</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>37</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>55</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> - 37</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{70} -\rtemsonecase{PARTITION\_IDENT}{341} -\rtemsonecase{PARTITION\_DELETE}{42} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{35} -\rtemscase{not available}{33} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {33} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 70 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 42 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 35 -@item not available: 33 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 43 -@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>70</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>42</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>35</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>33</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>33</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}{63} -\rtemsonecase{REGION\_IDENT}{348} -\rtemsonecase{REGION\_DELETE}{39} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{52} -\rtemscase{not available -- NO\_WAIT} - {49} -\rtemscase{not available -- caller blocks} - {123} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{54} -\rtemscase{task readied -- returns to caller} - {114} -\rtemscase{task readied -- preempts caller} - {136} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 63 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 348 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 52 -@item not available -- NO_WAIT: 49 -@item not available -- caller blocks: 123 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 54 -@item task readied -- returns to caller: 114 -@item task readied -- preempts caller: 136 -@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>63</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>348</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>52</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 49</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 123</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>54</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 114</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 136</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}{35} -\rtemsonecase{PORT\_IDENT}{340} -\rtemsonecase{PORT\_DELETE}{39} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {26} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {27} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 35 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 340 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 26 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 27 -@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>35</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>340</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>26</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>27</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}{4} -\rtemsonecase{IO\_OPEN}{2} -\rtemsonecase{IO\_CLOSE}{1} -\rtemsonecase{IO\_READ}{2} -\rtemsonecase{IO\_WRITE}{3} -\rtemsonecase{IO\_CONTROL}{2} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 4 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 2 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 1 -@end itemize - -@item IO_READ -@itemize - -@item only case: 2 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 3 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 2 -@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>4</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>3</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>2</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}{32} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{341} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{39} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{51} -\rtemscase{inactive}{48} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {54} -\rtemscase{conclude period -- caller blocks} - {74} -\rtemscase{obtain status}{31} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 32 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 39 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 51 -@item inactive: 48 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 54 -@item conclude period -- caller blocks: 74 -@item obtain status: 31 -@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>32</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>51</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>48</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> - 54</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 74</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>31</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/powerpc/timeDMV177_.t b/doc/supplements/powerpc/timeDMV177_.t deleted file mode 100644 index 85bb6fb41b..0000000000 --- a/doc/supplements/powerpc/timeDMV177_.t +++ /dev/null @@ -1,1447 +0,0 @@ -@c -@c Timing information for the DMV177 -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter DMV177 Timing Data - -@section Introduction - -The timing data for RTEMS on the DY-4 DMV177 board -is provided along with the target -dependent aspects concerning the gathering of the timing data. -The hardware platform used to gather the times is described to -give the reader a better understanding of each directive time -provided. Also, provided is a description of the interrupt -latency and the context switch times as they pertain to the -PowerPC version of RTEMS. - -@section Hardware Platform - -All times reported in this chapter were measured using a DMV177 board. -All data and code caching was disabled. This results in very deterministic -times which represent the worst possible performance. Many embedded -applications disable caching to insure that execution times are -repeatable. Moreover, the JTAG port on certain revisions of the PowerPC -603e does not operate properly if caching is enabled. Thus during -development and debug, caching must be off. - -The PowerPC decrementer register was was used to gather -all timing information. In the PowerPC architecture, -this register typically counts -something like CPU cycles or is a function of the clock -speed. On the PPC603e decrements once for every four (4) bus cycles. -On the DMV177, the bus operates at a clock speed of -33 Mhz. This result in a very accurate number since it is a function of the -microprocessor itself. Thus all measurements in this -chapter are reported as the actual number of decrementer -clicks reported. - -To convert the numbers reported to microseconds, one should -divide the number reported by 8.650752. This number was derived as -shown below: - -@example -((33 * 1048576) / 1000000) / 4 = 8.650752 -@end example - -All sources of hardware interrupts were disabled, -although traps were enabled and the interrupt level of the -PowerPC allows all interrupts. - -@section Interrupt Latency - -The maximum period with traps disabled or the -processor interrupt level set to it's highest value inside RTEMS -is less than TBD -microseconds including the instructions which -disable and re-enable interrupts. The time required for the -PowerPC to vector an interrupt and for the RTEMS entry overhead -before invoking the user's trap handler are a total of -202 -microseconds. These combine to yield a worst case interrupt -latency of less than TBD + -202 microseconds at -100.0 Mhz. -[NOTE: The maximum period with interrupts disabled was last -determined for Release 4.0.0-lmco.] - -The maximum period with interrupts disabled within -RTEMS is hand-timed with some assistance from the PowerPC simulator. -The maximum period with interrupts disabled with RTEMS has not -been calculated on this target. - -The interrupt vector and entry overhead time was -generated on the PSIM benchmark platform using the PowerPC's -decrementer register. This register was programmed to generate -an interrupt after one countdown. - -@section Context Switch - -The RTEMS processor context switch time is 585 -bus cycle on the DMV177 benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The following table summarizes the context switch -times for the DMV177 benchmark platform: - -@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-1999. -@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}{585} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{730} -\rtemscase{save initialized, restore initialized}{478} -\rtemscase{save idle, restore initialized}{825} -\rtemscase{save idle, restore idle}{478} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 585 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 730 -@item save initialized, restore initialized: 478 -@item save idle, restore initialized: 825 -@item save idle, restore idle: 825 -@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>585</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>730</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>478</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>825</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>478</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}{2301} -\rtemsonecase{TASK\_IDENT}{2900} -\rtemsonecase{TASK\_START}{794} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{1137} -\rtemscase{suspended task -- returns to caller} - {906} -\rtemscase{blocked task -- returns to caller} - {1102} -\rtemscase{ready task -- returns to caller} - {928} -\rtemscase{suspended task -- preempts caller} - {1483} -\rtemscase{blocked task -- preempts caller} - {1640} -\rtemscase{ready task -- preempts caller} - {1601} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{2117} -\rtemscase{suspended task}{1555} -\rtemscase{blocked task}{1609} -\rtemscase{ready task}{1620} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{960} -\rtemscase{returns to caller}{433} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {960} -\rtemscase{task readied -- preempts caller} - {803} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {368} -\rtemscase{returns to caller}{633} -\rtemscase{preempts caller}{1211} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{184} -\rtemscase{no reschedule}{213} -\rtemscase{reschedule -- returns to caller} - {247} -\rtemscase{reschedule -- preempts caller} - {919} -\rtemsonecase{TASK\_GET\_NOTE}{382} -\rtemsonecase{TASK\_SET\_NOTE}{383} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {245} -\rtemscase{yield -- preempts caller} - {851} -\rtemsonecase{TASK\_WAKE\_WHEN}{1275} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 2301 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 2900 -@end itemize - -@item TASK_START -@itemize - -@item only case: 794 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 1137 -@item suspended task -- returns to caller: 906 -@item blocked task -- returns to caller: 1102 -@item ready task -- returns to caller: 928 -@item suspended task -- preempts caller: 1483 -@item blocked task -- preempts caller: 1640 -@item ready task -- preempts caller: 1601 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 2117 -@item suspended task: 1555 -@item blocked task: 1609 -@item ready task: 1620 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 960 -@item returns to caller: 433 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 960 -@item task readied -- preempts caller: 803 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 368 -@item returns to caller: 633 -@item preempts caller: 1211 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 184 -@item no reschedule: 213 -@item reschedule -- returns to caller: 247 -@item reschedule -- preempts caller: 919 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 382 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 383 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 245 -@item yield -- preempts caller: 851 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 1275 -@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>2301</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>2900</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>794</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>1137</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>906</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>1102</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>928</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>1483</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>1640</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>1601</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>2117</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>1555</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>1609</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>1620</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>960</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>433</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>960</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>803</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>368</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>633</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>1211</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>184</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>213</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>247</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>919</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>382</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>383</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>245</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>851</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>1275</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}{201} -\rtemscase{returns to interrupted task} - {206} -\rtemscase{returns to preempting task} - {202} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{201} -\rtemscase{returns to interrupted task} - {213} -\rtemscase{returns to preempting task} - {857} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 201 -@item returns to interrupted task: 206 -@item returns to preempting task: 202 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: 201 -@item returns to interrupted task: 213 -@item returns to preempting task: 857 -@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>201</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>206</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>202</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>201</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>213</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>857</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{792} -\rtemsonecase{CLOCK\_GET}{78} -\rtemsonecase{CLOCK\_TICK}{214} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 792 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 78 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 214 -@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>792</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>78</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>214</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{357} -\rtemsonecase{TIMER\_IDENT}{2828} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{432} -\rtemscase{active}{471} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{607} -\rtemscase{active}{646} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{766} -\rtemscase{active}{764} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{552} -\rtemscase{active}{766} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{339} -\rtemscase{active}{378} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 357 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 2828 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 432 -@item active: 471 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 607 -@item active: 646 -@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>357</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>2828</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>432</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>471</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>607</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>646</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>766</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>764</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>552</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>766</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>339</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>378</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}{571} -\rtemsonecase{SEMAPHORE\_IDENT}{3243} -\rtemsonecase{SEMAPHORE\_DELETE}{575} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{414} -\rtemscase{not available -- NO\_WAIT} - {414} -\rtemscase{not available -- caller blocks} - {1254} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{501} -\rtemscase{task readied -- returns to caller} - {636} -\rtemscase{task readied -- preempts caller} - {982} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 571 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 3243 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 575 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 414 -@item not available -- NO_WAIT: 414 -@item not available -- caller blocks: 1254 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 501 -@item task readied -- returns to caller: 636 -@item task readied -- preempts caller: 982 -@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>571</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>3243</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>575</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>414</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>414</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>1254</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>501</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>636</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>982</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}{2270} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{2828} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{708} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {923} -\rtemscase{task readied -- returns to caller} - {955} -\rtemscase{task readied -- preempts caller} - {1322} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{919} -\rtemscase{task readied -- returns to caller} - {955} -\rtemscase{task readied -- preempts caller} - {1322} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{589} -\rtemscase{task readied -- returns to caller} - {1079} -\rtemscase{task readied -- preempts caller} - {1435} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{755} -\rtemscase{not available -- NO\_WAIT} - {467} -\rtemscase{not available -- caller blocks} - {1283} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{369} -\rtemscase{messages flushed}{431} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 2270 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 2828 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 708 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 923 -@item task readied -- returns to caller: 955 -@item task readied -- preempts caller: 1322 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 919 -@item task readied -- returns to caller: 955 -@item task readied -- preempts caller: 1322 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 589 -@item task readied -- returns to caller: 1079 -@item task readied -- preempts caller: 1435 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 755 -@item not available -- NO_WAIT: 467 -@item not available -- caller blocks: 1283 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 369 -@item messages flushed: 431 -@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>2270</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>2828</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>708</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>923</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>955</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>1322</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>919</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>955</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>1322</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>589</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>1079</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>1435</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>755</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>467</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>1283</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>369</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>431</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}{354} -\rtemscase{task readied -- returns to caller} - {571} -\rtemscase{task readied -- preempts caller} - {946} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{43} -\rtemscase{available}{357} -\rtemscase{not available -- NO\_WAIT}{331} -\rtemscase{not available -- caller blocks} - {1043} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 354 -@item task readied -- returns to caller: 571 -@item task readied -- preempts caller: 946 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 43 -@item available: 357 -@item not available -- NO_WAIT: 331 -@item not available -- caller blocks: 1043 -@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>354</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>571</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>946</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>43</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>357</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>331</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>1043</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{267} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{408} -\rtemscase{signal to self}{607} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {464} -\rtemscase{returns to preempting task} - {752} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 267 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 408 -@item signal to self: 607 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 464 -@item returns to preempting task: 752 -@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>267</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>408</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>607</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> - 464</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 752</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{762} -\rtemsonecase{PARTITION\_IDENT}{2828} -\rtemsonecase{PARTITION\_DELETE}{426} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{394} -\rtemscase{not available}{376} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {376} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 762 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 2828 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 426 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 394 -@item not available: 376 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 420 -@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>762</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>2828</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>426</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>394</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>376</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>376</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}{614} -\rtemsonecase{REGION\_IDENT}{2878} -\rtemsonecase{REGION\_DELETE}{425} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{515} -\rtemscase{not available -- NO\_WAIT} - {472} -\rtemscase{not available -- caller blocks} - {1345} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{544} -\rtemscase{task readied -- returns to caller} - {935} -\rtemscase{task readied -- preempts caller} - {1296} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 614 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 2878 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 425 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 515 -@item not available -- NO_WAIT: 472 -@item not available -- caller blocks: 1345 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 544 -@item task readied -- returns to caller: 935 -@item task readied -- preempts caller: 1296 -@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>614</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>2878</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>425</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>515</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 472</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 1345</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>544</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 935</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 1296</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}{428} -\rtemsonecase{PORT\_IDENT}{2828} -\rtemsonecase{PORT\_DELETE}{421} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {339} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {339} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 428 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 2828 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 421 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 339 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 339 -@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>428</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>2828</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>421</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>339</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>339</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}{52} -\rtemsonecase{IO\_OPEN}{42} -\rtemsonecase{IO\_CLOSE}{44} -\rtemsonecase{IO\_READ}{42} -\rtemsonecase{IO\_WRITE}{44} -\rtemsonecase{IO\_CONTROL}{42} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 52 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 42 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 44 -@end itemize - -@item IO_READ -@itemize - -@item only case: 42 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 44 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 42 -@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>52</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>42</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>44</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>42</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>44</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>42</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}{388} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{2826} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{427} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{519} -\rtemscase{inactive}{465} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {556} -\rtemscase{conclude period -- caller blocks} - {842} -\rtemscase{obtain status}{377} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 388 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 2826 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 427 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 519 -@item inactive: 465 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 556 -@item conclude period -- caller blocks: 842 -@item obtain status: 377 -@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>388</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>2826</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>427</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>519</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>465</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> - 556</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 842</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>377</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/powerpc/timePSIM_.t b/doc/supplements/powerpc/timePSIM_.t deleted file mode 100644 index 76239b0c39..0000000000 --- a/doc/supplements/powerpc/timePSIM_.t +++ /dev/null @@ -1,1431 +0,0 @@ -@c -@c Timing information for PSIM -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter PSIM Timing Data - -@section Introduction - -The timing data for RTEMS on the PSIM target -is provided along with the target -dependent aspects concerning the gathering of the timing data. -The hardware platform used to gather the times is described to -give the reader a better understanding of each directive time -provided. Also, provided is a description of the interrupt -latency and the context switch times as they pertain to the -PowerPC version of RTEMS. - -@section Hardware Platform - -All times reported in this chapter were measured using the PowerPC -Instruction Simulator (PSIM). PSIM simulates a variety of PowerPC -6xx models with the PPC603e being used as the basis for the measurements -reported in this chapter. - -The PowerPC decrementer register was was used to gather -all timing information. In real hardware implementations -of the PowerPC architecture, this register would typically -count something like CPU cycles or be a function of the clock -speed. However, with PSIM each count of the decrementer register -represents an instruction. Thus all measurements in this -chapter are reported as the actual number of instructions -executed. All sources of hardware interrupts were disabled, -although traps were enabled and the interrupt level of the -PowerPC allows all interrupts. - -@section Interrupt Latency - -The maximum period with traps disabled or the -processor interrupt level set to it's highest value inside RTEMS -is less than TBD -microseconds including the instructions which -disable and re-enable interrupts. The time required for the -PowerPC to vector an interrupt and for the RTEMS entry overhead -before invoking the user's trap handler are a total of -61 -microseconds. These combine to yield a worst case interrupt -latency of less than TBD + -61 microseconds at -na Mhz. -[NOTE: The maximum period with interrupts disabled was last -determined for Release 4.0.0-lmco.] - -The maximum period with interrupts disabled within -RTEMS is hand-timed with some assistance from PSIM. The maximum -period with interrupts disabled with RTEMS occurs was not measured -on this target. - -The interrupt vector and entry overhead time was -generated on the PSIM benchmark platform using the PowerPC's -decrementer register. This register was programmed to generate -an interrupt after one countdown. - -@section Context Switch - -The RTEMS processor context switch time is 214 -instructions on the PSIM benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The following table summarizes the context switch -times for the PSIM benchmark platform: -@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-1999. -@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}{214} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{255} -\rtemscase{save initialized, restore initialized}{140} -\rtemscase{save idle, restore initialized}{140} -\rtemscase{save idle, restore idle}{290} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 214 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 255 -@item save initialized, restore initialized: 140 -@item save idle, restore initialized: 140 -@item save idle, restore idle: 140 -@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>214</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>255</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>140</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>140</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>290</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}{1075} -\rtemsonecase{TASK\_IDENT}{1637} -\rtemsonecase{TASK\_START}{345} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{483} -\rtemscase{suspended task -- returns to caller} - {396} -\rtemscase{blocked task -- returns to caller} - {491} -\rtemscase{ready task -- returns to caller} - {404} -\rtemscase{suspended task -- preempts caller} - {644} -\rtemscase{blocked task -- preempts caller} - {709} -\rtemscase{ready task -- preempts caller} - {686} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{941} -\rtemscase{suspended task}{703} -\rtemscase{blocked task}{723} -\rtemscase{ready task}{729} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{403} -\rtemscase{returns to caller}{181} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {191} -\rtemscase{task readied -- preempts caller} - {803} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {147} -\rtemscase{returns to caller}{264} -\rtemscase{preempts caller}{517} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{88} -\rtemscase{no reschedule}{110} -\rtemscase{reschedule -- returns to caller} - {112} -\rtemscase{reschedule -- preempts caller} - {386} -\rtemsonecase{TASK\_GET\_NOTE}{156} -\rtemsonecase{TASK\_SET\_NOTE}{155} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {92} -\rtemscase{yield -- preempts caller} - {348} -\rtemsonecase{TASK\_WAKE\_WHEN}{546} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 1075 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 1637 -@end itemize - -@item TASK_START -@itemize - -@item only case: 345 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 483 -@item suspended task -- returns to caller: 396 -@item blocked task -- returns to caller: 491 -@item ready task -- returns to caller: 404 -@item suspended task -- preempts caller: 644 -@item blocked task -- preempts caller: 709 -@item ready task -- preempts caller: 686 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 941 -@item suspended task: 703 -@item blocked task: 723 -@item ready task: 729 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 403 -@item returns to caller: 181 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 191 -@item task readied -- preempts caller: 803 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 147 -@item returns to caller: 264 -@item preempts caller: 517 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 88 -@item no reschedule: 110 -@item reschedule -- returns to caller: 112 -@item reschedule -- preempts caller: 386 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 156 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 155 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 92 -@item yield -- preempts caller: 348 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 546 -@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>1075</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>1637</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>345</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>483</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>396</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>491</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>404</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>644</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>709</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>686</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>941</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>703</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>723</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>729</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>403</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>181</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>191</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>803</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>147</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>264</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>517</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>88</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>110</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>112</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>386</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>156</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>155</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>92</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>348</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>546</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}{60} -\rtemscase{returns to interrupted task} - {62} -\rtemscase{returns to preempting task} - {61} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{55} -\rtemscase{returns to interrupted task} - {67} -\rtemscase{returns to preempting task} - {344} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 60 -@item returns to interrupted task: 62 -@item returns to preempting task: 61 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: 55 -@item returns to interrupted task: 67 -@item returns to preempting task: 344 -@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>60</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>62</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>61</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>55</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>67</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>344</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{340} -\rtemsonecase{CLOCK\_GET}{29} -\rtemsonecase{CLOCK\_TICK}{81} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 340 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 29 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 81 -@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>340</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>29</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>81</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{144} -\rtemsonecase{TIMER\_IDENT}{1595} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{197} -\rtemscase{active}{181} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{252} -\rtemscase{active}{269} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{333} -\rtemscase{active}{334} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{233} -\rtemscase{active}{250} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{156} -\rtemscase{active}{140} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 144 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 1595 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 197 -@item active: 181 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 252 -@item active: 269 -@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>144</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>1595</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>197</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>181</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>252</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>269</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>333</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>334</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>233</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>250</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>156</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>140</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}{223} -\rtemsonecase{SEMAPHORE\_IDENT}{1836} -\rtemsonecase{SEMAPHORE\_DELETE}{1836} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{175} -\rtemscase{not available -- NO\_WAIT} - {175} -\rtemscase{not available -- caller blocks} - {530} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{206} -\rtemscase{task readied -- returns to caller} - {272} -\rtemscase{task readied -- preempts caller} - {415} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 223 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 1836 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 1836 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 175 -@item not available -- NO_WAIT: 175 -@item not available -- caller blocks: 530 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 206 -@item task readied -- returns to caller: 272 -@item task readied -- preempts caller: 415 -@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>223</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>1836</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>1836</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>175</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>175</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>530</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>206</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>272</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>415</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}{1022} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{1596} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{308} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {421} -\rtemscase{task readied -- returns to caller} - {434} -\rtemscase{task readied -- preempts caller} - {581} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{422} -\rtemscase{task readied -- returns to caller} - {435} -\rtemscase{task readied -- preempts caller} - {582} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{244} -\rtemscase{task readied -- returns to caller} - {482} -\rtemscase{task readied -- preempts caller} - {630} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{345} -\rtemscase{not available -- NO\_WAIT} - {197} -\rtemscase{not available -- caller blocks} - {542} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{142} -\rtemscase{messages flushed}{170} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 1022 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 1596 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 308 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 421 -@item task readied -- returns to caller: 434 -@item task readied -- preempts caller: 581 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 422 -@item task readied -- returns to caller: 435 -@item task readied -- preempts caller: 582 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 244 -@item task readied -- returns to caller: 482 -@item task readied -- preempts caller: 630 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 345 -@item not available -- NO_WAIT: 197 -@item not available -- caller blocks: 542 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 142 -@item messages flushed: 170 -@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>1022</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>1596</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>308</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>421</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>434</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>581</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>422</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>435</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>582</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>244</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>482</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>630</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>345</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>197</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>542</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>142</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>170</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}{145} -\rtemscase{task readied -- returns to caller} - {250} -\rtemscase{task readied -- preempts caller} - {407} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{17} -\rtemscase{available}{133} -\rtemscase{not available -- NO\_WAIT}{130} -\rtemscase{not available -- caller blocks} - {442} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 145 -@item task readied -- returns to caller: 250 -@item task readied -- preempts caller: 407 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 17 -@item available: 133 -@item not available -- NO_WAIT: 130 -@item not available -- caller blocks: 442 -@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>145</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>250</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>407</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>17</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>133</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>130</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>442</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{95} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{165} -\rtemscase{signal to self}{275} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {216} -\rtemscase{returns to preempting task} - {329} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 95 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 165 -@item signal to self: 275 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 216 -@item returns to preempting task: 329 -@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>95</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>165</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>275</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> - 216</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 329</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{320} -\rtemsonecase{PARTITION\_IDENT}{1596} -\rtemsonecase{PARTITION\_DELETE}{168} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{157} -\rtemscase{not available}{149} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {149} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 320 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 1596 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 168 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 157 -@item not available: 149 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 172 -@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>320</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>1596</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>168</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>157</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>149</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>149</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}{239} -\rtemsonecase{REGION\_IDENT}{1625} -\rtemsonecase{REGION\_DELETE}{167} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{206} -\rtemscase{not available -- NO\_WAIT} - {190} -\rtemscase{not available -- caller blocks} - {556} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{230} -\rtemscase{task readied -- returns to caller} - {412} -\rtemscase{task readied -- preempts caller} - {562} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 239 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 1625 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 167 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 206 -@item not available -- NO_WAIT: 190 -@item not available -- caller blocks: 556 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 230 -@item task readied -- returns to caller: 412 -@item task readied -- preempts caller: 562 -@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>239</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>1625</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>167</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>206</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 190</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 556</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>230</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 412</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 562</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}{167} -\rtemsonecase{PORT\_IDENT}{1594} -\rtemsonecase{PORT\_DELETE}{165} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {133} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {134} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 167 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 1594 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 165 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 133 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 134 -@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>167</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>1594</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>165</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>133</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>134</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}{23} -\rtemsonecase{IO\_OPEN}{18} -\rtemsonecase{IO\_CLOSE}{18} -\rtemsonecase{IO\_READ}{18} -\rtemsonecase{IO\_WRITE}{18} -\rtemsonecase{IO\_CONTROL}{18} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 23 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 18 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 18 -@end itemize - -@item IO_READ -@itemize - -@item only case: 18 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 18 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 18 -@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>23</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>18</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>18</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>18</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>18</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>18</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}{149} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{1595} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{169} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{212} -\rtemscase{inactive}{186} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {226} -\rtemscase{conclude period -- caller blocks} - {362} -\rtemscase{obtain status}{142} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 149 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 1595 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 169 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 212 -@item inactive: 186 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 226 -@item conclude period -- caller blocks: 362 -@item obtain status: 142 -@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>149</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>1595</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>169</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>212</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>186</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> - 226</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 362</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>142</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/sh/timeBSP_.t b/doc/supplements/sh/timeBSP_.t deleted file mode 100644 index 3da8e44f40..0000000000 --- a/doc/supplements/sh/timeBSP_.t +++ /dev/null @@ -1,1442 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter BSP_FOR_TIMES Timing Data - -@section Introduction - -The timing data for the XXX version of RTEMS is -provided along with the target dependent aspects concerning the -gathering of the timing data. The hardware platform used to -gather the times is described to give the reader a better -understanding of each directive time provided. Also, provided -is a description of the interrupt latency and the context switch -times as they pertain to the XXX version of RTEMS. - -@section Hardware Platform - -All times reported except for the maximum period -interrupts are disabled by RTEMS were measured using a Motorola -BSP_FOR_TIMES CPU board. The BSP_FOR_TIMES is a 20Mhz board with one wait -state dynamic memory and a XXX numeric coprocessor. The -Zilog 8036 countdown timer on this board was used to measure -elapsed time with a one-half microsecond resolution. All -sources of hardware interrupts were disabled, although the -interrupt level of the XXX allows all interrupts. - -The maximum period interrupts are disabled was -measured by summing the number of CPU cycles required by each -assembly language instruction executed while interrupts were -disabled. The worst case times of the XXX microprocessor -were used for each instruction. Zero wait state memory was -assumed. The total CPU cycles executed with interrupts -disabled, including the instructions to disable and enable -interrupts, was divided by 20 to simulate a 20Mhz XXX. It -should be noted that the worst case instruction times for the -XXX assume that the internal cache is disabled and that no -instructions overlap. - -@section Interrupt Latency - -The maximum period with interrupts disabled within -RTEMS is less than TBD -microseconds including the instructions -which disable and re-enable interrupts. The time required for -the XXX to vector an interrupt and for the RTEMS entry -overhead before invoking the user's interrupt handler are a -total of 9 -microseconds. These combine to yield a worst case -interrupt latency of less than -TBD + 9 -microseconds at 20Mhz. [NOTE: The maximum period with interrupts -disabled was last determined for Release -4.0.0.] - -It should be noted again that the maximum period with -interrupts disabled within RTEMS is hand-timed and based upon -worst case (i.e. CPU cache disabled and no instruction overlap) -times for a 20Mhz XXX. The interrupt vector and entry -overhead time was generated on an BSP_FOR_TIMES benchmark platform -using the Multiprocessing Communications registers to generate -as the interrupt source. - -@section Context Switch - -The RTEMS processor context switch time is 35 -microseconds on the BSP_FOR_TIMES benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The exact amount of time required to save and restore -floating point context is dependent on whether an XXX or -XXX is being used as well as the state of the numeric -coprocessor. These numeric coprocessors define three operating -states: initialized, idle, and busy. RTEMS places the -coprocessor in the initialized state when a task is started or -restarted. Once the task has utilized the coprocessor, it is in -the idle state when floating point instructions are not -executing and the busy state when floating point instructions -are executing. The state of the coprocessor is task specific. - -The following table summarizes the context switch -times for the BSP_FOR_TIMES benchmark platform: - -@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-1999. -@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}{35} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{39} -\rtemscase{save initialized, restore initialized}{66} -\rtemscase{save idle, restore initialized}{66} -\rtemscase{save idle, restore idle}{68} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 35 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 39 -@item save initialized, restore initialized: 66 -@item save idle, restore initialized: 66 -@item save idle, restore idle: 66 -@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>35</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>39</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>66</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>68</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}{148} -\rtemsonecase{TASK\_IDENT}{350} -\rtemsonecase{TASK\_START}{76} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{95} -\rtemscase{suspended task -- returns to caller} - {89} -\rtemscase{blocked task -- returns to caller} - {124} -\rtemscase{ready task -- returns to caller} - {92} -\rtemscase{suspended task -- preempts caller} - {125} -\rtemscase{blocked task -- preempts caller} - {149} -\rtemscase{ready task -- preempts caller} - {142} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{170} -\rtemscase{suspended task}{138} -\rtemscase{blocked task}{143} -\rtemscase{ready task}{144} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{71} -\rtemscase{returns to caller}{43} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {45} -\rtemscase{task readied -- preempts caller} - {67} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {31} -\rtemscase{returns to caller}{64} -\rtemscase{preempts caller}{106} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{14} -\rtemscase{no reschedule}{16} -\rtemscase{reschedule -- returns to caller} - {23} -\rtemscase{reschedule -- preempts caller} - {60} -\rtemsonecase{TASK\_GET\_NOTE}{33} -\rtemsonecase{TASK\_SET\_NOTE}{33} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {16} -\rtemscase{yield -- preempts caller} - {56} -\rtemsonecase{TASK\_WAKE\_WHEN}{117} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 148 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 350 -@end itemize - -@item TASK_START -@itemize - -@item only case: 76 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 95 -@item suspended task -- returns to caller: 89 -@item blocked task -- returns to caller: 124 -@item ready task -- returns to caller: 92 -@item suspended task -- preempts caller: 125 -@item blocked task -- preempts caller: 149 -@item ready task -- preempts caller: 142 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 170 -@item suspended task: 138 -@item blocked task: 143 -@item ready task: 144 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 71 -@item returns to caller: 43 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 45 -@item task readied -- preempts caller: 67 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 31 -@item returns to caller: 64 -@item preempts caller: 106 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 14 -@item no reschedule: 16 -@item reschedule -- returns to caller: 23 -@item reschedule -- preempts caller: 60 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 33 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 16 -@item yield -- preempts caller: 56 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 117 -@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>148</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>350</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>76</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>95</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>89</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>124</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>92</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>125</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>149</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>142</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>170</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>138</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>143</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>144</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>71</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>43</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>45</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>67</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>31</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>64</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>106</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>14</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>16</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>60</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>33</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>33</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>16</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>56</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>117</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}{12} -\rtemscase{returns to interrupted task} - {9} -\rtemscase{returns to preempting task} - {9} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{<1} -\rtemscase{returns to interrupted task} - {8} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 12 -@item returns to interrupted task: 9 -@item returns to preempting task: 9 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: <1 -@item returns to interrupted task: 8 -@item returns to preempting task: 54 -@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>12</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>9</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><1</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>8</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{86} -\rtemsonecase{CLOCK\_GET}{1} -\rtemsonecase{CLOCK\_TICK}{17} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 86 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 1 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 17 -@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>86</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>17</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{28} -\rtemsonecase{TIMER\_IDENT}{343} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{43} -\rtemscase{active}{47} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{58} -\rtemscase{active}{61} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{88} -\rtemscase{active}{88} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{54} -\rtemscase{active}{58} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{31} -\rtemscase{active}{34} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 28 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 343 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 43 -@item active: 47 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 58 -@item active: 61 -@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>28</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>343</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>47</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>58</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>61</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>88</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>88</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>54</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>31</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>34</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}{60} -\rtemsonecase{SEMAPHORE\_IDENT}{367} -\rtemsonecase{SEMAPHORE\_DELETE}{58} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{38} -\rtemscase{not available -- NO\_WAIT} - {38} -\rtemscase{not available -- caller blocks} - {109} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{44} -\rtemscase{task readied -- returns to caller} - {66} -\rtemscase{task readied -- preempts caller} - {87} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 60 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 367 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 58 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 38 -@item not available -- NO_WAIT: 38 -@item not available -- caller blocks: 109 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 44 -@item task readied -- returns to caller: 66 -@item task readied -- preempts caller: 87 -@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>60</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>367</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>58</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>109</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>44</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>66</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>87</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}{200} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{341} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{80} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {97} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{96} -\rtemscase{task readied -- returns to caller} - {101} -\rtemscase{task readied -- preempts caller} - {123} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{53} -\rtemscase{task readied -- returns to caller} - {111} -\rtemscase{task readied -- preempts caller} - {133} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{79} -\rtemscase{not available -- NO\_WAIT} - {43} -\rtemscase{not available -- caller blocks} - {114} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{29} -\rtemscase{messages flushed}{39} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 200 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 80 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 97 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 96 -@item task readied -- returns to caller: 101 -@item task readied -- preempts caller: 123 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 53 -@item task readied -- returns to caller: 111 -@item task readied -- preempts caller: 133 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 79 -@item not available -- NO_WAIT: 43 -@item not available -- caller blocks: 114 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 29 -@item messages flushed: 39 -@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>200</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>80</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>97</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>96</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>101</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>123</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>53</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>111</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>133</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>79</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>43</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>114</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>29</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>39</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}{24} -\rtemscase{task readied -- returns to caller} - {60} -\rtemscase{task readied -- preempts caller} - {84} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{1} -\rtemscase{available}{28} -\rtemscase{not available -- NO\_WAIT}{23} -\rtemscase{not available -- caller blocks} - {84} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 24 -@item task readied -- returns to caller: 60 -@item task readied -- preempts caller: 84 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 1 -@item available: 28 -@item not available -- NO_WAIT: 23 -@item not available -- caller blocks: 84 -@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>24</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>60</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>84</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>1</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>28</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>84</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{15} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{37} -\rtemscase{signal to self}{55} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {37} -\rtemscase{returns to preempting task} - {54} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 15 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 37 -@item signal to self: 55 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 37 -@item returns to preempting task: 54 -@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>15</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>37</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>55</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> - 37</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 54</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{70} -\rtemsonecase{PARTITION\_IDENT}{341} -\rtemsonecase{PARTITION\_DELETE}{42} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{35} -\rtemscase{not available}{33} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {33} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 70 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 42 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 35 -@item not available: 33 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 43 -@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>70</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>42</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>35</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>33</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>33</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}{63} -\rtemsonecase{REGION\_IDENT}{348} -\rtemsonecase{REGION\_DELETE}{39} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{52} -\rtemscase{not available -- NO\_WAIT} - {49} -\rtemscase{not available -- caller blocks} - {123} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{54} -\rtemscase{task readied -- returns to caller} - {114} -\rtemscase{task readied -- preempts caller} - {136} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 63 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 348 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 52 -@item not available -- NO_WAIT: 49 -@item not available -- caller blocks: 123 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 54 -@item task readied -- returns to caller: 114 -@item task readied -- preempts caller: 136 -@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>63</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>348</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>52</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 49</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 123</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>54</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 114</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 136</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}{35} -\rtemsonecase{PORT\_IDENT}{340} -\rtemsonecase{PORT\_DELETE}{39} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {26} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {27} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 35 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 340 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 39 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 26 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 27 -@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>35</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>340</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>26</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>27</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}{4} -\rtemsonecase{IO\_OPEN}{2} -\rtemsonecase{IO\_CLOSE}{1} -\rtemsonecase{IO\_READ}{2} -\rtemsonecase{IO\_WRITE}{3} -\rtemsonecase{IO\_CONTROL}{2} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 4 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 2 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 1 -@end itemize - -@item IO_READ -@itemize - -@item only case: 2 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 3 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 2 -@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>4</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>3</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>2</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}{32} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{341} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{39} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{51} -\rtemscase{inactive}{48} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {54} -\rtemscase{conclude period -- caller blocks} - {74} -\rtemscase{obtain status}{31} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 32 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 341 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 39 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 51 -@item inactive: 48 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 54 -@item conclude period -- caller blocks: 74 -@item obtain status: 31 -@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>32</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>341</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>39</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>51</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>48</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> - 54</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 74</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>31</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex diff --git a/doc/supplements/sparc/timeERC32_.t b/doc/supplements/sparc/timeERC32_.t deleted file mode 100644 index 6fc2e1952f..0000000000 --- a/doc/supplements/sparc/timeERC32_.t +++ /dev/null @@ -1,1454 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1999. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@include ../../common/timemac.texi -@tex -\global\advance \smallskipamount by -4pt -@end tex - -@chapter ERC32 Timing Data - -@section Introduction - -The timing data for RTEMS on the ERC32 implementation -of the SPARC architecture is provided along with the target -dependent aspects concerning the gathering of the timing data. -The hardware platform used to gather the times is described to -give the reader a better understanding of each directive time -provided. Also, provided is a description of the interrupt -latency and the context switch times as they pertain to the -SPARC version of RTEMS. - -@section Hardware Platform - -All times reported in this chapter were measured -using the SPARC Instruction Simulator (SIS) developed by the -European Space Agency. SIS simulates the ERC32 -- a custom low -power implementation combining the Cypress 90C601 integer unit, -the Cypress 90C602 floating point unit, and a number of -peripherals such as counter timers, interrupt controller and a -memory controller. - -For the RTEMS tests, SIS is configured with the -following characteristics: - -@itemize @bullet -@item 15 Mhz clock speed - -@item 0 wait states for PROM accesses - -@item 0 wait states for RAM accesses -@end itemize - -The ERC32's General Purpose Timer was used to gather -all timing information. This timer was programmed to operate -with one microsecond accuracy. All sources of hardware -interrupts were disabled, although traps were enabled and the -interrupt level of the SPARC allows all interrupts. - -@section Interrupt Latency - -The maximum period with traps disabled or the -processor interrupt level set to it's highest value inside RTEMS -is less than TBD -microseconds including the instructions which -disable and re-enable interrupts. The time required for the -ERC32 to vector an interrupt and for the RTEMS entry overhead -before invoking the user's trap handler are a total of -8 -microseconds. These combine to yield a worst case interrupt -latency of less than TBD + -8 microseconds at -15.0 Mhz. -[NOTE: The maximum period with interrupts disabled was last -determined for Release 4.2.0-prerelease.] - -The maximum period with interrupts disabled within -RTEMS is hand-timed with some assistance from SIS. The maximum -period with interrupts disabled with RTEMS occurs during a -context switch when traps are disabled to flush all the register -windows to memory. The length of time spent flushing the -register windows varies based on the number of windows which -must be flushed. Based on the information reported by SIS, it -takes from 4.0 to 18.0 microseconds (37 to 122 instructions) to -flush the register windows. It takes approximately 41 CPU -cycles (2.73 microseconds) to flush each register window set to -memory. The register window flush operation is heavily memory -bound. - -[NOTE: All traps are disabled during the register -window flush thus disabling both software generate traps and -external interrupts. During a normal RTEMS critical section, -the processor interrupt level (pil) is raised to level 15 and -traps are left enabled. The longest path for a normal critical -section within RTEMS is less than 50 instructions.] - -The interrupt vector and entry overhead time was -generated on the SIS benchmark platform using the ERC32's -ability to forcibly generate an arbitrary interrupt as the -source of the "benchmark" interrupt. - -@section Context Switch - -The RTEMS processor context switch time is 10 -microseconds on the SIS benchmark platform when no floating -point context is saved or restored. Additional execution time -is required when a TASK_SWITCH user extension is configured. -The use of the TASK_SWITCH extension is application dependent. -Thus, its execution time is not considered part of the raw -context switch time. - -Since RTEMS was designed specifically for embedded -missile applications which are floating point intensive, the -executive is optimized to avoid unnecessarily saving and -restoring the state of the numeric coprocessor. The state of -the numeric coprocessor is only saved when an FLOATING_POINT -task is dispatched and that task was not the last task to -utilize the coprocessor. In a system with only one -FLOATING_POINT task, the state of the numeric coprocessor will -never be saved or restored. When the first FLOATING_POINT task -is dispatched, RTEMS does not need to save the current state of -the numeric coprocessor. - -The following table summarizes the context switch -times for the ERC32 benchmark platform: - -@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-1999. -@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}{21} -\rtemsdirective{Floating Point Contexts} -\rtemscase{restore first FP task}{26} -\rtemscase{save initialized, restore initialized}{24} -\rtemscase{save idle, restore initialized}{23} -\rtemscase{save idle, restore idle}{33} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item No Floating Point Contexts -@itemize - -@item only case: 21 -@end itemize -@item Floating Point Contexts -@itemize - -@item restore first FP task: 26 -@item save initialized, restore initialized: 24 -@item save idle, restore initialized: 23 -@item save idle, restore idle: 23 -@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>21</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>26</TD> - <TR><TD ALIGN=left><dd>save initialized, restore initialized</TD> - <TD ALIGN=center>24</TD> - <TR><TD ALIGN=left><dd>save idle, restore initialized</TD> - <TD ALIGN=center>23</TD> - <TR><TD ALIGN=left><dd>save idle, restore idle</TD> - <TD ALIGN=center>33</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}{59} -\rtemsonecase{TASK\_IDENT}{163} -\rtemsonecase{TASK\_START}{30} -\rtemsdirective{TASK\_RESTART} -\rtemscase{calling task}{64} -\rtemscase{suspended task -- returns to caller} - {36} -\rtemscase{blocked task -- returns to caller} - {47} -\rtemscase{ready task -- returns to caller} - {37} -\rtemscase{suspended task -- preempts caller} - {77} -\rtemscase{blocked task -- preempts caller} - {84} -\rtemscase{ready task -- preempts caller} - {75} -\rtemsdirective{TASK\_DELETE} -\rtemscase{calling task}{91} -\rtemscase{suspended task}{47} -\rtemscase{blocked task}{50} -\rtemscase{ready task}{51} -\rtemsdirective{TASK\_SUSPEND} -\rtemscase{calling task}{56} -\rtemscase{returns to caller}{16} -\rtemsdirective{TASK\_RESUME} -\rtemscase{task readied -- returns to caller} - {17} -\rtemscase{task readied -- preempts caller} - {52} -\rtemsdirective{TASK\_SET\_PRIORITY} -\rtemscase{obtain current priority} - {10} -\rtemscase{returns to caller}{25} -\rtemscase{preempts caller}{67} -\rtemsdirective{TASK\_MODE} -\rtemscase{obtain current mode}{5} -\rtemscase{no reschedule}{6} -\rtemscase{reschedule -- returns to caller} - {9} -\rtemscase{reschedule -- preempts caller} - {42} -\rtemsonecase{TASK\_GET\_NOTE}{10} -\rtemsonecase{TASK\_SET\_NOTE}{10} -\rtemsdirective{TASK\_WAKE\_AFTER} -\rtemscase{yield -- returns to caller} - {6} -\rtemscase{yield -- preempts caller} - {49} -\rtemsonecase{TASK\_WAKE\_WHEN}{75} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TASK_CREATE -@itemize - -@item only case: 59 -@end itemize - -@item TASK_IDENT -@itemize - -@item only case: 163 -@end itemize - -@item TASK_START -@itemize - -@item only case: 30 -@end itemize - -@item TASK_RESTART -@itemize - -@item calling task: 64 -@item suspended task -- returns to caller: 36 -@item blocked task -- returns to caller: 47 -@item ready task -- returns to caller: 37 -@item suspended task -- preempts caller: 77 -@item blocked task -- preempts caller: 84 -@item ready task -- preempts caller: 75 -@end itemize - -@item TASK_DELETE -@itemize - -@item calling task: 91 -@item suspended task: 47 -@item blocked task: 50 -@item ready task: 51 -@end itemize - -@item TASK_SUSPEND -@itemize - -@item calling task: 56 -@item returns to caller: 16 -@end itemize - -@item TASK_RESUME -@itemize - -@item task readied -- returns to caller: 17 -@item task readied -- preempts caller: 52 -@end itemize - -@item TASK_SET_PRIORITY -@itemize - -@item obtain current priority: 10 -@item returns to caller: 25 -@item preempts caller: 67 -@end itemize - -@item TASK_MODE -@itemize - -@item obtain current mode: 5 -@item no reschedule: 6 -@item reschedule -- returns to caller: 9 -@item reschedule -- preempts caller: 42 -@end itemize - -@item TASK_GET_NOTE -@itemize - -@item only case: 10 -@end itemize - -@item TASK_SET_NOTE -@itemize - -@item only case: 10 -@end itemize - -@item TASK_WAKE_AFTER -@itemize - -@item yield -- returns to caller: 6 -@item yield -- preempts caller: 49 -@end itemize - -@item TASK_WAKE_WHEN -@itemize - -@item only case: 75 -@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>59</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_IDENT</STRONG></TD> - <TD ALIGN=center>163</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_START</STRONG></TD> - <TD ALIGN=center>30</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>64</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- returns to caller</TD> - <TD ALIGN=center>36</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- returns to caller</TD> - <TD ALIGN=center>47</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- returns to caller</TD> - <TD ALIGN=center>37</TD></TR> - <TR><TD ALIGN=left><dd>suspended task -- preempts caller</TD> - <TD ALIGN=center>77</TD></TR> - <TR><TD ALIGN=left><dd>blocked task -- preempts caller</TD> - <TD ALIGN=center>84</TD></TR> - <TR><TD ALIGN=left><dd>ready task -- preempts caller</TD> - <TD ALIGN=center>75</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>91</TD></TR> - <TR><TD ALIGN=left><dd>suspended task</TD> - <TD ALIGN=center>47</TD></TR> - <TR><TD ALIGN=left><dd>blocked task</TD> - <TD ALIGN=center>50</TD></TR> - <TR><TD ALIGN=left><dd>ready task</TD> - <TD ALIGN=center>51</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>56</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>16</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>17</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>52</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>10</TD></TR> - <TR><TD ALIGN=left><dd>returns to caller</TD> - <TD ALIGN=center>25</TD></TR> - <TR><TD ALIGN=left><dd>preempts caller</TD> - <TD ALIGN=center>67</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>5</TD></TR> - <TR><TD ALIGN=left><dd>no reschedule</TD> - <TD ALIGN=center>6</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- returns to caller</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>reschedule -- preempts caller</TD> - <TD ALIGN=center>42</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_GET_NOTE</STRONG></TD> - <TD ALIGN=center>10</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_SET_NOTE</STRONG></TD> - <TD ALIGN=center>10</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>6</TD></TR> - <TR><TD ALIGN=left><dd>yield -- preempts caller</TD> - <TD ALIGN=center>49</TD></TR> -<TR><TD ALIGN=left><STRONG>TASK_WAKE_WHEN</STRONG></TD> - <TD ALIGN=center>75</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}{7} -\rtemscase{returns to interrupted task} - {8} -\rtemscase{returns to preempting task} - {8} -\rtemsdirective{Interrupt Exit Overhead} -\rtemscase{returns to nested interrupt}{5} -\rtemscase{returns to interrupted task} - {7} -\rtemscase{returns to preempting task} - {14} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item Interrupt Entry Overhead -@itemize - -@item returns to nested interrupt: 7 -@item returns to interrupted task: 8 -@item returns to preempting task: 8 -@end itemize - -@item Interrupt Exit Overhead -@itemize - -@item returns to nested interrupt: 5 -@item returns to interrupted task: 7 -@item returns to preempting task: 14 -@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>7</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>8</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>8</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>5</TD></TR> - <TR><TD ALIGN=left><dd>returns to interrupted task</TD> - <TD ALIGN=center>7</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center>14</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - - -@section Clock Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{CLOCK\_SET}{33} -\rtemsonecase{CLOCK\_GET}{4} -\rtemsonecase{CLOCK\_TICK}{6} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item CLOCK_SET -@itemize - -@item only case: 33 -@end itemize - -@item CLOCK_GET -@itemize - -@item only case: 4 -@end itemize - -@item CLOCK_TICK -@itemize - -@item only case: 6 -@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>33</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_GET</STRONG></TD> - <TD ALIGN=center>4</TD></TR> -<TR><TD ALIGN=left><STRONG>CLOCK_TICK</STRONG></TD> - <TD ALIGN=center>6</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Timer Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{TIMER\_CREATE}{11} -\rtemsonecase{TIMER\_IDENT}{159} -\rtemsdirective{TIMER\_DELETE} -\rtemscase{inactive}{15} -\rtemscase{active}{17} -\rtemsdirective{TIMER\_FIRE\_AFTER} -\rtemscase{inactive}{21} -\rtemscase{active}{23} -\rtemsdirective{TIMER\_FIRE\_WHEN} -\rtemscase{inactive}{34} -\rtemscase{active}{34} -\rtemsdirective{TIMER\_RESET} -\rtemscase{inactive}{20} -\rtemscase{active}{22} -\rtemsdirective{TIMER\_CANCEL} -\rtemscase{inactive}{10} -\rtemscase{active}{13} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item TIMER_CREATE -@itemize - -@item only case: 11 -@end itemize - -@item TIMER_IDENT -@itemize - -@item only case: 159 -@end itemize - -@item TIMER_DELETE -@itemize - -@item inactive: 15 -@item active: 17 -@end itemize - -@item TIMER_FIRE_AFTER -@itemize - -@item inactive: 21 -@item active: 23 -@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>11</TD></TR> -<TR><TD ALIGN=left><STRONG>TIMER_IDENT</STRONG></TD> - <TD ALIGN=center>159</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_DELETE</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>15</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>17</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>21</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>23</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>34</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>34</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_RESET</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>20</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>22</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>TIMER_CANCEL</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>10</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>13</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}{19} -\rtemsonecase{SEMAPHORE\_IDENT}{171} -\rtemsonecase{SEMAPHORE\_DELETE}{19} -\rtemsdirective{SEMAPHORE\_OBTAIN} -\rtemscase{available}{12} -\rtemscase{not available -- NO\_WAIT} - {12} -\rtemscase{not available -- caller blocks} - {67} -\rtemsdirective{SEMAPHORE\_RELEASE} -\rtemscase{no waiting tasks}{14} -\rtemscase{task readied -- returns to caller} - {23} -\rtemscase{task readied -- preempts caller} - {57} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item SEMAPHORE_CREATE -@itemize - -@item only case: 19 -@end itemize - -@item SEMAPHORE_IDENT -@itemize - -@item only case: 171 -@end itemize - -@item SEMAPHORE_DELETE -@itemize - -@item only case: 19 -@end itemize - -@item SEMAPHORE_OBTAIN -@itemize - -@item available: 12 -@item not available -- NO_WAIT: 12 -@item not available -- caller blocks: 67 -@end itemize - -@item SEMAPHORE_RELEASE -@itemize - -@item no waiting tasks: 14 -@item task readied -- returns to caller: 23 -@item task readied -- preempts caller: 57 -@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>19</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_IDENT</STRONG></TD> - <TD ALIGN=center>171</TD></TR> -<TR><TD ALIGN=left><STRONG>SEMAPHORE_DELETE</STRONG></TD> - <TD ALIGN=center>19</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>SEMAPHORE_OBTAIN</STRONG></TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>12</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>12</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>67</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>14</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>23</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>57</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}{114} -\rtemsonecase{MESSAGE\_QUEUE\_IDENT}{159} -\rtemsonecase{MESSAGE\_QUEUE\_DELETE}{25} -\rtemsdirective{MESSAGE\_QUEUE\_SEND} -\rtemscase{no waiting tasks} - {36} -\rtemscase{task readied -- returns to caller} - {38} -\rtemscase{task readied -- preempts caller} - {76} -\rtemsdirective{MESSAGE\_QUEUE\_URGENT} -\rtemscase{no waiting tasks}{36} -\rtemscase{task readied -- returns to caller} - {38} -\rtemscase{task readied -- preempts caller} - {76} -\rtemsdirective{MESSAGE\_QUEUE\_BROADCAST} -\rtemscase{no waiting tasks}{15} -\rtemscase{task readied -- returns to caller} - {42} -\rtemscase{task readied -- preempts caller} - {83} -\rtemsdirective{MESSAGE\_QUEUE\_RECEIVE} -\rtemscase{available}{30} -\rtemscase{not available -- NO\_WAIT} - {13} -\rtemscase{not available -- caller blocks} - {67} -\rtemsdirective{MESSAGE\_QUEUE\_FLUSH} -\rtemscase{no messages flushed}{9} -\rtemscase{messages flushed}{13} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item MESSAGE_QUEUE_CREATE -@itemize - -@item only case: 114 -@end itemize - -@item MESSAGE_QUEUE_IDENT -@itemize - -@item only case: 159 -@end itemize - -@item MESSAGE_QUEUE_DELETE -@itemize - -@item only case: 25 -@end itemize - -@item MESSAGE_QUEUE_SEND -@itemize - -@item no waiting tasks: 36 -@item task readied -- returns to caller: 38 -@item task readied -- preempts caller: 76 -@end itemize - -@item MESSAGE_QUEUE_URGENT -@itemize - -@item no waiting tasks: 36 -@item task readied -- returns to caller: 38 -@item task readied -- preempts caller: 76 -@end itemize - -@item MESSAGE_QUEUE_BROADCAST -@itemize - -@item no waiting tasks: 15 -@item task readied -- returns to caller: 42 -@item task readied -- preempts caller: 83 -@end itemize - -@item MESSAGE_QUEUE_RECEIVE -@itemize - -@item available: 30 -@item not available -- NO_WAIT: 13 -@item not available -- caller blocks: 67 -@end itemize - -@item MESSAGE_QUEUE_FLUSH -@itemize - -@item no messages flushed: 9 -@item messages flushed: 13 -@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>114</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_IDENT</STRONG></TD> - <TD ALIGN=center>159</TD></TR> -<TR><TD ALIGN=left><STRONG>MESSAGE_QUEUE_DELETE</STRONG></TD> - <TD ALIGN=center>25</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>36</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>76</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>36</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>38</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>76</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>15</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>42</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>83</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>30</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>13</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>67</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>9</TD></TR> - <TR><TD ALIGN=left><dd>messages flushed</TD> - <TD ALIGN=center>13</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}{9} -\rtemscase{task readied -- returns to caller} - {22} -\rtemscase{task readied -- preempts caller} - {58} -\rtemsdirective{EVENT\_RECEIVE} -\rtemscase{obtain current events}{1} -\rtemscase{available}{10} -\rtemscase{not available -- NO\_WAIT}{9} -\rtemscase{not available -- caller blocks} - {60} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item EVENT_SEND -@itemize - -@item no task readied: 9 -@item task readied -- returns to caller: 22 -@item task readied -- preempts caller: 58 -@end itemize - -@item EVENT_RECEIVE -@itemize - -@item obtain current events: 1 -@item available: 10 -@item not available -- NO_WAIT: 9 -@item not available -- caller blocks: 60 -@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>9</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center>22</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center>58</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>1</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>10</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center>9</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center>60</TD></TR> - - </TABLE> -</CENTER> -@end html -@end ifset -@section Signal Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{SIGNAL\_CATCH}{6} -\rtemsdirective{SIGNAL\_SEND} -\rtemscase{returns to caller}{14} -\rtemscase{signal to self}{22} -\rtemsdirective{EXIT ASR OVERHEAD} -\rtemscase{returns to calling task} - {27} -\rtemscase{returns to preempting task} - {56} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet -@item SIGNAL_CATCH -@itemize - -@item only case: 6 -@end itemize - -@item SIGNAL_SEND -@itemize - -@item returns to caller: 14 -@item signal to self: 22 -@end itemize - -@item EXIT ASR OVERHEAD -@itemize - -@item returns to calling task: 27 -@item returns to preempting task: 56 -@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>6</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>14</TD></TR> - <TR><TD ALIGN=left><dd>signal to self</TD> - <TD ALIGN=center>22</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> - 27</TD></TR> - <TR><TD ALIGN=left><dd>returns to preempting task</TD> - <TD ALIGN=center> - 56</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@section Partition Manager - -@ifset use-tex -@tex -\centerline{\vbox{\offinterlineskip\halign{ -\span\rtemstimetable -\rtemsonecase{PARTITION\_CREATE}{34} -\rtemsonecase{PARTITION\_IDENT}{159} -\rtemsonecase{PARTITION\_DELETE}{14} -\rtemsdirective{PARTITION\_GET\_BUFFER} -\rtemscase{available}{12} -\rtemscase{not available}{10} -\rtemsonecase{PARTITION\_RETURN\_BUFFER} - {10} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PARTITION_CREATE -@itemize - -@item only case: 34 -@end itemize - -@item PARTITION_IDENT -@itemize - -@item only case: 159 -@end itemize - -@item PARTITION_DELETE -@itemize - -@item only case: 14 -@end itemize - -@item PARTITION_GET_BUFFER -@itemize - -@item available: 12 -@item not available: 10 -@end itemize - -@item PARTITION_RETURN_BUFFER -@itemize - -@item only case: 16 -@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>34</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_IDENT</STRONG></TD> - <TD ALIGN=center>159</TD></TR> -<TR><TD ALIGN=left><STRONG>PARTITION_DELETE</STRONG></TD> - <TD ALIGN=center>14</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>12</TD></TR> - <TR><TD ALIGN=left><dd>not available</TD> - <TD ALIGN=center>10</TD></TR> - <TR><TD ALIGN=left><STRONG>PARTITION_RETURN_BUFFER</STRONG></TD> - <TD ALIGN=center>10</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}{22} -\rtemsonecase{REGION\_IDENT}{162} -\rtemsonecase{REGION\_DELETE}{14} -\rtemsdirective{REGION\_GET\_SEGMENT} -\rtemscase{available}{19} -\rtemscase{not available -- NO\_WAIT} - {19} -\rtemscase{not available -- caller blocks} - {67} -\rtemsdirective{REGION\_RETURN\_SEGMENT} -\rtemscase{no waiting tasks}{17} -\rtemscase{task readied -- returns to caller} - {44} -\rtemscase{task readied -- preempts caller} - {77} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item REGION_CREATE -@itemize - -@item only case: 22 -@end itemize - -@item REGION_IDENT -@itemize - -@item only case: 162 -@end itemize - -@item REGION_DELETE -@itemize - -@item only case: 14 -@end itemize - -@item REGION_GET_SEGMENT -@itemize - -@item available: 19 -@item not available -- NO_WAIT: 19 -@item not available -- caller blocks: 67 -@end itemize - -@item REGION_RETURN_SEGMENT -@itemize - -@item no waiting tasks: 17 -@item task readied -- returns to caller: 44 -@item task readied -- preempts caller: 77 -@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>22</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_IDENT</STRONG></TD> - <TD ALIGN=center>162</TD></TR> -<TR><TD ALIGN=left><STRONG>REGION_DELETE</STRONG></TD> - <TD ALIGN=center>14</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>REGION_GET_SEGMENT</TD></TR> - <TR><TD ALIGN=left><dd>available</TD> - <TD ALIGN=center>19</TD></TR> - <TR><TD ALIGN=left><dd>not available -- NO_WAIT</TD> - <TD ALIGN=center> - 19</TD></TR> - <TR><TD ALIGN=left><dd>not available -- caller blocks</TD> - <TD ALIGN=center> - 67</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>17</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- returns to caller</TD> - <TD ALIGN=center> - 44</TD></TR> - <TR><TD ALIGN=left><dd>task readied -- preempts caller</TD> - <TD ALIGN=center> - 77</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}{14} -\rtemsonecase{PORT\_IDENT}{159} -\rtemsonecase{PORT\_DELETE}{13} -\rtemsonecase{PORT\_INTERNAL\_TO\_EXTERNAL} - {9} -\rtemsonecase{PORT\_EXTERNAL\_TO\_INTERNAL} - {9} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item PORT_CREATE -@itemize - -@item only case: 14 -@end itemize - -@item PORT_IDENT -@itemize - -@item only case: 159 -@end itemize - -@item PORT_DELETE -@itemize - -@item only case: 13 -@end itemize - -@item PORT_INTERNAL_TO_EXTERNAL -@itemize - -@item only case: 9 -@end itemize - -@item PORT_EXTERNAL_TO_INTERNAL -@itemize - -@item only case: 9 -@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>14</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_IDENT</STRONG></TD> - <TD ALIGN=center>159</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_DELETE</STRONG></TD> - <TD ALIGN=center>13</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_INTERNAL_TO_EXTERNAL</STRONG></TD> - <TD ALIGN=center>9</TD></TR> -<TR><TD ALIGN=left><STRONG>PORT_EXTERNAL_TO_INTERNAL</STRONG></TD> - <TD ALIGN=center>9</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}{2} -\rtemsonecase{IO\_OPEN}{1} -\rtemsonecase{IO\_CLOSE}{1} -\rtemsonecase{IO\_READ}{1} -\rtemsonecase{IO\_WRITE}{1} -\rtemsonecase{IO\_CONTROL}{1} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item IO_INITIALIZE -@itemize - -@item only case: 2 -@end itemize - -@item IO_OPEN -@itemize - -@item only case: 1 -@end itemize - -@item IO_CLOSE -@itemize - -@item only case: 1 -@end itemize - -@item IO_READ -@itemize - -@item only case: 1 -@end itemize - -@item IO_WRITE -@itemize - -@item only case: 1 -@end itemize - -@item IO_CONTROL -@itemize - -@item only case: 1 -@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>2</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_OPEN</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CLOSE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_READ</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_WRITE</STRONG></TD> - <TD ALIGN=center>1</TD></TR> -<TR><TD ALIGN=left><STRONG>IO_CONTROL</STRONG></TD> - <TD ALIGN=center>1</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}{12} -\rtemsonecase{RATE\_MONOTONIC\_IDENT}{159} -\rtemsonecase{RATE\_MONOTONIC\_CANCEL}{14} -\rtemsdirective{RATE\_MONOTONIC\_DELETE} -\rtemscase{active}{19} -\rtemscase{inactive}{16} -\rtemsdirective{RATE\_MONOTONIC\_PERIOD} -\rtemscase{initiate period -- returns to caller} - {20} -\rtemscase{conclude period -- caller blocks} - {55} -\rtemscase{obtain status}{9} -\rtemsendtimetable -}}\hfil} -@end tex -@end ifset - -@ifset use-ascii -@ifinfo -@itemize @bullet - -@item RATE_MONOTONIC_CREATE -@itemize - -@item only case: 12 -@end itemize - -@item RATE_MONOTONIC_IDENT -@itemize - -@item only case: 159 -@end itemize - -@item RATE_MONOTONIC_CANCEL -@itemize - -@item only case: 14 -@end itemize - -@item RATE_MONOTONIC_DELETE -@itemize - -@item active: 19 -@item inactive: 16 -@end itemize - -@item RATE_MONOTONIC_PERIOD -@itemize - -@item initiate period -- returns to caller: 20 -@item conclude period -- caller blocks: 55 -@item obtain status: 9 -@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>12</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_IDENT</STRONG></TD> - <TD ALIGN=center>159</TD></TR> -<TR><TD ALIGN=left><STRONG>RATE_MONOTONIC_CANCEL</STRONG></TD> - <TD ALIGN=center>14</TD></TR> -<TR><TD ALIGN=left COLSPAN=2><STRONG>RATE_MONOTONIC_DELETE</TD></TR> - <TR><TD ALIGN=left><dd>active</TD> - <TD ALIGN=center>19</TD></TR> - <TR><TD ALIGN=left><dd>inactive</TD> - <TD ALIGN=center>16</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> - 20</TD></TR> - <TR><TD ALIGN=left><dd>conclude period -- caller blocks</TD> - <TD ALIGN=center> - 55</TD></TR> - <TR><TD ALIGN=left><dd>obtain status</TD> - <TD ALIGN=center>9</TD></TR> - </TABLE> -</CENTER> -@end html -@end ifset - -@tex -\global\advance \smallskipamount by 4pt -@end tex - -@tex -\global\advance \smallskipamount by 4pt -@end tex |