summaryrefslogtreecommitdiffstats
path: root/doc/supplements
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-26 18:02:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-04-26 18:02:26 +0000
commit2ba8875a0b268d572ef2a27584d3f845ec1391b0 (patch)
tree70279d7624be264d69e3db5ab15a2af9278be0eb /doc/supplements
parentMerged changes from 4.5 branch and removed that branch. (diff)
downloadrtems-2ba8875a0b268d572ef2a27584d3f845ec1391b0.tar.bz2
Patch rtemsdoc-4.5.0-rc-0.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
which contains the bulk of converting the documentation tree to automake and GNU conventions. Comments follow: This is the automake port of rtemsdoc. To apply: cvs co rtemsdoc cd rtemsdoc sh cvs-rm.sh patch -p0 < rtemsdoc-4.5.0-rc-0.diff sh cvs-add.sh [Attention: cvs-rm.sh and cvs-add.sh directly modify cvs] Known bugs: 1) src2html is not supported (yet? - Is this supposed to work?) 2) all *.pdf images now are generated on-the-fly, but not yet deleted during "make distclean" 3) All supplements, including the templated ones, get build and installed. 4) Building outside of the source tree is completely untested and very likely does not work. 5) Make [ps|pdf] are not (yet) supported, make [dvi|info] are supported by automake's default texinfo rules. Fixing 2, 3 and 5 is almost trivial and needs to be done. 4) is a matter of testing and tool-properties, for now it is simply untested. General issues: * gif vs jpg vs png. I would recommend to replace all images with pngs to avoid potential copyright issues (gif) or lack in quality (jpg, jpg is good for real world photographs, but extremely poor on artificial images, graphs). * pdf images do net get placed correctly in pdf-documents. * texinfo: We now use a local copy of texinfo-4.0's texinfo.tex in texinfo/texinfo.tex for generating infos. However pdftex's system-wide texinfo.tex and pdftexinfo.tex are used for generating *.dvi, *.ps, *.pdf. * .cvsignore files still missing. * I have renamed the supplements filename not to use c_<supplement>, because automake seems to have problems with it. Notes: * Again, I recommend not to put any generated files into CVS. Here, this comprises some *texi, all *.pdf and many *.html pages. Ie. I recommend to run make maintainer-clean before checking in any files. * To get building started, this should be sufficient: ./bootstrap ./configure cd tools; make; cd .. make info * To make a public tarball: [cvs co ; ./bootstrap] ./configure cd tools; make; cd .. make info [make clean] make dist => This generates a rtems-<version>.tar.gz in the toplevel directory. => Building the tools only is required after a "cvs co", but not in a distribution tarball.
Diffstat (limited to '')
-rw-r--r--doc/supplements/Makefile.am7
-rw-r--r--doc/supplements/hppa1_1/Makefile152
-rw-r--r--doc/supplements/hppa1_1/Makefile.am106
-rw-r--r--doc/supplements/hppa1_1/hppa1_1.texi4
-rw-r--r--doc/supplements/i386/Makefile170
-rw-r--r--doc/supplements/i386/Makefile.am115
-rw-r--r--doc/supplements/i386/i386.texi4
-rw-r--r--doc/supplements/i386/timeFORCE386_.t1435
-rw-r--r--doc/supplements/i960/Makefile161
-rw-r--r--doc/supplements/i960/Makefile.am116
-rw-r--r--doc/supplements/i960/i960.texi4
-rw-r--r--doc/supplements/i960/timeCVME961_.t1422
-rw-r--r--doc/supplements/m68k/Makefile170
-rw-r--r--doc/supplements/m68k/Makefile.am116
-rw-r--r--doc/supplements/m68k/m68k.texi4
-rw-r--r--doc/supplements/m68k/timeMVME136_.t1442
-rw-r--r--doc/supplements/mips64orion/Makefile161
-rw-r--r--doc/supplements/mips64orion/Makefile.am114
-rw-r--r--doc/supplements/mips64orion/mips64orion.texi4
-rw-r--r--doc/supplements/mips64orion/timeBSP_.t1442
-rw-r--r--doc/supplements/powerpc/Makefile183
-rw-r--r--doc/supplements/powerpc/Makefile.am134
-rw-r--r--doc/supplements/powerpc/powerpc.texi4
-rw-r--r--doc/supplements/powerpc/timeDMV177_.t1447
-rw-r--r--doc/supplements/powerpc/timePSIM_.t1431
-rw-r--r--doc/supplements/sh/Makefile161
-rw-r--r--doc/supplements/sh/Makefile.am114
-rw-r--r--doc/supplements/sh/sh.texi4
-rw-r--r--doc/supplements/sh/timeBSP_.t1442
-rw-r--r--doc/supplements/sparc/Makefile163
-rw-r--r--doc/supplements/sparc/Makefile.am116
-rw-r--r--doc/supplements/sparc/sparc.texi4
-rw-r--r--doc/supplements/sparc/timeERC32_.t1454
-rw-r--r--doc/supplements/supplement.am11
-rw-r--r--doc/supplements/template/BSP_TIMES4
-rw-r--r--doc/supplements/template/Makefile159
-rw-r--r--doc/supplements/template/Makefile.am115
-rw-r--r--doc/supplements/template/template.texi8
-rw-r--r--doc/supplements/template/timeBSP.t10
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: