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