Index: doc/FAQ/debug.t
===================================================================
--- doc/FAQ/debug.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/FAQ/debug.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -10,4 +10,49 @@
 
 The questions in this category are hints that can ease debugging.
+
+@section Executable Size
+
+@subsection Why is my executable so big?
+
+There are two primary causes for this.  The most common is that
+you are doing an @code{ls -l} and looking at the actual file
+size -- not the size of the code in the target image.  This
+file could be in an object format such as ELF or COFF and
+contain debug information.  If this is the case, it could
+be an order of magnitude larger than the required code space.
+Use the strip command in your cross toolset to remove debugging
+information.
+
+The following example was done using the i386-rtems cross toolset
+and the pc386 BSP.  Notice that with symbolic information included
+the file @code{hello.exe} is almost a megabyte and would barely fit
+on a boot floppy.  But there is actually only about 93K of code
+and initialized data.  The other 800K is symbolic information
+which is not required to execute the application.
+
+@example
+$ ls -l hello.exe 
+-rwxrwxr-x    1 joel     users      930515 May  2 09:50 hello.exe
+$ i386-rtems-size hello.exe 
+   text	   data	    bss	    dec	    hex	filename
+  88605	   3591	  11980	 104176	  196f0	hello.exe
+$ i386-rtems-strip hello.exe 
+$ ls -l hello.exe 
+-rwxrwxr-x    1 joel     users      106732 May  2 10:02 hello.exe
+$ i386-rtems-size hello.exe 
+   text	   data	    bss	    dec	    hex	filename
+  88605	   3591	  11980	 104176	  196f0	hello.exe
+@end example
+
+Another alternative is that the executable file is in an ASCII
+format such as Motorola Srecords.  In this case, there is
+no debug information in the file but each byte in the target
+image requires two bytes to represent.  On top of that, there
+is some overhead required to specify the addresses where the image
+is to be placed in target memory as well as checksum information.
+In this case, it is not uncommon to see executable files
+that are between two and three times larger than the actual
+space required in target memory.
+
 
 @section Malloc
Index: doc/TODO
===================================================================
--- doc/TODO	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/TODO	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -8,4 +8,8 @@
 General Issues
 ==============
+Need a Roadmap
+
+Need a description of hello world and writing an application.
+
 More automatic handling of version, date, revision, release, etc.
 
@@ -18,4 +22,16 @@
 ====================================
 Produce PDF
+
+Classic Users Guide
+===================
+
+Add Primitive Data Types Chapter
+
+Add descriptions for confdefs.h macros in configuring a system
+chapter.
+
+Add defaults for all confdefs.h values.
+
+Replace example configuration
 
 POSIX User Notes
Index: doc/networking/testing.t
===================================================================
--- doc/networking/testing.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/networking/testing.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -62,5 +62,5 @@
 @code{sys/mbuf.h} in the network stack code.  Uncommenting
 these lines results in output when mbuf's are allocated
-and freed.  This is very useful for findind memory leaks.
+and freed.  This is very useful for finding memory leaks.
 
 @item TX and RX queuing
Index: doc/posix_users/message.t
===================================================================
--- doc/posix_users/message.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/posix_users/message.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -57,5 +57,6 @@
 queue for the arrival of a message.
 
-The message queue descriptor mqd_t mq represents the message queue. It is
+@findex mqd_t
+The message queue descriptor @code{mqd_t} represents the message queue. It is
 passed as an argument to all of the message queue functions.
 
@@ -65,4 +66,5 @@
 queue.
 
+@findex mq_attr
 @example
 @group
Index: doc/posix_users/semaphores.t
===================================================================
--- doc/posix_users/semaphores.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/posix_users/semaphores.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -43,9 +43,12 @@
 
 @subsection "sem_t" Structure
-The "sem_t" structure is used to represent semaphores. It is passed as an
+
+@findex sem_t
+
+The @code{sem_t} structure is used to represent semaphores. It is passed as an
 argument to the semaphore directives and is defined as follows:
 
 @example
-typedef int sem_t
+typedef int sem_t;
 @end example
 
Index: doc/started/Makefile.am
===================================================================
--- doc/started/Makefile.am	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/Makefile.am	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -18,5 +18,5 @@
 
 GENERATED_FILES= binaries.texi buildc.texi buildrt.texi gdb.texi intro.texi \
-    nt.texi require.texi sample.texi
+    nt.texi require.texi nextstep.texi sample.texi
 
 FILES= tversions.texi
@@ -31,5 +31,5 @@
 
 require.texi: require.t tversions.texi
-	$(BMENU) -c -p "EGCS Mailing List" \
+	$(BMENU) -c -p "GCC Mailing Lists" \
 	    -u "Top" \
 	    -n "Prebuilt Toolset Executables" $<
@@ -58,8 +58,13 @@
 	$(BMENU) -c -p "Application Executable" \
 	    -u "Top" \
+	    -n "Where To Go From Here" $<
+
+nextstep.texi: nextstep.t tversions.texi
+	$(BMENU) -c -p "GDB for DINK32" \
+	    -u "Top" \
 	    -n "Using MS-Windows as a Development Host" $<
 
 nt.texi: nt.t tversions.texi
-	$(BMENU) -c -p "GDB for DINK32" \
+	$(BMENU) -c -p "Where To Go From Here" \
 	    -u "Top" \
 	    -n "" $<
Index: doc/started/buildc.t
===================================================================
--- doc/started/buildc.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/buildc.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -158,8 +158,7 @@
 
 When the @code{bit} script is executed later in this process, 
-it will automatically create two other subdirectories:
+it will automatically create this subdirectory:
 
 @itemize @bullet
-@item src
 @item build-$@{CPU@}-tools
 @end itemize
@@ -196,5 +195,4 @@
             @value{GCC-UNTAR}/
             @value{NEWLIB-UNTAR}/
-            @value{RTEMS-UNTAR}/
             bit
             bit_gdb
@@ -251,10 +249,23 @@
 It is in the reader's and tool maintainers' interest that one read the
 documentation before posting a problem to a mailing list or news group.
-
-@c
-@c  EGCS patches
-@c
-
-@section Apply RTEMS Patch to EGCS
+Much of that documentation is available on-line.  The following is
+a list of URLs where can find HTML versions of the manuals.
+
+@table @b
+GCC Documentation
+http://gcc.gnu.org/onlinedocs
+
+Newlib Documentation
+Not currently online at http://sourceware.cygnus.com/newlib
+
+Binutils Documentation
+Not currently online at http://sourceware.cygnus.com/binutils
+@end table
+
+@c
+@c  GCC patches
+@c
+
+@section Apply RTEMS Patch to GCC
 
 @ifclear GCC-RTEMSPATCH
@@ -397,5 +408,7 @@
 
 @item BUILD_DOCS
-is set to "yes" if you want to install documentation.
+is set to "yes" if you want to install documentation.  This requires
+that tools supporting documentation production be installed.  This
+currently is limited to the GNU texinfo package.
 For example:
 
@@ -406,5 +419,8 @@
 @item BUILD_OTHER_LANGUAGES
 is set to "yes" if you want to build languages other than C and C++.  At
-the current time, this enables Fortan and Objective-C.
+the current time, the set of alternative languages includes Java, Fortran,
+and Objective-C.  These alternative languages do not always build cross. 
+Hence this option defaults to "no".
+
 For example:
 
@@ -428,7 +444,26 @@
 @code{configure} option @code{--enable-posix}.
 
+@item ENABLE_RTEMS_ITRON
+is set to "yes" if you want to enable the RTEMS ITRON API support.
+At this time, this feature is not supported by the UNIX ports of RTEMS
+and is forced to "no" for those targets.  This corresponds to the
+@code{configure} option @code{--enable-itron}.
+
+@item ENABLE_RTEMS_MP
+is set to "yes" if you want to enable the RTEMS multiprocessing
+support.  This feature is not supported by all RTEMS BSPs and
+is automatically forced to "no" for those BSPs.  This corresponds to the
+@code{configure} option @code{--enable-multiprocessing}.
+
+@item ENABLE_RTEMS_CXX
+is set to "yes" if you want to build the RTEMS C++ support including
+the C++ Wrapper for the Classic API.  This corresponds to the
+@code{configure} option @code{--enable-cxx}.
+
 @item ENABLE_RTEMS_TESTS
 is set to "yes" if you want to build the RTEMS Test Suite.  If this
-is set to "no", then only the Sample Tests will be built.
+is set to "no", then only the Sample Tests will be built.  Setting
+this option to "yes" significantly increases the amount of disk
+space required to build RTEMS.
 This corresponds to the @code{configure} option @code{--enable-tests}.
 
@@ -439,8 +474,34 @@
 @code{--enable-tcpip}.
 
-@item ENABLE_RTEMS_CXX
-is set to "yes" if you want to build the RTEMS C++ support including
-the C++ Wrapper for the Classic API.  This corresponds to the
-@code{configure} option @code{--enable-cxx}.
+@item ENABLE_RTEMS_NONDEBUG
+is set to "yes" if you want to build RTEMS in a fully optimized
+state.  This corresponds to executing @code{make} after configuring
+the source tree.
+
+@item ENABLE_RTEMS_DEBUG
+is set to "yes" if you want to build RTEMS in a debug version.
+When built for debug, RTEMS will include run-time code to 
+perform consistency checks such as heap consistency checks.
+Although the precise compilation arguments are BSP dependent,
+the debug version of RTEMS is usually built at a lower optimization
+level.  This is usually done to reduce inlining which can make
+tracing code execution difficult.  This corresponds to executing
+@code{make VARIANT=debug} after configuring
+the source tree.
+
+@item INSTALL_RTEMS
+is set to "yes" if you want to install RTEMS after building it.
+This corresponds to executing @code{make install} after configuring
+and building the source tree.
+
+@item ENABLE_RTEMS_MAINTAINER_MODE
+is set to "yes" if you want to enabled maintainer mode functionality
+in the RTEMS Makefile.  This is disabled by default and it is not
+expected that most users will want to enable this.  When this option
+is enabled, the build process may attempt to regenerate files that
+require tools not required when this option is disabled.
+This corresponds to the @code{configure} option
+@code{--enable-maintainer-mode}.
+
 @end table
 
@@ -471,4 +532,13 @@
 @end itemize
 
+The build process can take a while to complete.  Many users find it
+handy to run the build process in the background, capture the output
+in a file, and monitor the output.  This can be done as follows:
+
+@example
+./bit_ada <target configuration> >bit.log 2>&1 &
+tail -f bit.log
+@end example
+
 If no errors are encountered, the @code{bit} script will conclude by 
 printing messages similar to the following:
@@ -476,5 +546,5 @@
 @example
 
-The src and build-i386-tools subdirectory may now be removed.
+The build-i386-tools subdirectory may now be removed.
 
 Started:  Fri Apr 10 10:14:07 CDT 1998
@@ -524,4 +594,8 @@
 your PATH.
 
+NOTE:  In some environments, it may be difficult remove "."
+completely from your PATH.  In this case, make sure that "."
+is after the system directories containing "as" and "ld".
+
 @subsection Error Messages Indicating Configuration Problems
 
Index: doc/started/buildrt.t
===================================================================
--- doc/started/buildrt.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/buildrt.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -103,4 +103,6 @@
 then all supported BSPs for the selected CPU family will be built.
 
+@b{NOTE:}  The POSIX API must be enabled to use GNAT/RTEMS.
+
 @subsection Using the RTEMS configure Script Directly
 
@@ -112,4 +114,8 @@
 section "Unpack the RTEMS source", these configuration options can be found
 in the file tools/@value{RTEMS-UNTAR}/README.configure.
+
+The GNAT/RTEMS run-time implementation is based on the POSIX API.  Thus
+the RTEMS configuration for a GNAT/RTEMS environment MUST include the
+@code{--enable-posix} flag.
 
 The following shows the command sequence required to configure,
Index: doc/started/intro.t
===================================================================
--- doc/started/intro.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/intro.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -150,14 +150,10 @@
 at ftp://ftp.cygnus.com/pub/embedded/crossgcc.
 
-@subsection EGCS Mailing List
+@subsection GCC Mailing Lists
 
-egcs@@cygnus.com
+See http://gcc.gnu.org for details.
 
-This mailing list is dedicated to the EGCS Project which was
-formed to speed the development and integration of the various
-GNU languages.  The RTEMS and Linux communities were among those
-initially targetted by the EGCS Project as being important
-for its success.  Numerous RTEMS users have made contributions
-to this project.  Subscribe by sending a message with
-the one line "subscribe" to egcs-request@@cygnus.com.
+The GCC Project maintains multiple mailing lists.  They
+are described at the above web site along with subscription
+information.
 
Index: doc/started/nt.t
===================================================================
--- doc/started/nt.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/nt.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -268,14 +268,14 @@
 
 @c
-@c  EGCS
-@c
-
-@section Installing EGCS AND NEWLIB
+@c  GCC
+@c
+
+@section Installing GCC AND NEWLIB
 
 @enumerate
-@item Unarchive and patch @value{EGCS-TAR} and @value{NEWLIB-TAR}
+@item Unarchive and patch @value{GCC-TAR} and @value{NEWLIB-TAR}
 following the instructions in @ref{Unarchiving the Tools}. 
 Apply the appropriate RTEMS specific patches as detailed in
-@ref{Apply RTEMS Patch to EGCS} and @ref{Apply RTEMS Patch to newlib}.
+@ref{Apply RTEMS Patch to GCC} and @ref{Apply RTEMS Patch to newlib}.
 
 @b{NOTE}: See @ref{Bug in Patch Utility}.
@@ -292,5 +292,5 @@
 @b{NOTE}: See @ref{Bug in Patch Utility}.
 
-@item Link the following directories from Newlib to the main EGCS directory, 
+@item Link the following directories from Newlib to the main GCC directory, 
 /source/@value{GCC-UNTAR}/ :
 
Index: doc/started/require.t
===================================================================
--- doc/started/require.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/require.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -17,15 +17,35 @@
 |              Component             |   Disk Space Required    |
 +------------------------------------+--------------------------+
-|        archive directory           |        30 Mbytes         |
-|        tools src unzipped          |       100 Mbytes         |
-|  each individual build directory   |  300 Mbytes worst case   |
-|     each installation directory    |      20-400 Mbytes       |
+|        archive directory           |        35 Mbytes         |
+|        tools src unarchived        |       150 Mbytes         |
+|  each individual build directory   |       300 Mbytes         |
+|     each installation directory    |      20-200 Mbytes       |
 +------------------------------------+--------------------------+
 @end example
 
-The disk space required for each installation directory depends 
-primarily on the number of RTEMS BSPs which are to be installed.
-If a single BSP is installed, then the size of each install directory 
+It is important to understand that the above requirements only address
+the GNU C/C++ Cross Compiler Tools themselves.  Adding additional
+languages such as Fortran or Objective-C can increase the size
+of the build and installation directories.  Also, the unarchived
+source and build directories can be removed after the tools are
+installed.
+
+After the tools themselves are installed, RTEMS must be built
+and installed for each Board Support Package that you wish
+to use.  Thus the precise amount of disk space required
+for each installation directory depends highly on the number
+of RTEMS BSPs which are to be installed.  If a single BSP is
+installed, then the additional size of each install directory
 will tend to be in the 40-60 Mbyte range.
+
+There are a number of factors which must be taken into
+account in oreder to estimate the amount of disk space required
+to build RTEMS itself.  Attempting to build multiple BSPs in
+a single step increases the disk space requirements.  Similarly
+enabling optional features increases the build and install
+space requirements.  In particular, enabling and building
+the RTEMS tests results in a significant increase in build
+space requirements but since the test are not installed has
+no impact on installation requirements.
 
 The instructions in this manual should work on any computer running
Index: doc/started/started.texi
===================================================================
--- doc/started/started.texi	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/started.texi	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -75,4 +75,5 @@
 @include sample.texi
 @include gdb.texi
+@include nextstep.texi
 @include nt.texi
 
@@ -91,4 +92,5 @@
 * Building the Sample Application::
 * Building the GNU Debugger::
+* Where To Go From Here::
 * Using MS-Windows as a Development Host::
 @end menu
Index: doc/started/tversions.texi
===================================================================
--- doc/started/tversions.texi	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started/tversions.texi	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -28,5 +28,5 @@
 @set GCC-FTPDIR      /pub/gcc/gcc-2.95.2
 @set GCC-HTTPDIR     /pub/gcc/releases/index.html
-@set GCC-RTEMSPATCH  gcc-2.95.2-rtems-20000106.diff
+@set GCC-RTEMSPATCH  gcc-2.95.2-rtems-20000427.diff.gz
 
 @c
@@ -43,10 +43,10 @@
 
 @c The "official" Linux binutils
-@set BINUTILS-VERSION     binutils 2.9.5.0.22
-@set BINUTILS-TAR         binutils-2.9.5.0.22.tar.gz
-@set BINUTILS-UNTAR       binutils-2.9.5.0.22
+@set BINUTILS-VERSION     binutils 2.9.5.0.24
+@set BINUTILS-TAR         binutils-2.9.5.0.24.tar.gz
+@set BINUTILS-UNTAR       binutils-2.9.5.0.24
 @set BINUTILS-FTPSITE     ftp.varesearch.com
 @set BINUTILS-FTPDIR      /pub/support/hjl/binutils
-@set BINUTILS-RTEMSPATCH  binutils-2.9.5.0.22-rtems-20000114.diff
+@set BINUTILS-RTEMSPATCH  binutils-2.9.5.0.24-rtems-20000207.diff.gz
 
 @c When forced to use a snapshot
@@ -62,4 +62,5 @@
 @c
 
+
 @set NEWLIB-VERSION     newlib 1.8.2
 @set NEWLIB-TAR         newlib-1.8.2.tar.gz
@@ -67,5 +68,5 @@
 @set NEWLIB-FTPSITE     sourceware.cygnus.com
 @set NEWLIB-FTPDIR      /pub/newlib
-@set NEWLIB-RTEMSPATCH  newlib-1.8.2-rtems-20000104.diff
+@set NEWLIB-RTEMSPATCH  newlib-1.8.2-rtems-20000501.diff.gz
 
 @c
@@ -78,5 +79,5 @@
 @set GDB-FTPSITE     ftp.gnu.org
 @set GDB-FTPDIR      /pub/gnu/gdb
-@set GDB-RTEMSPATCH  gdb-4.18-rtems-20000107.diff
+@set GDB-RTEMSPATCH  gdb-4.18-rtems-20000502.diff.gz
 
 @c
@@ -84,9 +85,10 @@
 @c
 
-@set RTEMS-VERSION   RTEMS 4.5.0-beta
-@set RTEMS-TAR       rtems-4.5.0-beta.tgz
-@set RTEMS-UNTAR     rtems-4.5.0-beta
+@set RTEMS-VERSION   RTEMS 4.5.0-beta2
+@set RTEMS-TAR       rtems-4.5.0-beta2.tgz
+@set RTEMS-UNTAR     rtems-4.5.0-beta2
 @set RTEMS-FTPSITE   ftp.OARcorp.com
-@set RTEMS-FTPDIR    /pub/rtems/releases/4.5.0-beta
-@set BUILDTOOLS-TAR  c_build_scripts-20000104.tgz
+@set RTEMS-FTPDIR    /pub/rtems/betas/4.5.0-beta
+@set BUILDTOOLS-TAR  c_build_scripts-4.5.0-beta2.tgz 
 
+
Index: doc/started_ada/buildada.t
===================================================================
--- doc/started_ada/buildada.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started_ada/buildada.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -212,5 +212,4 @@
             @value{GNAT-UNTAR}/
             @value{NEWLIB-UNTAR}/
-            @value{RTEMS-UNTAR}/
             bit_ada
             bit_gdb
@@ -399,4 +398,7 @@
 @end example
 
+
+===================================================================
+
 @c
 @c  Localizing the Configuration
@@ -405,5 +407,5 @@
 @section Localizing the Configuration
 
-Edit the @code{user.cfg} file to alter the settings of various
+Edit the @code{user.cfg} file to alter the settings of various 
 variables which are used to tailor the build process.
 Each of the variables set in @code{user.cfg} may be modified
@@ -417,10 +419,10 @@
 was generated and for which target system the tools are to produce code for.
 
-@b{WARNING}: The @code{INSTALL_POINT} should not be a subdirectory
+@b{WARNING}: The @code{INSTALL_POINT} should not be a subdirectory 
 under the build directory.  The build directory will be removed
 automatically upon successful completion of the build procedure.
 
 @item BINUTILS
-is the directory under tools that contains @value{BINUTILS-UNTAR}.
+is the directory under tools that contains @value{BINUTILS-UNTAR}. 
 For example:
 
@@ -449,5 +451,7 @@
 
 @item BUILD_DOCS
-is set to "yes" if you want to install documentation.
+is set to "yes" if you want to install documentation.  This requires
+that tools supporting documentation production be installed.  This
+currently is limited to the GNU texinfo package.
 For example:
 
@@ -458,5 +462,8 @@
 @item BUILD_OTHER_LANGUAGES
 is set to "yes" if you want to build languages other than C and C++.  At
-the current time, this enables Fortan and Objective-C.
+the current time, the set of alternative languages includes Java, Fortran,
+and Objective-C.  These alternative languages do not always build cross. 
+Hence this option defaults to "no".
+
 For example:
 
@@ -464,4 +471,10 @@
 BUILD_OTHER_LANGUAGES=yes
 @end example
+
+@b{NOTE:} Based upon the version of the compiler being used, it may not
+be possible to build languages other than C and C++ cross.  In many cases,
+the language run-time support libraries are not "multilib'ed".  Thus the
+executable code in these libraries will be for the default compiler settings
+and not necessarily be correct for your CPU model.
 
 @item RTEMS
@@ -476,7 +489,26 @@
 This must be enabled to support the GNAT/RTEMS run-time.
 
+@item ENABLE_RTEMS_ITRON
+is set to "yes" if you want to enable the RTEMS ITRON API support.
+At this time, this feature is not supported by the UNIX ports of RTEMS
+and is forced to "no" for those targets.  This corresponds to the
+@code{configure} option @code{--enable-itron}.
+
+@item ENABLE_RTEMS_MP
+is set to "yes" if you want to enable the RTEMS multiprocessing
+support.  This feature is not supported by all RTEMS BSPs and
+is automatically forced to "no" for those BSPs.  This corresponds to the
+@code{configure} option @code{--enable-multiprocessing}.
+
+@item ENABLE_RTEMS_CXX
+is set to "yes" if you want to build the RTEMS C++ support including
+the C++ Wrapper for the Classic API.  This corresponds to the
+@code{configure} option @code{--enable-cxx}.
+
 @item ENABLE_RTEMS_TESTS
 is set to "yes" if you want to build the RTEMS Test Suite.  If this
-is set to "no", then only the Sample Tests will be built.
+is set to "no", then only the Sample Tests will be built.  Setting
+this option to "yes" significantly increases the amount of disk
+space required to build RTEMS.
 This corresponds to the @code{configure} option @code{--enable-tests}.
 
@@ -487,8 +519,34 @@
 @code{--enable-tcpip}.
 
-@item ENABLE_RTEMS_CXX
-is set to "yes" if you want to build the RTEMS C++ support including
-the C++ Wrapper for the Classic API.  This corresponds to the
-@code{configure} option @code{--enable-cxx}.
+@item ENABLE_RTEMS_NONDEBUG
+is set to "yes" if you want to build RTEMS in a fully optimized
+state.  This corresponds to executing @code{make} after configuring
+the source tree.
+
+@item ENABLE_RTEMS_DEBUG
+is set to "yes" if you want to build RTEMS in a debug version.
+When built for debug, RTEMS will include run-time code to 
+perform consistency checks such as heap consistency checks.
+Although the precise compilation arguments are BSP dependent,
+the debug version of RTEMS is usually built at a lower optimization
+level.  This is usually done to reduce inlining which can make
+tracing code execution difficult.  This corresponds to executing
+@code{make VARIANT=debug} after configuring
+the source tree.
+
+@item INSTALL_RTEMS
+is set to "yes" if you want to install RTEMS after building it.
+This corresponds to executing @code{make install} after configuring
+and building the source tree.
+
+@item ENABLE_RTEMS_MAINTAINER_MODE
+is set to "yes" if you want to enabled maintainer mode functionality
+in the RTEMS Makefile.  This is disabled by default and it is not
+expected that most users will want to enable this.  When this option
+is enabled, the build process may attempt to regenerate files that
+require tools not required when this option is disabled.
+This corresponds to the @code{configure} option
+@code{--enable-maintainer-mode}.
+
 @end table
 
@@ -523,4 +581,13 @@
 information, contact your GNAT/RTEMS representative.
 
+The build process can take a while to complete.  Many users find it
+handy to run the build process in the background, capture the output
+in a file, and monitor the output.  This can be done as follows:
+
+@example
+./bit_ada <target configuration> >bit.log 2>&1 &
+tail -f bit.log
+@end example
+
 If no errors are encountered, the @code{bit_ada} script will conclude by 
 printing messages similar to the following:
Index: doc/started_ada/require.t
===================================================================
--- doc/started_ada/require.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started_ada/require.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -17,15 +17,35 @@
 |              Component             |   Disk Space Required    |
 +------------------------------------+--------------------------+
-|        archive directory           |        30 Mbytes         |
-|        tools src unzipped          |       100 Mbytes         |
+|        archive directory           |        40 Mbytes         |
+|        tools src unarchived        |       200 Mbytes         |
 |  each individual build directory   |  300 Mbytes worst case   |
-|     each installation directory    |      20-130 Mbytes       |
+|     each installation directory    |      20-200 Mbytes       |
 +------------------------------------+--------------------------+
 @end example
 
-The disk space required for each installation directory depends 
-primarily on the number of RTEMS BSPs which are to be installed.
-If a single BSP is installed, then the size of each install directory 
+It is important to understand that the above requirements only address
+the GNU C/C++ Cross Compiler Tools themselves.  Adding additional
+languages such as Fortran or Objective-C can increase the size
+of the build and installation directories.  Also, the unarchived
+source and build directories can be removed after the tools are
+installed.  
+
+After the tools themselves are installed, RTEMS must be built
+and installed for each Board Support Package that you wish
+to use.  Thus the precise amount of disk space required
+for each installation directory depends highly on the number
+of RTEMS BSPs which are to be installed.  If a single BSP is
+installed, then the additional size of each install directory
 will tend to be in the 40-60 Mbyte range.
+
+There are a number of factors which must be taken into
+account in oreder to estimate the amount of disk space required
+to build RTEMS itself.  Attempting to build multiple BSPs in
+a single step increases the disk space requirements.  Similarly
+enabling optional features increases the build and install
+space requirements.  In particular, enabling and building
+the RTEMS tests results in a significant increase in build
+space requirements but since the test are not installed has
+no impact on installation requirements.
 
 The instructions in this manual should work on any computer running
Index: doc/started_ada/tversions.texi
===================================================================
--- doc/started_ada/tversions.texi	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/started_ada/tversions.texi	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -27,5 +27,5 @@
 @set GCC-FTPSITE     ftp.gnu.org
 @set GCC-FTPDIR      /pub/gnu
-@set GCC-RTEMSPATCH  gcc-2.8.1-rtems-diff-19980527.gz
+@set GCC-RTEMSPATCH  gcc-2.8.1-rtems-gnat-3.12p-20000429.diff.gz
 
 @c
@@ -33,10 +33,10 @@
 @c
 
-@set GNAT-VERSION     gnat 3.11b
-@set GNAT-TAR         gnat-3.11b-src.tar.gz
-@set GNAT-UNTAR       gnat-3.11b-src
+@set GNAT-VERSION     gnat 3.12p
+@set GNAT-TAR         gnat-3.12p-src.tar.gz
+@set GNAT-UNTAR       gnat-3.12p-src
 @set GNAT-FTPSITE     NONE
 @set GNAT-FTPDIR      NO_DIRECTORY
-@set GNAT-RTEMSPATCH  gnat-3.11b-rtems-diff-19981105.gz
+@set GNAT-RTEMSPATCH  gnat-3.12p-rtems-20000429.diff.gz
 
 @c
@@ -50,5 +50,5 @@
 @set BINUTILS-FTPSITE     ftp.gnu.org
 @set BINUTILS-FTPDIR      /pub/gnu
-@set BINUTILS-RTEMSPATCH  binutils-2.9.1-rtems-diff-19981027.gz
+@set BINUTILS-RTEMSPATCH  binutils-2.9.1-rtems-gnat-3.12p-20000429.diff.gz
 
 @c When forced to use a snapshot
@@ -64,10 +64,10 @@
 @c
 
-@set NEWLIB-VERSION     newlib 1.8.1
-@set NEWLIB-TAR         newlib-1.8.1.tar.gz
-@set NEWLIB-UNTAR       newlib-1.8.1
+@set NEWLIB-VERSION     newlib 1.8.2
+@set NEWLIB-TAR         newlib-1.8.2.tar.gz
+@set NEWLIB-UNTAR       newlib-1.8.2
 @set NEWLIB-FTPSITE     ftp.cygnus.com
 @set NEWLIB-FTPDIR      /pub/newlib
-@set NEWLIB-RTEMSPATCH  newlib-1.8.1-rtems-diff-19980121.gz
+@set NEWLIB-RTEMSPATCH  newlib-1.8.2-rtems-20000501.diff.gz
 
 @c
@@ -80,5 +80,5 @@
 @set GDB-FTPSITE     ftp.gnu.org
 @set GDB-FTPDIR      /pub/gnu
-@set GDB-RTEMSPATCH  gdb-4.17-rtems-diff-19981027.gz
+@set GDB-RTEMSPATCH  gdb-4.17-rtems-gnat-3.12p-20000429.diff
 @c @set GDB-GNATPATCH   gdb-ada-patch-1.17.8.gz
 
@@ -87,10 +87,10 @@
 @c
 
-@set RTEMS-VERSION     RTEMS 4.0.0
-@set RTEMS-TAR         rtems-4.0.0.tgz
-@set RTEMS-UNTAR       rtems-4.0.0
-@set RTEMS-FTPSITE     ftp.OARcorp.com
-@set RTEMS-FTPDIR      /pub/rtems/4.0.0
-@set BUILDTOOLS-TAR    ada_build_scripts-4.0.0.tgz
+@set RTEMS-VERSION   RTEMS 4.5.0-beta2
+@set RTEMS-TAR       rtems-4.5.0-beta2.tgz
+@set RTEMS-UNTAR     rtems-4.5.0-beta2
+@set RTEMS-FTPSITE   ftp.OARcorp.com
+@set RTEMS-FTPDIR    /pub/rtems/betas/4.5.0-beta
+@set BUILDTOOLS-TAR  c_build_scripts-4.5.0-beta2.tgz 
 
 
Index: doc/user/clock.t
===================================================================
--- doc/user/clock.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/clock.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -43,5 +43,7 @@
 and time @value{STRUCTURE} for the native time and date format:
 
-@ifset is-C
+
+@ifset is-C
+@findex rtems_time_of_day
 @example
 struct rtems_tod_control @{
@@ -109,4 +111,6 @@
 @subsection Clock Tick and Timeslicing
 
+@cindex timeslicing
+
 Timeslicing is a task scheduling discipline in which
 tasks of equal priority are executed for a specific period of
@@ -129,4 +133,6 @@
 
 @subsection Delays
+
+@cindex delays
 
 A sleep timer allows a task to delay for a given
@@ -140,4 +146,6 @@
 
 @subsection Timeouts
+
+@cindex timeouts
 
 Timeouts are a special type of timer automatically
@@ -191,6 +199,10 @@
 second.  The information returned by the
 @code{@value{DIRPREFIX}clock_get} directive is
-dependent on the option selected by the caller.  The following
-options are available:
+dependent on the option selected by the caller.  This
+is specified using one of the following constants
+associated with the enumerated type
+@code{@value{DIRPREFIX}clock_get_options}:
+
+@findex rtems_clock_get_options 
 
 @itemize @bullet
@@ -326,6 +338,10 @@
 @code{@value{RPREFIX}CLOCK_GET_TICKS_SINCE_BOOT}).
 
-The data type expected for time_buffer is indicated below:
-
+The @code{option} argument may taken on any value of the enumerated
+type @code{rtems_clock_get_options}.  The data type expected for
+@code{time_buffer} is based on the value of @code{option} as
+indicated below:
+
+@findex rtems_clock_get_options 
 @ifset is-C
 @itemize @bullet
Index: doc/user/concepts.t
===================================================================
--- doc/user/concepts.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/concepts.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -44,13 +44,30 @@
 the executive.
 
+@subsection Object Names
+
 @cindex object name
+@findex rtems_object_name
 
 An object name is an unsigned thirty-two bit entity
-associated with the object by the user.  Although not required
-by RTEMS, object names are typically composed of four ASCII
-characters which help identify that object.  For example, a task
-which causes a light to blink might be called "LITE".  Utilities
-are provided to build an object name from four ASCII characters
-and to decompose an object name into four ASCII characters.
+associated with the object by the user.  The data type
+@code{@value{DIRPREFIX}name} is used to store object names.
+
+@findex rtems_build_name
+
+Although not required by RTEMS, object names are often
+composed of four ASCII characters which help identify that object.
+For example, a task which causes a light to blink might be
+called "LITE".  The @code{@value{DIRPREFIX}build_name} routine
+is provided to build an object name from four ASCII characters.  
+@ifset is-C
+The following example illustrates this:
+
+@example
+rtems_object_name my_name;
+
+my_name = rtems_build_name( 'L', 'I', 'T', 'E' );
+@end example
+@end ifset
+
 However, it is not required that the application use ASCII
 characters to build object names.  For example, if an
@@ -60,6 +77,9 @@
 one-hundred, respectively.
 
+@subsection Object IDs
+
 @cindex object ID
 @cindex object ID composition
+@findex rtems_id
 
 @need 3000
@@ -67,4 +87,6 @@
 An object ID is a unique unsigned thirty-two bit
 entity composed of three parts: object class, node, and index.
+The data type @code{@value{DIRPREFIX}id} is used to store object IDs.
+
 
 @ifset use-ascii
@@ -260,4 +282,6 @@
 accuracy of all interval and calendar time operations.
 
+@findex rtems_interval
+
 By tracking time in units of ticks, RTEMS is capable
 of supporting interval timing functions such as task delays,
@@ -268,4 +292,6 @@
 ticks, it is implied that the task will not execute until ten
 clock ticks have occurred.
+All intervals are specified using data type
+@code{@value{DIRPREFIX}interval}.
 
 A characteristic of interval timing is that the
@@ -292,4 +318,8 @@
 task could request to delay until midnight on New Year's Eve
 before lowering the ball at Times Square.
+The data type @code{@value{DIRPREFIX}time_of_day} is used to specify
+calendar time in RTEMS services.  
+@xref{Clock Manager Time and Date Data Structures, , Time and Date Data Structures}.
+@findex rtems_time_of_day
 
 Obviously, the directives which use intervals or wall
Index: doc/user/conf.t
===================================================================
--- doc/user/conf.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/conf.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -205,4 +205,5 @@
 
 @ifset is-C
+@findex rtems_configuration_table
 @example
 @group
@@ -263,5 +264,8 @@
 When using the @code{confdefs.h} mechanism for configuring
 an RTEMS application, the value for this field corresponds
-to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}.
+to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}
+which defaults to @code{NULL}.  Normally, this field should be 
+configured as @code{NULL} as BSPs will assign memory for the
+RTEMS RAM Workspace as part of system initialization.
 
 @item work_space_size
@@ -279,7 +283,7 @@
 an RTEMS application, the value for this field corresponds
 to the setting of the macro @code{CONFIGURE_MICROSECONDS_PER_TICK}.
-If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS}
-macro defaults to 10.
-XXX
+If not defined by the application, then the
+@code{CONFIGURE_MICROSECONDS_PER_TICK} macro defaults to 10000 
+(10 milliseconds).
 
 @item ticks_per_timeslice
@@ -375,6 +379,6 @@
 When using the @code{confdefs.h} mechanism for configuring
 an RTEMS application, the Multiprocessor Configuration Table
-is automatically generated when the @code{CONFIGURE_MPTEST}
-is defined.  If @code{CONFIGURE_MPTEST} is not defined, the this
+is automatically generated when the @code{CONFIGURE_MP_APPLICATION}
+is defined.  If @code{CONFIGURE_MP_APPLICATION} is not defined, the this
 entry is set to NULL.  The generated table has the name
 @code{Multiprocessing_configuration}.
@@ -413,4 +417,5 @@
 
 @ifset is-C
+@findex rtems_api_configuration_table
 @example
 @group
@@ -591,4 +596,6 @@
  
 @ifset is-C
+@findex posix_initialization_threads_table
+@findex posix_api_configuration_table
 @example
 @group
@@ -775,4 +782,5 @@
 
 @ifset is-C
+@findex rtems_initialization_tasks_table
 @example
 typedef struct @{
@@ -898,4 +906,5 @@
 
 @ifset is-C
+@findex rtems_driver_address_table
 @example
 typedef struct @{
@@ -1165,7 +1174,7 @@
 
 When using the @code{confdefs.h} mechanism for configuring
-an RTEMS application, the macro @code{CONFIGURE_MPTEST} must
+an RTEMS application, the macro @code{CONFIGURE_MP_APPLICATION} must
 be defined to automatically generate the Multiprocessor Configuration Table.
-If @code{CONFIGURE_MPTEST}, is not defined, then a NULL pointer
+If @code{CONFIGURE_MP_APPLICATION}, is not defined, then a NULL pointer
 is configured as the address of this table.
 
Index: doc/user/event.t
===================================================================
--- doc/user/event.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/event.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -26,5 +26,7 @@
 @subsection Event Sets
 
+@cindex event flag, definition
 @cindex event set, definition
+@findex rtems_event_set
 
 An event flag is used by a task (or ISR) to inform
@@ -32,5 +34,8 @@
 Thirty-two event flags are associated with each task.  A
 collection of one or more event flags is referred to as an event
-set.  The application developer should remember the following
+set.  The data type @code{@value{DIRPREFIX}event_set} is used to manage
+event sets.
+
+The application developer should remember the following
 key characteristics of event operations when utilizing the event
 manager:
@@ -54,5 +59,5 @@
 An event set is posted when it is directed (or sent) to a task.  A
 pending event is an event that has been posted but not received.  An event
-condition is used to specify the events which the task desires to receive
+condition is used to specify the event set which the task desires to receive
 and the algorithm which will be used to determine when the request is
 satisfied. An event condition is satisfied based upon one of two
Index: doc/user/example.texi
===================================================================
--- doc/user/example.texi	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/example.texi	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -19,6 +19,9 @@
  *  user initialization task, and a simple task.
  *
- *  This example assumes that a board support package exists
- *  and invokes the initialize_executive() directive.
+ *  This example assumes that a board support package exists.
+ *
+ *  Most applications will actually use the confdefs.h method
+ *  to generate their configuration.  This is provided primarily
+ *  for reference.
  */
 
@@ -41,5 +44,5 @@
 
 rtems_configuration_table User_Configuration_Table = @{
-  NULL,                 /* filled in by the BSP */
+  NULL,                 /* dynamically assigned by the BSP */
   65536,                /* executive RAM size */
   2,                    /* maximum tasks */
Index: doc/user/fatal.t
===================================================================
--- doc/user/fatal.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/fatal.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -66,4 +66,6 @@
 
 @subsection Announcing a Fatal Error
+
+@findex _Internal_errors_What_happened
 
 The @code{@value{DIRPREFIX}fatal_error_occurred} directive is invoked when a
Index: doc/user/init.t
===================================================================
--- doc/user/init.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/init.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -88,5 +88,5 @@
 @subsection Initialization Manager Failure
 
-The fatal_error_occurred directive will be called
+The @code{@value{DIRPREFIX}ifatal_error_occurred} directive will be called
 from @code{@value{DIRPREFIX}initialize_executive}
 for any of the following reasons:
@@ -308,6 +308,6 @@
 initialization sequences:
 @code{@value{DIRPREFIX}initialize_executive} or
-@code{@value{DIRPREFIX}nitialize_executive_early} and 
-@code{@value{DIRPREFIX}nitialize_executive_late}.
+@code{@value{DIRPREFIX}initialize_executive_early} and 
+@code{@value{DIRPREFIX}initialize_executive_late}.
 
 @page
Index: doc/user/intr.t
===================================================================
--- doc/user/intr.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/intr.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -44,11 +44,18 @@
 if necessary, and device specific manipulation.
 
+@findex rtems_vector_number
+
 The @code{@value{DIRPREFIX}interrupt_catch}
 directive connects a procedure to
-an interrupt vector.  The interrupt service routine is assumed
+an interrupt vector.  The vector number is managed using
+the @code{@value{DIRPREFIX}vector_number} data type.
+
+The interrupt service routine is assumed
 to abide by these conventions and have a prototype similar to
 the following:
 
 @ifset is-C
+@findex rtems_isr
+
 @example
 rtems_isr user_isr(
Index: doc/user/io.t
===================================================================
--- doc/user/io.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/io.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -70,4 +70,11 @@
 commonly used to distinguish between a number of devices
 controlled by the same driver.
+
+@findex rtems_device_major_number
+@findex rtems_device_minor_number
+
+The data types @code{@value{DIRPREFIX}device_major_number} and
+@code{@value{DIRPREFIX}device_minor_number} are used to
+manipulate device major and minor numbers, respectively.
 
 @subsection Device Names
Index: doc/user/mp.t
===================================================================
--- doc/user/mp.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/mp.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -302,4 +302,5 @@
 
 @ifset is-C
+@findex rtems_mpci_entry
 @example
 @group
@@ -466,11 +467,13 @@
 of the packet for each node in the system.
 
-Many MPCI layers use the packet_length field of the MP_packet_prefix
+@c XXX packet_prefix structure needs to be defined in this document
+Many MPCI layers use the @code{packet_length} field of the
+@code{@value{DIRPREFIX}packet_prefix} portion
 of the packet to avoid sending unnecessary data.  This is especially 
 useful if the media connecting the nodes is relatively slow.
 
 The to_convert field of the MP_packet_prefix portion of the packet indicates
-how much of the packet (in unsigned32's) may require conversion in a 
-heterogeneous system.
+how much of the packet (in @code{@value{DIRPREFIX}unsigned32}'s) may require
+conversion in a heterogeneous system.
 
 @subsection Supporting Heterogeneous Environments
Index: doc/user/rtmon.t
===================================================================
--- doc/user/rtmon.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/rtmon.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -1138,9 +1138,10 @@
 
 @ifset is-C
+@findex rtems_rate_monotonic_period_status
 @example
 typedef struct @{
   rtems_rate_monotonic_period_states  state;
-  unsigned32                          ticks_since_last_period;
-  unsigned32                          ticks_executed_since_last_period;
+  rtems_unsigned32                    ticks_since_last_period;
+  rtems_unsigned32                    ticks_executed_since_last_period;
 @}  rtems_rate_monotonic_period_status;
 @end example
Index: doc/user/signal.t
===================================================================
--- doc/user/signal.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/signal.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -38,9 +38,14 @@
 effect on the receiving task's current execution state.
 
+@findex rtems_signal_set
+
 A signal flag is used by a task (or ISR) to inform
 another task of the occurrence of a significant situation.
 Thirty-two signal flags are associated with each task.  A
 collection of one or more signals is referred to as a signal
-set.  A signal set is posted when it is directed (or sent) to a
+set.  The data type @code{@value{DIRPREFIX}signal_set}
+is used to manipulate signal sets.
+
+A signal set is posted when it is directed (or sent) to a
 task. A pending signal is a signal that has been sent to a task
 with a valid ASR, but has not been processed by that task's ASR.
@@ -217,4 +222,5 @@
 
 @ifset is-C
+@findex rtems_asr
 @example
 rtems_asr user_routine(
Index: doc/user/task.t
===================================================================
--- doc/user/task.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/task.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -121,8 +121,13 @@
 @cindex task priority
 @cindex priority, task
+@findex rtems_task_priority
 
 A task's priority determines its importance in relation to the
 other tasks executing on the same processor.  RTEMS supports 255
-levels of priority ranging from 1 to 255.  Tasks of numerically
+levels of priority ranging from 1 to 255.  The data type
+@code{@value{DIRPREFIX}task_priority} is used to store task
+priorities.
+
+Tasks of numerically
 smaller priority values are more important tasks than tasks of
 numerically larger priority values.  For example, a task at
@@ -144,6 +149,8 @@
 
 @cindex task mode
-
-A task's mode is a combination of the following four components:
+@findex rtems_task_mode
+
+A task's execution mode is a combination of the following
+four components:
 
 @itemize @bullet
@@ -155,5 +162,7 @@
 
 It is used to modify RTEMS' scheduling process and to alter the
-execution environment of the task. 
+execution environment of the task.  The data type
+@code{@value{DIRPREFIX}task_mode} is used to manage the task 
+execution mode.
 
 @cindex preemption
@@ -211,4 +220,5 @@
 
 @cindex task arguments
+@cindex task prototype
 
 All RTEMS tasks are invoked with a single argument which is
@@ -219,4 +229,6 @@
 
 @ifset is-C
+@findex rtems_task
+
 @example
 rtems_task user_task( 
@@ -241,5 +253,6 @@
 @cindex floating point
 
-Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} flag results
+Creating a task with the @code{@value{RPREFIX}FLOATING_POINT} attribute
+flag results
 in additional memory being allocated for the TCB to store the state of the
 numeric coprocessor during task switches.  This additional memory is
@@ -727,8 +740,4 @@
 Valid task priorities range from a high of 1 to a low of 255.
 
-RTEMS supports a maximum of 256 interrupt levels which are
-mapped onto the interrupt levels actually supported by the
-target processor.
-
 The requested stack size should be at least
 @code{@value{RPREFIX}MINIMUM_STACK_SIZE}
@@ -760,4 +769,9 @@
 @item @code{@value{RPREFIX}INTERRUPT_LEVEL(n)} - execute at interrupt level n
 @end itemize
+
+The interrupt level portion of the task execution mode
+supports a maximum of 256 interrupt levels.  These levels are
+mapped onto the interrupt levels actually supported by the
+target processor in a processor dependent fashion.
 
 Tasks should not be made global unless remote tasks must
Index: doc/user/timer.t
===================================================================
--- doc/user/timer.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/timer.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -59,4 +59,5 @@
 
 @ifset is-C
+@findex rtems_timer_service_routine
 @example
 rtems_timer_service_routine user_routine(
Index: doc/user/userext.t
===================================================================
--- doc/user/userext.t	(revision 223b64f331533eaaf7167108f0be4e38410e582f)
+++ doc/user/userext.t	(revision adee597960ce3c5ff0ce303ae9ac25b7eebdfe32)
@@ -57,4 +57,5 @@
 following @value{STRUCTURE}:
 
+@findex rtems_extensions_table
 @ifset is-C
 @example
@@ -69,5 +70,5 @@
   rtems_task_exitted_extension     thread_exitted;
   rtems_fatal_extension            fatal;
-@} User_extensions_Table;
+@} rtems_extensions_table;
 @end group
 @end example
@@ -170,5 +171,5 @@
 conventions on the user.
 
-@subsection TASK_CREATE Extension
+@subsubsection TASK_CREATE Extension
 
 The TASK_CREATE extension directly corresponds to the
@@ -179,4 +180,6 @@
 following:
 
+@findex rtems_task_create_extension
+@findex rtems_extension
 @ifset is-C
 @example
@@ -204,5 +207,5 @@
 chain.
 
-@subsection TASK_START Extension
+@subsubsection TASK_START Extension
 
 The TASK_START extension directly corresponds to the
@@ -213,4 +216,5 @@
 following:
 
+@findex rtems_task_start_extension
 @ifset is-C
 @example
@@ -238,5 +242,5 @@
 it is placed on a ready TCB chain.
 
-@subsection TASK_RESTART Extension
+@subsubsection TASK_RESTART Extension
 
 The TASK_RESTART extension directly corresponds to
@@ -246,4 +250,5 @@
 following:
 
+@findex rtems_task_restart_extension
 @ifset is-C
 @example
@@ -271,5 +276,5 @@
 ready TCB chain.
 
-@subsection TASK_DELETE Extension
+@subsubsection TASK_DELETE Extension
 
 The TASK_DELETE extension is associated with the
@@ -280,4 +285,5 @@
 following:
 
+@findex rtems_task_delete_extension
 @ifset is-C
 @example
@@ -307,5 +313,5 @@
 task is deleting itself (current_task is equal to deleted_task).
 
-@subsection TASK_SWITCH Extension
+@subsubsection TASK_SWITCH Extension
 
 The TASK_SWITCH extension corresponds to a task
@@ -316,4 +322,5 @@
 following:
 
+@findex rtems_task_switch_extension
 @ifset is-C
 @example
@@ -342,5 +349,5 @@
 directives.
 
-@subsection TASK_BEGIN Extension
+@subsubsection TASK_BEGIN Extension
 
 The TASK_BEGIN extension is invoked when a task
@@ -349,4 +356,5 @@
 This user extension have a prototype similar to the following:
 
+@findex rtems_task_begin_extension
 @ifset is-C
 @example
@@ -373,5 +381,5 @@
 extensions, this is not a critical distinction.
 
-@subsection TASK_EXITTED Extension
+@subsubsection TASK_EXITTED Extension
 
 The TASK_EXITTED extension is invoked when a task
@@ -380,4 +388,5 @@
 prototype similar to the following:
 
+@findex rtems_task_exitted_extension
 @ifset is-C
 @example
@@ -408,7 +417,5 @@
 fatal_error_occurred with the @code{@value{RPREFIX}TASK_EXITTED} directive status.
 
-@lowersections
-
-@subsection FATAL Error Extension
+@subsubsection FATAL Error Extension
 
 The FATAL error extension is associated with the
@@ -418,4 +425,5 @@
 This extension should have a prototype similar to the following:
 
+@findex rtems_fatal_extension
 @ifset is-C
 @example
@@ -445,6 +453,4 @@
 used to pass control to a debugger when a fatal error occurs.
 This extension should not call any RTEMS directives.
-
-@raisesections
 
 @subsection Order of Invocation
