diff options
Diffstat (limited to 'doc/supplements')
39 files changed, 12606 insertions, 1507 deletions
diff --git a/doc/supplements/Makefile.am b/doc/supplements/Makefile.am new file mode 100644 index 0000000000..15760f2138 --- /dev/null +++ b/doc/supplements/Makefile.am @@ -0,0 +1,7 @@ +## $Id$ + +AUTOMAKE_OPTIONS = foreign + +SUBDIRS = hppa1_1 i386 i960 m68k mips64orion powerpc sh sparc template + +EXTRA_DIST = supplement.am diff --git a/doc/supplements/hppa1_1/Makefile b/doc/supplements/hppa1_1/Makefile deleted file mode 100644 index 640eb3bbe2..0000000000 --- a/doc/supplements/hppa1_1/Makefile +++ /dev/null @@ -1,152 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=hppa1_1 - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi wksheets.texi timing.texi timeSIMHPPA.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -info: dirs c_hppa1_1 - cp c_$(PROJECT) $(INFO_INSTALL) - -c_hppa1_1: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_hppa1_1 c_hppa1_1-* - rm -f intr.t - rm -f timing.t timing.texi - rm -f wksheets.t wksheets_NOTIMES.t $(GENERATED_FILES) - rm -f *.fixed _* - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features CPU Model Name" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure - -intr.t: intr_NOTIMES.t SIMHPPA_TIMES - ${REPLACE} -p SIMHPPA_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Disabling of Interrupts by RTEMS" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t SIMHPPA_TIMES - ${REPLACE} -p SIMHPPA_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "HP-7100 Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeSIMHPPA.texi: timeSIMHPPA.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" ${*}.t diff --git a/doc/supplements/hppa1_1/Makefile.am b/doc/supplements/hppa1_1/Makefile.am new file mode 100644 index 0000000000..6ed271e564 --- /dev/null +++ b/doc/supplements/hppa1_1/Makefile.am @@ -0,0 +1,106 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=hppa1_1 + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi wksheets.texi timing.texi timeSIMHPPA.texi + +FILES= preface.texi + +info_TEXINFOS = hppa1_1.texi +hppa1_1_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features CPU Model Name" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t SIMHPPA_TIMES + ${REPLACE2} -p $(srcdir)/SIMHPPA_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Disabling of Interrupts by RTEMS" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t SIMHPPA_TIMES + ${REPLACE2} -p $(srcdir)/SIMHPPA_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "HP-7100 Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeSIMHPPA.texi: timeSIMHPPA.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" $< + +EXTRA_DIST = SIMHPPA_TIMES *.t diff --git a/doc/supplements/hppa1_1/hppa1_1.texi b/doc/supplements/hppa1_1/hppa1_1.texi index 3c3512a0d4..d3417013d6 100644 --- a/doc/supplements/hppa1_1/hppa1_1.texi +++ b/doc/supplements/hppa1_1/hppa1_1.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_hppa1_1 +@setfilename hppa1_1 @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -75,7 +75,7 @@ END-INFO-DIR-ENTRY @include timeSIMHPPA.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_hppa1_1 +@top hppa1_1 This is the online version of the RTEMS Hewlett Packard PA-RISC Applications Supplement. diff --git a/doc/supplements/i386/Makefile b/doc/supplements/i386/Makefile deleted file mode 100644 index 9893c1a20c..0000000000 --- a/doc/supplements/i386/Makefile +++ /dev/null @@ -1,170 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=i386 - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timeFORCE386.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - - -dirs: - $(make-dirs) - -info: dirs c_i386 - cp c_$(PROJECT) $(INFO_INSTALL) - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_i386: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_i386 c_i386-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t timing.t intr.t - rm -f timeFORCE386_.t timeFORCE386_.texi - rm -f *.fixed _* - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Floating Point Unit" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure - -#intr.texi: intr.t FORCE386_TIMES -# ${REPLACE} -p FORCE386_TIMES intr.t -# mv intr.t.fixed intr.texi - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t FORCE386_TIMES - ${REPLACE} -p FORCE386_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t FORCE386_TIMES - ${REPLACE} -p FORCE386_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "CPU386 Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeFORCE386_.t: ../../common/timetbl.t timeFORCE386.t - cat timeFORCE386.t ../../common/timetbl.t >timeFORCE386_.t - @echo >>timeFORCE386_.t - @echo "@tex" >>timeFORCE386_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeFORCE386_.t - @echo "@end tex" >>timeFORCE386_.t - ${REPLACE} -p FORCE386_TIMES timeFORCE386_.t - mv timeFORCE386_.t.fixed timeFORCE386_.t - -timeFORCE386.texi: timeFORCE386_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeFORCE386_.t - mv timeFORCE386_.texi timeFORCE386.texi diff --git a/doc/supplements/i386/Makefile.am b/doc/supplements/i386/Makefile.am new file mode 100644 index 0000000000..7b3d95a273 --- /dev/null +++ b/doc/supplements/i386/Makefile.am @@ -0,0 +1,115 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=i386 + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timeFORCE386.texi + +FILES= preface.texi + +info_TEXINFOS = i386.texi +i386_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Floating Point Unit" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure + +intr.texi: intr_NOTIMES.t FORCE386_TIMES + ${REPLACE2} -p $(srcdir)/FORCE386_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t FORCE386_TIMES + ${REPLACE2} -p $(srcdir)/FORCE386_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "CPU386 Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeFORCE386_.t: $(top_srcdir)/common/timetbl.t timeFORCE386.t + cat timeFORCE386.t $(top_srcdir)/common/timetbl.t >timeFORCE386_.t + @echo >>timeFORCE386_.t + @echo "@tex" >>timeFORCE386_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeFORCE386_.t + @echo "@end tex" >>timeFORCE386_.t + ${REPLACE} -p FORCE386_TIMES timeFORCE386_.t + mv timeFORCE386_.t.fixed timeFORCE386_.t + +timeFORCE386.texi: timeFORCE386_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeFORCE386_.t + mv timeFORCE386_.texi timeFORCE386.texi + +EXTRA_DIST = FORCE386_TIMES *.t diff --git a/doc/supplements/i386/i386.texi b/doc/supplements/i386/i386.texi index 7f07ed014f..d319167587 100644 --- a/doc/supplements/i386/i386.texi +++ b/doc/supplements/i386/i386.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_i386 +@setfilename i386 @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -75,7 +75,7 @@ END-INFO-DIR-ENTRY @include timeFORCE386.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_i386 +@top i386 This is the online version of the RTEMS Intel i386 Applications Supplement. diff --git a/doc/supplements/i386/timeFORCE386_.t b/doc/supplements/i386/timeFORCE386_.t new file mode 100644 index 0000000000..de008d23b2 --- /dev/null +++ b/doc/supplements/i386/timeFORCE386_.t @@ -0,0 +1,1435 @@ +@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/Makefile b/doc/supplements/i960/Makefile deleted file mode 100644 index eac67b94d0..0000000000 --- a/doc/supplements/i960/Makefile +++ /dev/null @@ -1,161 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=i960 - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timeCVME961.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -info: dirs c_i960 - cp c_$(PROJECT) $(INFO_INSTALL) - -c_i960: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_i960 c_i960-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t - rm -f *.fixed _* timing.t timing.texi - rm -f timeCVME961_.t timeCVME961_.texi - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Floating Point Unit" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions Leaf Procedures" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t CVME961_TIMES - ${REPLACE} -p CVME961_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t CVME961_TIMES - ${REPLACE} -p CVME961_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "CVME961 Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeCVME961_.t: ../../common/timetbl.t timeCVME961.t - cat timeCVME961.t ../../common/timetbl.t >timeCVME961_.t - @echo >>timeCVME961_.t - @echo "@tex" >>timeCVME961_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeCVME961_.t - @echo "@end tex" >>timeCVME961_.t - ${REPLACE} -p CVME961_TIMES timeCVME961_.t - mv timeCVME961_.t.fixed timeCVME961_.t - -timeCVME961.texi: timeCVME961_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeCVME961_.t - mv timeCVME961_.texi timeCVME961.texi diff --git a/doc/supplements/i960/Makefile.am b/doc/supplements/i960/Makefile.am new file mode 100644 index 0000000000..b78decbc92 --- /dev/null +++ b/doc/supplements/i960/Makefile.am @@ -0,0 +1,116 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=i960 + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timeCVME961.texi + +FILES= preface.texi + +info_TEXINFOS = i960.texi +i960_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Floating Point Unit" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions Leaf Procedures" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t CVME961_TIMES + ${REPLACE2} -p $(srcdir)/CVME961_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t CVME961_TIMES + ${REPLACE2} -p $(srcdir)/CVME961_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "CVME961 Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeCVME961_.t: $(top_srcdir)/common/timetbl.t timeCVME961.t + cat timeCVME961.t $(top_srcdir)/common/timetbl.t >timeCVME961_.t + @echo >>timeCVME961_.t + @echo "@tex" >>timeCVME961_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeCVME961_.t + @echo "@end tex" >>timeCVME961_.t + ${REPLACE} -p CVME961_TIMES timeCVME961_.t + mv timeCVME961_.t.fixed timeCVME961_.t + +timeCVME961.texi: timeCVME961_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeCVME961_.t + mv timeCVME961_.texi timeCVME961.texi + +EXTRA_DIST = CVME961_TIMES *.t diff --git a/doc/supplements/i960/i960.texi b/doc/supplements/i960/i960.texi index 68b7944afe..ccfc372a7b 100644 --- a/doc/supplements/i960/i960.texi +++ b/doc/supplements/i960/i960.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_i960 +@setfilename i960 @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -75,7 +75,7 @@ END-INFO-DIR-ENTRY @include timeCVME961.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_i960 +@top i960 This is the online version of the RTEMS Intel i960 Applications Supplement. diff --git a/doc/supplements/i960/timeCVME961_.t b/doc/supplements/i960/timeCVME961_.t new file mode 100644 index 0000000000..22c0dafe7a --- /dev/null +++ b/doc/supplements/i960/timeCVME961_.t @@ -0,0 +1,1422 @@ +@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/Makefile b/doc/supplements/m68k/Makefile deleted file mode 100644 index 2dd342c0f2..0000000000 --- a/doc/supplements/m68k/Makefile +++ /dev/null @@ -1,170 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=m68k - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timeMVME136.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -info: dirs c_m68k - cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_m68k: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_m68k c_m68k-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t - rm -f timeMVME136_.t timeMVME136_.texi - rm -f *.fixed _* timing.t - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Extend Byte to Long Instruction" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - - -## Interrupt Chapter: -## 1. Replace Times and Sizes -## 2. Build Node Structure -# -#intr.texi: intr.t MVME136_TIMES -# ${REPLACE} -p MVME136_TIMES intr.t -# mv intr.t.fixed intr.texi - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t MVME136_TIMES - ${REPLACE} -p MVME136_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t MVME136_TIMES - ${REPLACE} -p MVME136_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "MVME136 Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeMVME136_.t: ../../common/timetbl.t timeMVME136.t - cat timeMVME136.t ../../common/timetbl.t >timeMVME136_.t - @echo >>timeMVME136_.t - @echo "@tex" >>timeMVME136_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeMVME136_.t - @echo "@end tex" >>timeMVME136_.t - ${REPLACE} -p MVME136_TIMES timeMVME136_.t - mv timeMVME136_.t.fixed timeMVME136_.t - -timeMVME136.texi: timeMVME136_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeMVME136_.t - mv timeMVME136_.texi timeMVME136.texi diff --git a/doc/supplements/m68k/Makefile.am b/doc/supplements/m68k/Makefile.am new file mode 100644 index 0000000000..447e44e6dd --- /dev/null +++ b/doc/supplements/m68k/Makefile.am @@ -0,0 +1,116 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=m68k + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timeMVME136.texi + +FILES= preface.texi + +info_TEXINFOS = m68k.texi +m68k_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" ${*}.t + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Extend Byte to Long Instruction" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t MVME136_TIMES + ${REPLACE2} -p $(srcdir)/MVME136_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t MVME136_TIMES + ${REPLACE2} -p $(srcdir)/MVME136_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "MVME136 Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeMVME136_.t: $(top_srcdir)/common/timetbl.t timeMVME136.t + cat timeMVME136.t $(top_srcdir)/common/timetbl.t >timeMVME136_.t + @echo >>timeMVME136_.t + @echo "@tex" >>timeMVME136_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeMVME136_.t + @echo "@end tex" >>timeMVME136_.t + ${REPLACE} -p MVME136_TIMES timeMVME136_.t + mv timeMVME136_.t.fixed timeMVME136_.t + +timeMVME136.texi: timeMVME136_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeMVME136_.t + mv timeMVME136_.texi timeMVME136.texi + +EXTRA_DIST = MVME136_TIMES *.t diff --git a/doc/supplements/m68k/m68k.texi b/doc/supplements/m68k/m68k.texi index 7930349a12..e2e7a833d7 100644 --- a/doc/supplements/m68k/m68k.texi +++ b/doc/supplements/m68k/m68k.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_m68k +@setfilename m68k @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -76,7 +76,7 @@ END-INFO-DIR-ENTRY @include timeMVME136.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_m68k +@top m68k This is the online version of the RTEMS Motorola MC68xxx Applications Supplement. diff --git a/doc/supplements/m68k/timeMVME136_.t b/doc/supplements/m68k/timeMVME136_.t new file mode 100644 index 0000000000..ea68b5389f --- /dev/null +++ b/doc/supplements/m68k/timeMVME136_.t @@ -0,0 +1,1442 @@ +@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/Makefile b/doc/supplements/mips64orion/Makefile deleted file mode 100644 index 0895106a7e..0000000000 --- a/doc/supplements/mips64orion/Makefile +++ /dev/null @@ -1,161 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=mips64orion - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi - -FILES= $(PROJECT).texi preface.texi \ - $(COMMON_FILES) $(GENERATED_FILES) - -info: dirs c_$(PROJECT) - @echo NEED TO INSTALL THE INFO FILES - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_$(PROJECT): $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f wksheets.t wksheets_NOTIMES.t - rm -f intr.t - rm -f timeBSP_.t timing.t - rm -f *.fixed _* $(GENERATED_FILES) - rm -f timeBSP_.t timeBSP_.texi - -# -# Chapters which get automatic processing -# -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "BSP_FOR_TIMES Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeBSP_.t: ../../common/timetbl.t timeBSP.t Makefile - cat timeBSP.t ../../common/timetbl.t >timeBSP_.t - @echo >>timeBSP_.t - @echo "@tex" >>timeBSP_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t - @echo "@end tex" >>timeBSP_.t - ${REPLACE} -p BSP_TIMES timeBSP_.t - mv timeBSP_.t.fixed timeBSP_.t - -timeBSP.texi: timeBSP_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeBSP_.t - mv timeBSP_.texi timeBSP.texi diff --git a/doc/supplements/mips64orion/Makefile.am b/doc/supplements/mips64orion/Makefile.am new file mode 100644 index 0000000000..cc30fbb2cc --- /dev/null +++ b/doc/supplements/mips64orion/Makefile.am @@ -0,0 +1,114 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=mips64orion + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi + +FILES= preface.texi + +info_TEXINFOS = mips64orion.texi +mips64orion_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "BSP_FOR_TIMES Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeBSP_.t: $(top_srcdir)/common/timetbl.t timeBSP.t + cat timeBSP.t $(top_srcdir)/common/timetbl.t >timeBSP_.t + @echo >>timeBSP_.t + @echo "@tex" >>timeBSP_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t + @echo "@end tex" >>timeBSP_.t + ${REPLACE} -p BSP_TIMES timeBSP_.t + mv timeBSP_.t.fixed timeBSP_.t + +timeBSP.texi: timeBSP_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeBSP_.t + mv timeBSP_.texi timeBSP.texi + +EXTRA_DIST = BSP_TIMES *.t diff --git a/doc/supplements/mips64orion/mips64orion.texi b/doc/supplements/mips64orion/mips64orion.texi index e6d72a6e8f..acd974ce1a 100644 --- a/doc/supplements/mips64orion/mips64orion.texi +++ b/doc/supplements/mips64orion/mips64orion.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_mips64orion +@setfilename mips64orion @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -76,7 +76,7 @@ END-INFO-DIR-ENTRY @include timeBSP.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_mips64orion +@top mips64orion This is the online version of the RTEMS MIPS64 Orion Applications Supplement. diff --git a/doc/supplements/mips64orion/timeBSP_.t b/doc/supplements/mips64orion/timeBSP_.t new file mode 100644 index 0000000000..3da8e44f40 --- /dev/null +++ b/doc/supplements/mips64orion/timeBSP_.t @@ -0,0 +1,1442 @@ +@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/Makefile b/doc/supplements/powerpc/Makefile deleted file mode 100644 index 585671c558..0000000000 --- a/doc/supplements/powerpc/Makefile +++ /dev/null @@ -1,183 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=powerpc - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timePSIM.texi timeDMV177.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*) - -info: dirs c_$(PROJECT) - cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_$(PROJECT): $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t timing.t - rm -f timePSIM_.t timePSIM_.texi - rm -f timeDMV177_.t timeDMV177_.texi - rm -f *.fixed _* - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Low Power Model" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t PSIM_TIMES - ${REPLACE} -p PSIM_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t PSIM_TIMES - ${REPLACE} -p PSIM_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "PSIM Timing Data" ${*}.t - -# Timing Data for PSIM BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timePSIM_.t: ../../common/timetbl.t timePSIM.t - cat timePSIM.t ../../common/timetbl.t >timePSIM_.t - @echo >>timePSIM_.t - @echo "@tex" >>timePSIM_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timePSIM_.t - @echo "@end tex" >>timePSIM_.t - ${REPLACE} -p PSIM_TIMES timePSIM_.t - mv timePSIM_.t.fixed timePSIM_.t - -timePSIM.texi: timePSIM_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "DMV177 Timing Data" timePSIM_.t - mv timePSIM_.texi timePSIM.texi - -# Timing Data for DMV177 BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeDMV177_.t: ../../common/timetbl.t timeDMV177.t - cat timeDMV177.t ../../common/timetbl.t >timeDMV177_.t - @echo >>timeDMV177_.t - @echo "@tex" >>timeDMV177_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeDMV177_.t - @echo "@end tex" >>timeDMV177_.t - ${REPLACE} -p DMV177_TIMES timeDMV177_.t - mv timeDMV177_.t.fixed timeDMV177_.t - -timeDMV177.texi: timeDMV177_.t Makefile - $(BMENU) -p "PSIM Timing Data Rate Monotonic Manager" \ - -u "Top" \ - -n "Command and Variable Index" timeDMV177_.t - mv timeDMV177_.texi timeDMV177.texi diff --git a/doc/supplements/powerpc/Makefile.am b/doc/supplements/powerpc/Makefile.am new file mode 100644 index 0000000000..40a4dc2d3c --- /dev/null +++ b/doc/supplements/powerpc/Makefile.am @@ -0,0 +1,134 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=powerpc + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timePSIM.texi timeDMV177.texi + +FILES= preface.texi + +info_TEXINFOS = powerpc.texi +powerpc_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Low Power Model" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t PSIM_TIMES + ${REPLACE2} -p $(srcdir)/PSIM_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t PSIM_TIMES + ${REPLACE2} -p $(srcdir)/PSIM_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "PSIM Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for PSIM BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timePSIM_.t: $(top_srcdir)/common/timetbl.t timePSIM.t + cat timePSIM.t $(top_srcdir)/common/timetbl.t >timePSIM_.t + @echo >>timePSIM_.t + @echo "@tex" >>timePSIM_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timePSIM_.t + @echo "@end tex" >>timePSIM_.t + ${REPLACE} -p PSIM_TIMES timePSIM_.t + mv timePSIM_.t.fixed timePSIM_.t + +timePSIM.texi: timePSIM_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "DMV177 Timing Data" timePSIM_.t + mv timePSIM_.texi timePSIM.texi + +# Timing Data for DMV177 BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeDMV177_.t: $(top_srcdir)/common/timetbl.t timeDMV177.t + cat timeDMV177.t $(top_srcdir)/common/timetbl.t >timeDMV177_.t + @echo >>timeDMV177_.t + @echo "@tex" >>timeDMV177_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeDMV177_.t + @echo "@end tex" >>timeDMV177_.t + ${REPLACE} -p DMV177_TIMES timeDMV177_.t + mv timeDMV177_.t.fixed timeDMV177_.t + +timeDMV177.texi: timeDMV177_.t + $(BMENU) -p "PSIM Timing Data Rate Monotonic Manager" \ + -u "Top" \ + -n "Command and Variable Index" timeDMV177_.t + mv timeDMV177_.texi timeDMV177.texi + +EXTRA_DIST = DMV177_TIMES PSIM_TIMES *.t diff --git a/doc/supplements/powerpc/powerpc.texi b/doc/supplements/powerpc/powerpc.texi index b9661ad02d..2047f421e8 100644 --- a/doc/supplements/powerpc/powerpc.texi +++ b/doc/supplements/powerpc/powerpc.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_powerpc +@setfilename powerpc @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -76,7 +76,7 @@ END-INFO-DIR-ENTRY @include timeDMV177.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_powerpc +@top powerpc This is the online version of the RTEMS PowerPC Applications Supplement. diff --git a/doc/supplements/powerpc/timeDMV177_.t b/doc/supplements/powerpc/timeDMV177_.t new file mode 100644 index 0000000000..85bb6fb41b --- /dev/null +++ b/doc/supplements/powerpc/timeDMV177_.t @@ -0,0 +1,1447 @@ +@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 new file mode 100644 index 0000000000..76239b0c39 --- /dev/null +++ b/doc/supplements/powerpc/timePSIM_.t @@ -0,0 +1,1431 @@ +@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/Makefile b/doc/supplements/sh/Makefile deleted file mode 100644 index 387cbf8071..0000000000 --- a/doc/supplements/sh/Makefile +++ /dev/null @@ -1,161 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=sh - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi - -FILES= $(PROJECT).texi preface.texi \ - $(COMMON_FILES) $(GENERATED_FILES) - -info: dirs c_$(PROJECT) - @echo NEED TO INSTALL THE INFO FILES - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_$(PROJECT): $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f wksheets.t wksheets_NOTIMES.t - rm -f intr.t - rm -f timeBSP_.t timing.t - rm -f *.fixed _* $(GENERATED_FILES) - rm -f timeBSP_.t timeBSP_.texi - -# -# Chapters which get automatic processing -# -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "BSP_FOR_TIMES Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeBSP_.t: ../../common/timetbl.t timeBSP.t Makefile - cat timeBSP.t ../../common/timetbl.t >timeBSP_.t - @echo >>timeBSP_.t - @echo "@tex" >>timeBSP_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t - @echo "@end tex" >>timeBSP_.t - ${REPLACE} -p BSP_TIMES timeBSP_.t - mv timeBSP_.t.fixed timeBSP_.t - -timeBSP.texi: timeBSP_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeBSP_.t - mv timeBSP_.texi timeBSP.texi diff --git a/doc/supplements/sh/Makefile.am b/doc/supplements/sh/Makefile.am new file mode 100644 index 0000000000..f4c2226fb0 --- /dev/null +++ b/doc/supplements/sh/Makefile.am @@ -0,0 +1,114 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=sh + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES= $(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi + +FILES= preface.texi + +info_TEXINFOS = sh.texi +sh_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "BSP_FOR_TIMES Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeBSP_.t: $(top_srcdir)/common/timetbl.t timeBSP.t + cat timeBSP.t $(top_srcdir)/common/timetbl.t >timeBSP_.t + @echo >>timeBSP_.t + @echo "@tex" >>timeBSP_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t + @echo "@end tex" >>timeBSP_.t + ${REPLACE} -p BSP_TIMES timeBSP_.t + mv timeBSP_.t.fixed timeBSP_.t + +timeBSP.texi: timeBSP_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeBSP_.t + mv timeBSP_.texi timeBSP.texi + +EXTRA_DIST = BSP_TIMES *.t diff --git a/doc/supplements/sh/sh.texi b/doc/supplements/sh/sh.texi index 26a0b0347f..e49a434972 100644 --- a/doc/supplements/sh/sh.texi +++ b/doc/supplements/sh/sh.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_sh +@setfilename sh @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -76,7 +76,7 @@ END-INFO-DIR-ENTRY @include timeBSP.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_sh +@top sh This is the online version of the RTEMS Hitachi SH Applications Supplement. diff --git a/doc/supplements/sh/timeBSP_.t b/doc/supplements/sh/timeBSP_.t new file mode 100644 index 0000000000..3da8e44f40 --- /dev/null +++ b/doc/supplements/sh/timeBSP_.t @@ -0,0 +1,1442 @@ +@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/Makefile b/doc/supplements/sparc/Makefile deleted file mode 100644 index b390b92205..0000000000 --- a/doc/supplements/sparc/Makefile +++ /dev/null @@ -1,163 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=sparc - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi timing.texi wksheets.texi timeERC32.texi - -FILES= $(PROJECT).texi \ - preface.texi \ - $(GENERATED_FILES) - -INFOFILES=$(wildcard $(PROJECT) $(PROJECT)-*) - -info: dirs c_sparc - cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_sparc: $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: dirs $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f intr.t $(GENERATED_FILES) - rm -f wksheets.t wksheets_NOTIMES.t timing.t - rm -f timeERC32_.t timeERC32_.texi - rm -f *.fixed _* - -# -# Chapters which get automatic processing -# - -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features CPU Model Implementation Notes" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t ERC32_TIMES - ${REPLACE} -p ERC32_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - - -# Worksheets Chapter: -# 1. Obtain the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t ERC32_TIMES - ${REPLACE} -p ERC32_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "ERC32 Timing Data" ${*}.t - -# Timing Data for ERC32 BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeERC32_.t: ../../common/timetbl.t timeERC32.t - cat timeERC32.t ../../common/timetbl.t >timeERC32_.t - @echo >>timeERC32_.t - @echo "@tex" >>timeERC32_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeERC32_.t - @echo "@end tex" >>timeERC32_.t - ${REPLACE} -p ERC32_TIMES timeERC32_.t - mv timeERC32_.t.fixed timeERC32_.t - -timeERC32.texi: timeERC32_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeERC32_.t - mv timeERC32_.texi timeERC32.texi diff --git a/doc/supplements/sparc/Makefile.am b/doc/supplements/sparc/Makefile.am new file mode 100644 index 0000000000..2bfc18cff4 --- /dev/null +++ b/doc/supplements/sparc/Makefile.am @@ -0,0 +1,116 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=sparc + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES=$(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi timing.texi wksheets.texi timeERC32.texi + +FILES= preface.texi + +info_TEXINFOS = sparc.texi +sparc_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# + +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features CPU Model Implementation Notes" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t ERC32_TIMES + ${REPLACE2} -p $(srcdir)/ERC32_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t ERC32_TIMES + ${REPLACE2} -p $(srcdir)/ERC32_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "ERC32 Timing Data" timing.t +CLEANFILES += timing.t + + +# Timing Data for ERC32 BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeERC32_.t: $(top_srcdir)/common/timetbl.t timeERC32.t + cat timeERC32.t $(top_srcdir)/common/timetbl.t >timeERC32_.t + @echo >>timeERC32_.t + @echo "@tex" >>timeERC32_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeERC32_.t + @echo "@end tex" >>timeERC32_.t + ${REPLACE} -p ERC32_TIMES timeERC32_.t + mv timeERC32_.t.fixed timeERC32_.t + +timeERC32.texi: timeERC32_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeERC32_.t + mv timeERC32_.texi timeERC32.texi + +EXTRA_DIST = ERC32_TIMES *.t diff --git a/doc/supplements/sparc/sparc.texi b/doc/supplements/sparc/sparc.texi index 98462acac4..0fece23906 100644 --- a/doc/supplements/sparc/sparc.texi +++ b/doc/supplements/sparc/sparc.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_sparc +@setfilename sparc @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -75,7 +75,7 @@ END-INFO-DIR-ENTRY @include timeERC32.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_sparc +@top sparc This is the online version of the RTEMS SPARC Applications Supplement. diff --git a/doc/supplements/sparc/timeERC32_.t b/doc/supplements/sparc/timeERC32_.t new file mode 100644 index 0000000000..6fc2e1952f --- /dev/null +++ b/doc/supplements/sparc/timeERC32_.t @@ -0,0 +1,1454 @@ +@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 diff --git a/doc/supplements/supplement.am b/doc/supplements/supplement.am new file mode 100644 index 0000000000..ff1e7a9c88 --- /dev/null +++ b/doc/supplements/supplement.am @@ -0,0 +1,11 @@ +## $Id$ + +## +## Makefile fragment common to all supplements/<cpu>/Makefile.ams +## + +REPLACE = $(PERL) $(top_srcdir)/tools/word-replace +REPLACE2 = $(PERL) $(top_srcdir)/tools/word-replace2 + +MAINTAINERCLEANFILES += $(GENERATED_FILES) +CLEANFILES += *.fixed diff --git a/doc/supplements/template/BSP_TIMES b/doc/supplements/template/BSP_TIMES index c80ed37148..10a86f288f 100644 --- a/doc/supplements/template/BSP_TIMES +++ b/doc/supplements/template/BSP_TIMES @@ -7,8 +7,8 @@ # # CPU Model Information # -RTEMS_BSP BSP_FOR_TIMES -RTEMS_CPU_MODEL BSP_CPU_MODEL +RTEMS_BSP MYBSP +RTEMS_CPU_MODEL MYCPU # # Interrupt Latency # diff --git a/doc/supplements/template/Makefile b/doc/supplements/template/Makefile deleted file mode 100644 index e5187e1038..0000000000 --- a/doc/supplements/template/Makefile +++ /dev/null @@ -1,159 +0,0 @@ -# -# COPYRIGHT (c) 1988-1999. -# On-Line Applications Research Corporation (OAR). -# All rights reserved. -# -# $Id$ -# - -PROJECT=template - -include ../../Make.config - -REPLACE=../../tools/word-replace - -all: html info ps pdf - -dirs: - $(make-dirs) - -COMMON_FILES=../../common/cpright.texi ../../common/setup.texi - -GENERATED_FILES=\ - cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ - bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi - -FILES= $(PROJECT).texi preface.texi \ - $(COMMON_FILES) $(GENERATED_FILES) - -info: dirs c_$(PROJECT) - @echo NEED TO INSTALL THE INFO FILES - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - #cp c_$(PROJECT) c_$(PROJECT)-* $(INFO_INSTALL) - -c_$(PROJECT): $(FILES) - $(MAKEINFO) $(PROJECT).texi - -dvi: dirs $(PROJECT).dvi -ps: dirs $(PROJECT).ps -pdf: dirs $(PROJECT).pdf - -$(PROJECT).pdf: $(FILES) - $(TEXI2PDF) $(PROJECT).texi - cp $(PROJECT).pdf $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).ps: $(PROJECT).dvi - dvips -o $(PROJECT).ps $(PROJECT).dvi - cp $(PROJECT).ps $(WWW_INSTALL)/$(PROJECT) - -$(PROJECT).dvi: $(FILES) - $(TEXI2DVI) $(PROJECT).texi - cp $(PROJECT).dvi $(WWW_INSTALL)/$(PROJECT) - -html: dirs $(FILES) - -mkdir -p $(WWW_INSTALL)/$(PROJECT) - $(TEXI2WWW) $(TEXI2WWW_ARGS) -dir $(WWW_INSTALL)/$(PROJECT) \ - $(PROJECT).texi - -clean: - rm -f *.o $(PROG) *.txt core $(PROJECT).pdf - rm -f *.dvi *.ps *.log *.aux *.cp *.fn *.ky *.pg *.toc *.tp *.vr $(BASE) - rm -f $(PROJECT) $(PROJECT)-* - rm -f c_$(PROJECT) c_$(PROJECT)-* - rm -f wksheets.t wksheets_NOTIMES.t - rm -f intr.t - rm -f timeBSP_.t timing.t - rm -f *.fixed _* $(GENERATED_FILES) - rm -f timeBSP_.t - -# -# Chapters which get automatic processing -# -cpumodel.texi: cpumodel.t Makefile - $(BMENU) -p "Preface" \ - -u "Top" \ - -n "Calling Conventions" ${*}.t - -callconv.texi: callconv.t Makefile - $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ - -u "Top" \ - -n "Memory Model" ${*}.t - -memmodel.texi: memmodel.t Makefile - $(BMENU) -p "Calling Conventions User-Provided Routines" \ - -u "Top" \ - -n "Interrupt Processing" ${*}.t - -# Interrupt Chapter: -# 1. Replace Times and Sizes -# 2. Build Node Structure -intr.t: intr_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES intr_NOTIMES.t - mv intr_NOTIMES.t.fixed intr.t - -intr.texi: intr.t Makefile - $(BMENU) -p "Memory Model Flat Memory Model" \ - -u "Top" \ - -n "Default Fatal Error Processing" ${*}.t - -fatalerr.texi: fatalerr.t Makefile - $(BMENU) -p "Interrupt Processing Interrupt Stack" \ - -u "Top" \ - -n "Board Support Packages" ${*}.t - -bsp.texi: bsp.t Makefile - $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ - -u "Top" \ - -n "Processor Dependent Information Table" ${*}.t - -cputable.texi: cputable.t Makefile - $(BMENU) -p "Board Support Packages Processor Initialization" \ - -u "Top" \ - -n "Memory Requirements" ${*}.t - -# Worksheets Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -wksheets_NOTIMES.t: ../../common/wksheets.t - cp ../../common/wksheets.t wksheets_NOTIMES.t - -wksheets.t: wksheets_NOTIMES.t BSP_TIMES - ${REPLACE} -p BSP_TIMES wksheets_NOTIMES.t - mv wksheets_NOTIMES.t.fixed wksheets.t - -wksheets.texi: wksheets.t Makefile - $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ - -u "Top" \ - -n "Timing Specification" ${*}.t - -# Timing Specification Chapter: -# 1. Copy the Shared File -# 3. Build Node Structure - -timing.t: ../../common/timing.t - cp ../../common/timing.t timing.t - -timing.texi: timing.t Makefile - $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ - -u "Top" \ - -n "BSP_FOR_TIMES Timing Data" ${*}.t - -# Timing Data for BSP Chapter: -# 1. Copy the Shared File -# 2. Replace Times and Sizes -# 3. Build Node Structure - -timeBSP_.t: ../../common/timetbl.t timeBSP.t - cat timeBSP.t ../../common/timetbl.t >timeBSP_.t - @echo >>timeBSP_.t - @echo "@tex" >>timeBSP_.t - @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t - @echo "@end tex" >>timeBSP_.t - -timeBSP.texi: timeBSP_.t Makefile - $(BMENU) -p "Timing Specification Terminology" \ - -u "Top" \ - -n "Command and Variable Index" timeBSP_.t - mv timeBSP_.t timeBSP.texi diff --git a/doc/supplements/template/Makefile.am b/doc/supplements/template/Makefile.am new file mode 100644 index 0000000000..1d743aa2b7 --- /dev/null +++ b/doc/supplements/template/Makefile.am @@ -0,0 +1,115 @@ +# +# COPYRIGHT (c) 1988-1999. +# On-Line Applications Research Corporation (OAR). +# All rights reserved. +# +# $Id$ +# + +AUTOMAKE_OPTIONS = foreign + +PROJECT=template + +include $(top_srcdir)/project.am +include $(top_srcdir)/supplements/supplement.am + +COMMON_FILES= $(top_srcdir)/common/cpright.texi $(top_builddir)/common/setup.texi + +GENERATED_FILES=\ + cpumodel.texi callconv.texi memmodel.texi intr.texi fatalerr.texi \ + bsp.texi cputable.texi wksheets.texi timing.texi timeBSP.texi + +FILES= preface.texi + +info_TEXINFOS = template.texi +template_TEXINFOS = $(FILES) $(COMMON_FILES) $(GENERATED_FILES) + +# +# Chapters which get automatic processing +# +cpumodel.texi: cpumodel.t + $(BMENU) -p "Preface" \ + -u "Top" \ + -n "Calling Conventions" $< + +callconv.texi: callconv.t + $(BMENU) -p "CPU Model Dependent Features Another Optional Feature" \ + -u "Top" \ + -n "Memory Model" $< + +memmodel.texi: memmodel.t + $(BMENU) -p "Calling Conventions User-Provided Routines" \ + -u "Top" \ + -n "Interrupt Processing" $< + +# Interrupt Chapter: +# 1. Replace Times and Sizes +# 2. Build Node Structure +intr.texi: intr_NOTIMES.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES $(srcdir)/intr_NOTIMES.t intr.t + $(BMENU) -p "Memory Model Flat Memory Model" \ + -u "Top" \ + -n "Default Fatal Error Processing" intr.t +CLEANFILES += intr.t + +fatalerr.texi: fatalerr.t + $(BMENU) -p "Interrupt Processing Interrupt Stack" \ + -u "Top" \ + -n "Board Support Packages" $< + +bsp.texi: bsp.t + $(BMENU) -p "Default Fatal Error Processing Default Fatal Error Handler Operations" \ + -u "Top" \ + -n "Processor Dependent Information Table" $< + +cputable.texi: cputable.t + $(BMENU) -p "Board Support Packages Processor Initialization" \ + -u "Top" \ + -n "Memory Requirements" $< + +# Worksheets Chapter: +# 1. Obtain the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +wksheets.texi: $(top_srcdir)/common/wksheets.t BSP_TIMES + ${REPLACE2} -p $(srcdir)/BSP_TIMES \ + $(top_srcdir)/common/wksheets.t wksheets.t + $(BMENU) -p "Processor Dependent Information Table CPU Dependent Information Table" \ + -u "Top" \ + -n "Timing Specification" wksheets.t +CLEANFILES += wksheets.t + +# Timing Specification Chapter: +# 1. Copy the Shared File +# 3. Build Node Structure + +timing.texi: $(top_srcdir)/common/timing.t + cp $(top_srcdir)/common/timing.t timing.t + $(BMENU) -p "Memory Requirements RTEMS RAM Workspace Worksheet" \ + -u "Top" \ + -n "MYBSP Timing Data" timing.t +CLEANFILES += timing.t + +# Timing Data for BSP BSP Chapter: +# 1. Copy the Shared File +# 2. Replace Times and Sizes +# 3. Build Node Structure + +timeBSP_.t: $(top_srcdir)/common/timetbl.t timeBSP.t + cat timeBSP.t $(top_srcdir)/common/timetbl.t >timeBSP_.t + @echo >>timeBSP_.t + @echo "@tex" >>timeBSP_.t + @echo "\\global\\advance \\smallskipamount by 4pt" >>timeBSP_.t + @echo "@end tex" >>timeBSP_.t + ${REPLACE} -p BSP_TIMES timeBSP_.t + mv timeBSP_.t.fixed timeBSP_.t +MAINTAINERCLEANFILES += timeBSP_.t + +timeBSP.texi: timeBSP_.t + $(BMENU) -p "Timing Specification Terminology" \ + -u "Top" \ + -n "Command and Variable Index" timeBSP_.t + mv timeBSP_.texi timeBSP.texi + +EXTRA_DIST = BSP_TIMES *.t diff --git a/doc/supplements/template/template.texi b/doc/supplements/template/template.texi index fae5f168ff..ce9e950f17 100644 --- a/doc/supplements/template/template.texi +++ b/doc/supplements/template/template.texi @@ -1,6 +1,6 @@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename c_template +@setfilename template @syncodeindex vr fn @synindex ky cp @paragraphindent 0 @@ -76,7 +76,7 @@ END-INFO-DIR-ENTRY @include timeBSP.texi @ifinfo @node Top, Preface, (dir), (dir) -@top c_template +@top template This is the online version of the RTEMS Template Applications Supplement. @@ -92,7 +92,7 @@ Applications Supplement. * Processor Dependent Information Table:: * Memory Requirements:: * Timing Specification:: -* BSP_FOR_TIMES Timing Data:: +* MYBSP Timing Data:: * Command and Variable Index:: * Concept Index:: @end menu @@ -103,7 +103,7 @@ Applications Supplement. @c Need to copy the emacs stuff and "trailer stuff" (index, toc) into here @c -@node Command and Variable Index, Concept Index, BSP_FOR_TIMES Timing Data Context Switch, Top +@node Command and Variable Index, Concept Index, MYBSP 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/template/timeBSP.t b/doc/supplements/template/timeBSP.t index f8cafd5f89..3787442e7d 100644 --- a/doc/supplements/template/timeBSP.t +++ b/doc/supplements/template/timeBSP.t @@ -11,7 +11,7 @@ \global\advance \smallskipamount by -4pt @end tex -@chapter BSP_FOR_TIMES Timing Data +@chapter MYBSP Timing Data @section Introduction @@ -27,7 +27,7 @@ times as they pertain to the XXX version of RTEMS. 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 +MYBSP CPU board. The MYBSP 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 @@ -66,14 +66,14 @@ 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 +overhead time was generated on an MYBSP benchmark platform using the Multiprocessing Communications registers to generate as the interrupt source. @section Context Switch The RTEMS processor context switch time is RTEMS_NO_FP_CONTEXTS -microseconds on the BSP_FOR_TIMES benchmark platform when no floating +microseconds on the MYBSP 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. @@ -104,5 +104,5 @@ 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: +times for the MYBSP benchmark platform: |