@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
No Floating Point Contexts 585
Floating Point Contexts
restore first FP task
730
save initialized, restore initialized
478
save idle, restore initialized
825
save idle, restore idle
478
@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
TASK_CREATE 2301
TASK_IDENT 2900
TASK_START 794
TASK_RESTART
calling task
1137
suspended task -- returns to caller
906
blocked task -- returns to caller
1102
ready task -- returns to caller
928
suspended task -- preempts caller
1483
blocked task -- preempts caller
1640
ready task -- preempts caller
1601
TASK_DELETE
calling task
2117
suspended task
1555
blocked task
1609
ready task
1620
TASK_SUSPEND
calling task
960
returns to caller
433
TASK_RESUME
task readied -- returns to caller
960
task readied -- preempts caller
803
TASK_SET_PRIORITY
obtain current priority
368
returns to caller
633
preempts caller
1211
TASK_MODE
obtain current mode
184
no reschedule
213
reschedule -- returns to caller
247
reschedule -- preempts caller
919
TASK_GET_NOTE 382
TASK_SET_NOTE 383
TASK_WAKE_AFTER
yield -- returns to caller
245
yield -- preempts caller
851
TASK_WAKE_WHEN 1275
@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
Interrupt Entry Overhead
returns to nested interrupt
201
returns to interrupted task
206
returns to preempting task
202
Interrupt Exit Overhead
returns to nested interrupt
201
returns to interrupted task
213
returns to preempting task
857
@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
CLOCK_SET 792
CLOCK_GET 78
CLOCK_TICK 214
@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
TIMER_CREATE 357
TIMER_IDENT 2828
TIMER_DELETE
inactive
432
active
471
TIMER_FIRE_AFTER
inactive
607
active
646
TIMER_FIRE_WHEN
inactive
766
active
764
TIMER_RESET
inactive
552
active
766
TIMER_CANCEL
inactive
339
active
378
@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
SEMAPHORE_CREATE 571
SEMAPHORE_IDENT 3243
SEMAPHORE_DELETE 575
SEMAPHORE_OBTAIN
available
414
not available -- NO_WAIT
414
not available -- caller blocks
1254
SEMAPHORE_RELEASE
no waiting tasks
501
task readied -- returns to caller
636
task readied -- preempts caller
982
@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
MESSAGE_QUEUE_CREATE 2270
MESSAGE_QUEUE_IDENT 2828
MESSAGE_QUEUE_DELETE 708
MESSAGE_QUEUE_SEND
no waiting tasks
923
task readied -- returns to caller
955
task readied -- preempts caller
1322
MESSAGE_QUEUE_URGENT
no waiting tasks
919
task readied -- returns to caller
955
task readied -- preempts caller
1322
MESSAGE_QUEUE_BROADCAST
no waiting tasks
589
task readied -- returns to caller
1079
task readied -- preempts caller
1435
MESSAGE_QUEUE_RECEIVE
available
755
not available -- NO_WAIT
467
not available -- caller blocks
1283
MESSAGE_QUEUE_FLUSH
no messages flushed
369
messages flushed
431
@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
EVENT_SEND
no task readied
354
task readied -- returns to caller
571
task readied -- preempts caller
946
EVENT_RECEIVE
obtain current events
43
available
357
not available -- NO_WAIT
331
not available -- caller blocks
1043
@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
SIGNAL_CATCH 267
SIGNAL_SEND
returns to caller
408
signal to self
607
EXIT ASR OVERHEAD
returns to calling task
464
returns to preempting task
752
@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
PARTITION_CREATE 762
PARTITION_IDENT 2828
PARTITION_DELETE 426
PARTITION_GET_BUFFER
available
394
not available
376
PARTITION_RETURN_BUFFER 376
@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
REGION_CREATE 614
REGION_IDENT 2878
REGION_DELETE 425
REGION_GET_SEGMENT
available
515
not available -- NO_WAIT
472
not available -- caller blocks
1345
REGION_RETURN_SEGMENT
no waiting tasks
544
task readied -- returns to caller
935
task readied -- preempts caller
1296
@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
PORT_CREATE 428
PORT_IDENT 2828
PORT_DELETE 421
PORT_INTERNAL_TO_EXTERNAL 339
PORT_EXTERNAL_TO_INTERNAL 339
@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
IO_INITIALIZE 52
IO_OPEN 42
IO_CLOSE 44
IO_READ 42
IO_WRITE 44
IO_CONTROL 42
@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
RATE_MONOTONIC_CREATE 388
RATE_MONOTONIC_IDENT 2826
RATE_MONOTONIC_CANCEL 427
RATE_MONOTONIC_DELETE
active
519
inactive
465
RATE_MONOTONIC_PERIOD
initiate period -- returns to caller
556
conclude period -- caller blocks
842
obtain status
377
@end html @end ifset @tex \global\advance \smallskipamount by 4pt @end tex @tex \global\advance \smallskipamount by 4pt @end tex