[rtems-docs commit] c-user: Fix index locations.

Chris Johns chrisj at rtems.org
Sun Nov 12 03:35:31 UTC 2017


Module:    rtems-docs
Branch:    master
Commit:    6c5640131fca82624f72b2bd33b5b5f46156626e
Changeset: http://git.rtems.org/rtems-docs/commit/?id=6c5640131fca82624f72b2bd33b5b5f46156626e

Author:    Chris Johns <chrisj at rtems.org>
Date:      Sun Nov 12 14:34:48 2017 +1100

c-user: Fix index locations.

Update #3229.

---

 c-user/ada_support.rst                        |   9 +-
 c-user/barrier_manager.rst                    |  29 ++-
 c-user/board_support_packages.rst             |   2 +-
 c-user/chains.rst                             | 118 +++++----
 c-user/clock_manager.rst                      |  72 +++---
 c-user/configuring_a_system.rst               | 338 +++++++++++++-------------
 c-user/constant_bandwidth_server.rst          |  59 +++--
 c-user/cpu_usage_statistics.rst               |   4 +
 c-user/directive_status_codes.rst             |   6 +-
 c-user/dual_ports_memory_manager.rst          |  33 +--
 c-user/event_manager.rst                      |  22 +-
 c-user/fatal_error.rst                        |  39 ++-
 c-user/initialization.rst                     |   9 +-
 c-user/interrupt_manager.rst                  |  51 ++--
 c-user/io_manager.rst                         |  65 ++---
 c-user/key_concepts.rst                       |  45 ++--
 c-user/linker_sets.rst                        |  43 ++--
 c-user/message_manager.rst                    |  45 ++--
 c-user/multiprocessing.rst                    |  30 ++-
 c-user/object_services.rst                    |  80 +++---
 c-user/overview.rst                           |   8 +
 c-user/partition_manager.rst                  |  34 +--
 c-user/pci_library.rst                        |   8 +-
 c-user/rate_monotonic_manager.rst             |  72 +++---
 c-user/red_black_trees.rst                    |   8 +-
 c-user/region_manager.rst                     |  47 ++--
 c-user/rtems_data_types.rst                   |   3 +
 c-user/scheduling_concepts.rst                |  43 ++--
 c-user/semaphore_manager.rst                  |  43 ++--
 c-user/signal_manager.rst                     |  34 +--
 c-user/stack_bounds_checker.rst               |   5 +-
 c-user/symmetric_multiprocessing_services.rst |  13 +-
 c-user/task_manager.rst                       | 147 +++++------
 c-user/timer_manager.rst                      |  48 ++--
 c-user/timespec_helpers.rst                   |  32 +--
 c-user/user_extensions.rst                    |  61 ++---
 36 files changed, 920 insertions(+), 785 deletions(-)

diff --git a/c-user/ada_support.rst b/c-user/ada_support.rst
index b3a61f9..ba7b5b5 100644
--- a/c-user/ada_support.rst
+++ b/c-user/ada_support.rst
@@ -6,11 +6,11 @@
 
 .. _ada_support
 
+.. index:: Ada
+
 Ada Support
 ************
 
-.. index:: Ada
-
 Introduction
 ============
 RTEMS has long had support for the Ada programming language
@@ -24,7 +24,7 @@ components to this support:
 Ada Programming Language Support
 ================================
 
-The Ada programming natively supports multi-threaded programming 
+The Ada programming natively supports multi-threaded programming
 with its own tasking and concurrency model. Native Ada multi-threaded
 applications should work using GNAT/RTEMS with no changes.
 
@@ -90,10 +90,9 @@ to violating assumptions in the GNAT run-time. Specifically a priority
 ceiling mutex should never be used from an ISR and it is difficult to
 predict when the Ada compiler or run-time will use a mutex.
 
-RTEMS has two capabilities which can assist in avoiding this problem. The 
+RTEMS has two capabilities which can assist in avoiding this problem. The
 Classic API Timer Manager allows the creation of Timer Service Routines
 which execute in the context of a task rather than the clock tick
 Interrupt Service Routine. Similarly, there is support for Interrupt Tasks
 which is a mechanism to defer the processing of the event from the
 hardware interrupt level to a thread.
-
diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
index be40985..8e49ef4 100644
--- a/c-user/barrier_manager.rst
+++ b/c-user/barrier_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: barrier
+
 Barrier Manager
 ***************
 
-.. index:: barrier
-
 Introduction
 ============
 
@@ -162,11 +162,12 @@ sequence, related constants, usage, and status codes.
 
 .. _rtems_barrier_create:
 
-BARRIER_CREATE - Create a barrier
----------------------------------
 .. index:: create a barrier
 .. index:: rtems_barrier_create
 
+BARRIER_CREATE - Create a barrier
+---------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -237,12 +238,13 @@ NOTES:
 
 .. _rtems_barrier_ident:
 
-BARRIER_IDENT - Get ID of a barrier
------------------------------------
 .. index:: get ID of a barrier
 .. index:: obtain ID of a barrier
 .. index:: rtems_barrier_ident
 
+BARRIER_IDENT - Get ID of a barrier
+-----------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -278,11 +280,12 @@ NOTES:
 
 .. _rtems_barrier_delete:
 
-BARRIER_DELETE - Delete a barrier
----------------------------------
 .. index:: delete a barrier
 .. index:: rtems_barrier_delete
 
+BARRIER_DELETE - Delete a barrier
+---------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -320,12 +323,13 @@ NOTES:
 
 .. _rtems_barrier_wait:
 
-BARRIER_OBTAIN - Acquire a barrier
-----------------------------------
 .. index:: obtain a barrier
 .. index:: lock a barrier
 .. index:: rtems_barrier_wait
 
+BARRIER_OBTAIN - Acquire a barrier
+----------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -394,12 +398,13 @@ NOTES:
 
 .. _rtems_barrier_release:
 
-BARRIER_RELEASE - Release a barrier
------------------------------------
 .. index:: wait at a barrier
 .. index:: release a barrier
 .. index:: rtems_barrier_release
 
+BARRIER_RELEASE - Release a barrier
+-----------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/board_support_packages.rst b/c-user/board_support_packages.rst
index 9e58632..5d3153f 100644
--- a/c-user/board_support_packages.rst
+++ b/c-user/board_support_packages.rst
@@ -9,10 +9,10 @@ Board Support Packages
 
 .. index:: Board Support Packages
 .. index:: BSPs
+.. index:: BSP, definition
 
 Introduction
 ============
-.. index:: BSP, definition
 
 A board support package (BSP) is a collection of user-provided facilities which
 interface RTEMS and an application with a specific hardware platform.  These
diff --git a/c-user/chains.rst b/c-user/chains.rst
index 382bc46..73e7980 100644
--- a/c-user/chains.rst
+++ b/c-user/chains.rst
@@ -172,9 +172,10 @@ Add nodes with the following code:
 The chain is initialized and the nodes allocated and appended to the
 chain. This is an example of a pool of buffers.
 
+.. index:: chain iterate
+
 Iterating a Chain
 -----------------
-.. index:: chain iterate
 
 Iterating a chain is a common function. The example shows how to iterate the
 buffer pool chain created in the last section to find buffers starting with a
@@ -219,11 +220,12 @@ The section details the Chains directives.
 
 .. _rtems_chain_initialize:
 
-Initialize Chain With Nodes
----------------------------
 .. index:: chain initialize
 .. index:: rtems_chain_initialize
 
+Initialize Chain With Nodes
+---------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -256,11 +258,12 @@ NOTES:
 
 .. _rtems_chain_initialize_empty:
 
-Initialize Empty
-----------------
 .. index:: chain initialize empty
 .. index:: rtems_chain_initialize_empty
 
+Initialize Empty
+----------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -284,11 +287,12 @@ NOTES:
 
 .. _rtems_chain_is_null_node:
 
-Is Null Node ?
---------------
 .. index:: chain is node null
 .. index:: rtems_chain_is_null_node
 
+Is Null Node ?
+--------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -309,11 +313,12 @@ DESCRIPTION:
 
 .. _rtems_chain_head:
 
-Head
-----
 .. index:: chain get head
 .. index:: rtems_chain_head
 
+Head
+----
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -333,11 +338,12 @@ DESCRIPTION:
 
 .. _rtems_chain_tail:
 
-Tail
-----
 .. index:: chain get tail
 .. index:: rtems_chain_tail
 
+Tail
+----
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -357,11 +363,12 @@ DESCRIPTION:
 
 .. _rtems_chain_are_nodes_equal:
 
-Are Two Nodes Equal ?
----------------------
 .. index:: chare are nodes equal
 .. index:: rtems_chain_are_nodes_equal
 
+Are Two Nodes Equal ?
+---------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -384,11 +391,12 @@ DESCRIPTION:
 
 .. _rtems_chain_is_empty:
 
-Is the Chain Empty
-------------------
 .. index:: chain is chain empty
 .. index:: rtems_chain_is_empty
 
+Is the Chain Empty
+------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -410,11 +418,12 @@ DESCRIPTION:
 
 .. _rtems_chain_is_first:
 
-Is this the First Node on the Chain ?
--------------------------------------
 .. index:: chain is node the first
 .. index:: rtems_chain_is_first
 
+Is this the First Node on the Chain ?
+-------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -436,11 +445,12 @@ DESCRIPTION:
 
 .. _rtems_chain_is_last:
 
-Is this the Last Node on the Chain ?
-------------------------------------
 .. index:: chain is node the last
 .. index:: rtems_chain_is_last
 
+Is this the Last Node on the Chain ?
+------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -462,11 +472,12 @@ DESCRIPTION:
 
 .. _rtems_chain_has_only_one_node:
 
-Does this Chain have only One Node ?
-------------------------------------
 .. index:: chain only one node
 .. index:: rtems_chain_has_only_one_node
 
+Does this Chain have only One Node ?
+------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -488,11 +499,12 @@ DESCRIPTION:
 
 .. _rtems_chain_node_count_unprotected:
 
-Returns the node count of the chain (unprotected)
--------------------------------------------------
 .. index:: chain only one node
 .. index:: rtems_chain_node_count_unprotected
 
+Returns the node count of the chain (unprotected)
+-------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -512,11 +524,12 @@ DESCRIPTION:
 
 .. _rtems_chain_is_head:
 
-Is this Node the Chain Head ?
------------------------------
 .. index:: chain is node the head
 .. index:: rtems_chain_is_head
 
+Is this Node the Chain Head ?
+-----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -539,11 +552,12 @@ DESCRIPTION:
 
 .. _rtems_chain_is_tail:
 
-Is this Node the Chain Tail ?
------------------------------
 .. index:: chain is node the tail
 .. index:: rtems_chain_is_tail
 
+Is this Node the Chain Tail ?
+-----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -566,11 +580,12 @@ DESCRIPTION:
 
 .. _rtems_chain_extract:
 
-Extract a Node
---------------
 .. index:: chain extract a node
 .. index:: rtems_chain_extract
 
+Extract a Node
+--------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -596,11 +611,12 @@ NOTES:
 
 .. _rtems_chain_extract_unprotected:
 
-Extract a Node (unprotected)
-----------------------------
 .. index:: chain extract a node unprotected
 .. index:: rtems_chain_extract_unprotected
 
+Extract a Node (unprotected)
+----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -623,11 +639,12 @@ NOTES:
 
 .. _rtems_chain_get:
 
-Get the First Node
-------------------
 .. index:: chain get first node
 .. index:: rtems_chain_get
 
+Get the First Node
+------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -655,11 +672,12 @@ NOTES:
 
 .. _rtems_chain_get_unprotected:
 
-Get the First Node (unprotected)
---------------------------------
 .. index:: chain get first node
 .. index:: rtems_chain_get_unprotected
 
+Get the First Node (unprotected)
+--------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -683,11 +701,12 @@ NOTES:
 
 .. _rtems_chain_insert:
 
-Insert a Node
--------------
 .. index:: chain insert a node
 .. index:: rtems_chain_insert
 
+Insert a Node
+-------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -715,11 +734,12 @@ NOTES:
 
 .. _rtems_chain_insert_unprotected:
 
-Insert a Node (unprotected)
----------------------------
 .. index:: chain insert a node unprotected
 .. index:: rtems_chain_insert_unprotected
 
+Insert a Node (unprotected)
+---------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -744,11 +764,12 @@ NOTES:
 
 .. _rtems_chain_append:
 
-Append a Node
--------------
 .. index:: chain append a node
 .. index:: rtems_chain_append
 
+Append a Node
+-------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -775,11 +796,12 @@ NOTES:
 
 .. _rtems_chain_append_unprotected:
 
-Append a Node (unprotected)
----------------------------
 .. index:: chain append a node unprotected
 .. index:: rtems_chain_append_unprotected
 
+Append a Node (unprotected)
+---------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -803,11 +825,12 @@ NOTES:
 
 .. _rtems_chain_prepend:
 
-Prepend a Node
---------------
 .. index:: prepend node
 .. index:: rtems_chain_prepend
 
+Prepend a Node
+--------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -834,11 +857,12 @@ NOTES:
 
 .. _rtems_chain_prepend_unprotected:
 
-Prepend a Node (unprotected)
-----------------------------
 .. index:: prepend node unprotected
 .. index:: rtems_chain_prepend_unprotected
 
+Prepend a Node (unprotected)
+----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/clock_manager.rst b/c-user/clock_manager.rst
index 03ab4e0..4a7ee84 100644
--- a/c-user/clock_manager.rst
+++ b/c-user/clock_manager.rst
@@ -92,9 +92,10 @@ field in this data structure is the number of seconds since the POSIX epoch of
 *January 1, 1970* but will never be prior to the RTEMS epoch of *January 1,
 1988*.
 
+.. index:: timeslicing
+
 Clock Tick and Timeslicing
 --------------------------
-.. index:: timeslicing
 
 Timeslicing is a task scheduling discipline in which tasks of equal priority
 are executed for a specific period of time before control of the CPU is passed
@@ -111,9 +112,10 @@ running task's time-remaining counter when both timeslicing and preemption are
 enabled.  If the task's timeslice has expired, then that task will be preempted
 if there exists a ready task of equal priority.
 
+.. index:: delays
+
 Delays
 ------
-.. index:: delays
 
 A sleep timer allows a task to delay for a given interval or up until a given
 time, and then wake and continue execution.  This type of timer is created
@@ -122,9 +124,10 @@ directives and, as a result, does not have an RTEMS ID.  Once activated, a
 sleep timer cannot be explicitly deleted.  Each task may activate one and only
 one sleep timer at a time.
 
+.. index:: timeouts
+
 Timeouts
 --------
-.. index:: timeouts
 
 Timeouts are a special type of timer automatically created when the timeout
 option is used on the ``rtems_message_queue_receive``, ``rtems_event_receive``,
@@ -183,11 +186,11 @@ RTEMS provides multiple directives which can be used by an application to obtain
 Calendar time operations will return an error code if invoked before the date
 and time have been set.
 
+.. index:: rtems_clock_get
+
 Transition Advice for the Obsolete rtems_clock_get
 --------------------------------------------------
 
-.. index:: rtems_clock_get
-
 The method ``rtems_clock_get`` took an untyped pointer with an
 options argument to indicate the time information desired. This has
 been replaced with a set of typed directives whose name is of the form
@@ -211,11 +214,12 @@ related constants, usage, and status codes.
 
 .. _rtems_clock_set:
 
-CLOCK_SET - Set date and time
------------------------------
 .. index:: set the time of day
 .. index:: rtems_clock_set
 
+CLOCK_SET - Set date and time
+-----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -260,11 +264,12 @@ NOTES:
 
 .. _rtems_clock_get_tod:
 
-CLOCK_GET_TOD - Get date and time in TOD format
------------------------------------------------
 .. index:: obtain the time of day
 .. index:: rtems_clock_get_tod
 
+CLOCK_GET_TOD - Get date and time in TOD format
+-----------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -303,11 +308,12 @@ NOTES:
 
 .. _rtems_clock_get_tod_timeval:
 
-CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format
------------------------------------------------------------
 .. index:: obtain the time of day
 .. index:: rtems_clock_get_tod_timeval
 
+CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format
+-----------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -346,11 +352,12 @@ NOTES:
 
 .. _rtems_clock_get_seconds_since_epoch:
 
-CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch
--------------------------------------------------------
 .. index:: obtain seconds since epoch
 .. index:: rtems_clock_get_seconds_since_epoch
 
+CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch
+-------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -389,11 +396,12 @@ NOTES:
 
 .. _rtems_clock_get_ticks_per_second:
 
-CLOCK_GET_TICKS_PER_SECOND - Get ticks per second
--------------------------------------------------
 .. index:: obtain seconds since epoch
 .. index:: rtems_clock_get_ticks_per_second
 
+CLOCK_GET_TICKS_PER_SECOND - Get ticks per second
+-------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -418,12 +426,13 @@ NOTES:
 
 .. _rtems_clock_get_ticks_since_boot:
 
-CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value
-------------------------------------------------------------
 .. index:: obtain ticks since boot
 .. index:: get current ticks counter value
 .. index:: rtems_clock_get_ticks_since_boot
 
+CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value
+------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -452,9 +461,10 @@ NOTES:
 
 .. _rtems_clock_tick_later:
 
+.. index:: rtems_clock_tick_later
+
 CLOCK_TICK_LATER - Get tick value in the future
 -----------------------------------------------
-.. index:: rtems_clock_tick_later
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -477,9 +487,10 @@ NOTES:
 
 .. _rtems_clock_tick_later_usec:
 
+.. index:: rtems_clock_tick_later_usec
+
 CLOCK_TICK_LATER_USEC - Get tick value in the future in microseconds
 --------------------------------------------------------------------
-.. index:: rtems_clock_tick_later_usec
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -502,9 +513,10 @@ NOTES:
 
 .. _rtems_clock_tick_before:
 
+.. index:: rtems_clock_tick_before
+
 CLOCK_TICK_BEFORE - Is tick value is before a point in time
 -----------------------------------------------------------
-.. index:: rtems_clock_tick_before
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -542,12 +554,13 @@ EXAMPLE:
 
 .. _rtems_clock_get_uptime:
 
-CLOCK_GET_UPTIME - Get the time since boot
-------------------------------------------
 .. index:: clock get uptime
 .. index:: uptime
 .. index:: rtems_clock_get_uptime
 
+CLOCK_GET_UPTIME - Get the time since boot
+------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -577,12 +590,13 @@ NOTES:
 
 .. _rtems_clock_get_uptime_timeval:
 
-CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format
---------------------------------------------------------------------
 .. index:: clock get uptime interval
 .. index:: uptime
 .. index:: rtems_clock_get_uptime_timeval
 
+CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format
+--------------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -607,12 +621,13 @@ NOTES:
 
 .. _rtems_clock_get_uptime_seconds:
 
-CLOCK_GET_UPTIME_SECONDS - Get the seconds since boot
------------------------------------------------------
 .. index:: clock get uptime seconds
 .. index:: uptime
 .. index:: rtems_clock_get_uptime_seconds
 
+CLOCK_GET_UPTIME_SECONDS - Get the seconds since boot
+-----------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -633,12 +648,13 @@ NOTES:
 
 .. _rtems_clock_get_uptime_nanoseconds:
 
-CLOCK_GET_UPTIME_NANOSECONDS - Get the nanoseconds since boot
--------------------------------------------------------------
 .. index:: clock get nanoseconds uptime
 .. index:: uptime
 .. index:: rtems_clock_get_uptime_nanoseconds
 
+CLOCK_GET_UPTIME_NANOSECONDS - Get the nanoseconds since boot
+-------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index d507088..dd1ddd8 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -6,11 +6,11 @@
 
 .. _Configuring a System:
 
+.. index:: configuring a system
+
 Configuring a System
 ********************
 
-.. index:: configuring a system
-
 Introduction
 ============
 
@@ -400,9 +400,10 @@ largely unpredictable time in the field.
 
 .. _Per Object Class Unlimited Object Instances:
 
+.. index:: rtems_resource_unlimited
+
 Per Object Class Unlimited Object Instances
 -------------------------------------------
-.. index:: rtems_resource_unlimited
 
 When the number of objects is not known ahead of time, RTEMS provides an
 auto-extending mode that can be enabled individually for each object type by
@@ -442,10 +443,10 @@ responsible for enabling unlimited objects and specifying the allocation size.
 .. COMMENT: === CONFIGURE_UNLIMITED_OBJECTS ===
 
 .. _Enable Unlimited Object Instances:
+.. index:: CONFIGURE_UNLIMITED_OBJECTS
 
 Enable Unlimited Object Instances
 ---------------------------------
-.. index:: CONFIGURE_UNLIMITED_OBJECTS
 
 CONSTANT:
     ``CONFIGURE_UNLIMITED_OBJECTS``
@@ -517,10 +518,10 @@ supported by ``<rtems/confdefs.h>``.
 .. COMMENT: === CONFIGURE_MAXIMUM_TASKS ===
 
 .. _Specify Maximum Classic API Tasks:
+.. index:: CONFIGURE_MAXIMUM_TASKS
 
 Specify Maximum Classic API Tasks
 ---------------------------------
-.. index:: CONFIGURE_MAXIMUM_TASKS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_TASKS``
@@ -562,10 +563,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_TIMERS ===
 
 .. _Specify Maximum Classic API Timers:
+.. index:: CONFIGURE_MAXIMUM_TIMERS
 
 Specify Maximum Classic API Timers
 ----------------------------------
-.. index:: CONFIGURE_MAXIMUM_TIMERS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_TIMERS``
@@ -589,10 +590,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_SEMAPHORES ===
 
 .. _Specify Maximum Classic API Semaphores:
+.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
 
 Specify Maximum Classic API Semaphores
 --------------------------------------
-.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_SEMAPHORES``
@@ -616,10 +617,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_MRSP_SEMAPHORES ===
 
 .. _Specify Maximum Classic API Semaphores usable with MrsP:
+.. index:: CONFIGURE_MAXIMUM_MRSP_SEMAPHORES
 
 Specify Maximum Classic API Semaphores usable with MrsP
 -------------------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_MRSP_SEMAPHORES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_MRSP_SEMAPHORES``
@@ -645,10 +646,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_MESSAGE_QUEUES ===
 
 .. _Specify Maximum Classic API Message Queues:
+.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
 
 Specify Maximum Classic API Message Queues
 ------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
@@ -672,10 +673,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_BARRIERS ===
 
 .. _Specify Maximum Classic API Barriers:
+.. index:: CONFIGURE_MAXIMUM_BARRIERS
 
 Specify Maximum Classic API Barriers
 ------------------------------------
-.. index:: CONFIGURE_MAXIMUM_BARRIERS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_BARRIERS``
@@ -699,10 +700,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_PERIODS ===
 
 .. _Specify Maximum Classic API Periods:
+.. index:: CONFIGURE_MAXIMUM_PERIODS
 
 Specify Maximum Classic API Periods
 -----------------------------------
-.. index:: CONFIGURE_MAXIMUM_PERIODS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PERIODS``
@@ -726,10 +727,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_PARTITIONS ===
 
 .. _Specify Maximum Classic API Partitions:
+.. index:: CONFIGURE_MAXIMUM_PARTITIONS
 
 Specify Maximum Classic API Partitions
 --------------------------------------
-.. index:: CONFIGURE_MAXIMUM_PARTITIONS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PARTITIONS``
@@ -753,10 +754,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_REGIONS ===
 
 .. _Specify Maximum Classic API Regions:
+.. index:: CONFIGURE_MAXIMUM_REGIONS
 
 Specify Maximum Classic API Regions
 -----------------------------------
-.. index:: CONFIGURE_MAXIMUM_REGIONS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_REGIONS``
@@ -780,10 +781,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_PORTS ===
 
 .. _Specify Maximum Classic API Ports:
+.. index:: CONFIGURE_MAXIMUM_PORTS
 
 Specify Maximum Classic API Ports
 ---------------------------------
-.. index:: CONFIGURE_MAXIMUM_PORTS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PORTS``
@@ -807,10 +808,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_USER_EXTENSIONS ===
 
 .. _Specify Maximum Classic API User Extensions:
+.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS
 
 Specify Maximum Classic API User Extensions
 -------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_USER_EXTENSIONS``
@@ -843,10 +844,10 @@ The following parameters control the generation of that table.
 .. COMMENT: === CONFIGURE_RTEMS_INIT_TASKS_TABLE ===
 
 .. _Instantiate Classic API Initialization Task Table:
+.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
 Instantiate Classic API Initialization Task Table
 -------------------------------------------------
-.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
 CONSTANT:
     ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``
@@ -880,10 +881,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_ENTRY_POINT ===
 
 .. _Specifying Classic API Initialization Task Entry Point:
+.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT
 
 Specifying Classic API Initialization Task Entry Point
 ------------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_ENTRY_POINT``
@@ -909,10 +910,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_NAME ===
 
 .. _Specifying Classic API Initialization Task Name:
+.. index:: CONFIGURE_INIT_TASK_NAME
 
 Specifying Classic API Initialization Task Name
 -----------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_NAME
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_NAME``
@@ -936,10 +937,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_STACK_SIZE ===
 
 .. _Specifying Classic API Initialization Task Stack Size:
+.. index:: CONFIGURE_INIT_TASK_STACK_SIZE
 
 Specifying Classic API Initialization Task Stack Size
 -----------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_STACK_SIZE
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_STACK_SIZE``
@@ -966,10 +967,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_PRIORITY ===
 
 .. _Specifying Classic API Initialization Task Priority:
+.. index:: CONFIGURE_INIT_TASK_PRIORITY
 
 Specifying Classic API Initialization Task Priority
 ---------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_PRIORITY
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_PRIORITY``
@@ -993,10 +994,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_ATTRIBUTES ===
 
 .. _Specifying Classic API Initialization Task Attributes:
+.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES
 
 Specifying Classic API Initialization Task Attributes
 -----------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_ATTRIBUTES``
@@ -1020,10 +1021,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_INITIAL_MODES ===
 
 .. _Specifying Classic API Initialization Task Modes:
+.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
 
 Specifying Classic API Initialization Task Modes
 ------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_INITIAL_MODES``
@@ -1048,10 +1049,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INIT_TASK_ARGUMENTS ===
 
 .. _Specifying Classic API Initialization Task Arguments:
+.. index:: CONFIGURE_INIT_TASK_ARGUMENTS
 
 Specifying Classic API Initialization Task Arguments
 ----------------------------------------------------
-.. index:: CONFIGURE_INIT_TASK_ARGUMENTS
 
 CONSTANT:
     ``CONFIGURE_INIT_TASK_ARGUMENTS``
@@ -1075,10 +1076,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_HAS_OWN_INIT_TASK_TABLE ===
 
 .. _Not Using Generated Initialization Tasks Table:
+.. index:: CONFIGURE_HAS_OWN_INIT_TASK_TABLE
 
 Not Using Generated Initialization Tasks Table
 ----------------------------------------------
-.. index:: CONFIGURE_HAS_OWN_INIT_TASK_TABLE
 
 CONSTANT:
     ``CONFIGURE_HAS_OWN_INIT_TASK_TABLE``
@@ -1113,10 +1114,10 @@ time using the ``--enable-posix`` option.
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_THREADS ===
 
 .. _Specify Maximum POSIX API Threads:
+.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
 
 Specify Maximum POSIX API Threads
 ---------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_THREADS``
@@ -1153,10 +1154,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_KEYS ===
 
 .. _Specify Maximum POSIX API Keys:
+.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
 
 Specify Maximum POSIX API Keys
 ------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_KEYS``
@@ -1182,10 +1183,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_TIMERS ===
 
 .. _Specify Maximum POSIX API Timers:
+.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
 
 Specify Maximum POSIX API Timers
 --------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
@@ -1209,10 +1210,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ===
 
 .. _Specify Maximum POSIX API Queued Signals:
+.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
 
 Specify Maximum POSIX API Queued Signals
 ----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
@@ -1236,10 +1237,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ===
 
 .. _Specify Maximum POSIX API Message Queues:
+.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
 
 Specify Maximum POSIX API Message Queues
 ----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
@@ -1263,10 +1264,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ===
 
 .. _Specify Maximum POSIX API Semaphores:
+.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
 
 Specify Maximum POSIX API Named Semaphores
 ------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
@@ -1302,10 +1303,10 @@ a single entry.  The following parameters control the generation of that table.
 .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_TABLE ===
 
 .. _Instantiate POSIX API Initialization Thread Table:
+.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
 
 Instantiate POSIX API Initialization Thread Table
 -------------------------------------------------
-.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
 
 CONSTANT:
 
@@ -1341,10 +1342,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT ===
 
 .. _Specifying POSIX API Initialization Thread Entry Point:
+.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
 
 Specifying POSIX API Initialization Thread Entry Point
 ------------------------------------------------------
-.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
 
 CONSTANT:
     ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT``
@@ -1370,10 +1371,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE ===
 
 .. _Specifying POSIX API Initialization Thread Stack Size:
+.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
 
 Specifying POSIX API Initialization Thread Stack Size
 -----------------------------------------------------
-.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
 
 CONSTANT:
     ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE``
@@ -1401,10 +1402,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE ===
 
 .. _Not Using Generated POSIX Initialization Threads Table:
+.. index:: CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
 
 Not Using Generated POSIX Initialization Threads Table
 ------------------------------------------------------
-.. index:: CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
 
 CONSTANT:
     ``CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE``
@@ -1438,15 +1439,15 @@ This section defines the general system configuration parameters supported by
 .. COMMENT: === CONFIGURE_UNIFIED_WORK_AREAS ===
 
 .. _Separate or Unified Work Areas:
-
-Separate or Unified Work Areas
-------------------------------
 .. index:: CONFIGURE_UNIFIED_WORK_AREAS
 .. index:: unified work areas
 .. index:: separate work areas
 .. index:: RTEMS Workspace
 .. index:: C Program Heap
 
+Separate or Unified Work Areas
+------------------------------
+
 CONSTANT:
     ``CONFIGURE_UNIFIED_WORK_AREAS``
 
@@ -1481,10 +1482,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_PROCESSORS ===
 
 .. _CONFIGURE_MAXIMUM_PROCESSORS:
+.. index:: CONFIGURE_MAXIMUM_PROCESSORS
 
 Specify Maximum Processors
 ----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_PROCESSORS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PROCESSORS``
@@ -1514,11 +1515,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_MICROSECONDS_PER_TICK ===
 
 .. _CONFIGURE_MICROSECONDS_PER_TICK:
+.. index:: CONFIGURE_MICROSECONDS_PER_TICK
+.. index:: tick quantum
 
 Length of Each Clock Tick
 -------------------------
-.. index:: CONFIGURE_MICROSECONDS_PER_TICK
-.. index:: tick quantum
 
 CONSTANT:
     ``CONFIGURE_MICROSECONDS_PER_TICK``
@@ -1561,11 +1562,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_TICKS_PER_TIMESLICE ===
 
 .. _Specifying Timeslicing Quantum:
+.. index:: CONFIGURE_TICKS_PER_TIMESLICE
+.. index:: ticks per timeslice
 
 Specifying Timeslicing Quantum
 ------------------------------
-.. index:: CONFIGURE_TICKS_PER_TIMESLICE
-.. index:: ticks per timeslice
 
 CONSTANT:
     ``CONFIGURE_TICKS_PER_TIMESLICE``
@@ -1590,13 +1591,13 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_PRIORITY ===
 
 .. _Specifying the Number of Thread Priority Levels:
-
-Specifying the Number of Thread Priority Levels
------------------------------------------------
 .. index:: CONFIGURE_MAXIMUM_PRIORITY
 .. index:: maximum priority
 .. index:: number of priority levels
 
+Specifying the Number of Thread Priority Levels
+-----------------------------------------------
+
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PRIORITY``
 
@@ -1637,11 +1638,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_THREAD_NAME_SIZE ===
 
 .. _CONFIGURE_MAXIMUM_THREAD_NAME_SIZE:
+.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
+.. index:: maximum thread name size
 
 Specifying the Maximum Thread Name Size
 ---------------------------------------
-.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
-.. index:: maximum thread name size
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE``
@@ -1668,11 +1669,11 @@ NOTE:
 .. COMMENT: === CONFIGURE_MINIMUM_TASK_STACK_SIZE ===
 
 .. _Specifying the Minimum Task Size:
+.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE
+.. index:: minimum task stack size
 
 Specifying the Minimum Task Size
 --------------------------------
-.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE
-.. index:: minimum task stack size
 
 CONSTANT:
     ``CONFIGURE_MINIMUM_TASK_STACK_SIZE``
@@ -1707,11 +1708,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_INTERRUPT_STACK_SIZE ===
 
 .. _Configuring the Size of the Interrupt Stack:
+.. index:: CONFIGURE_INTERRUPT_STACK_SIZE
+.. index:: interrupt stack size
 
 Configuring the Size of the Interrupt Stack
 -------------------------------------------
-.. index:: CONFIGURE_INTERRUPT_STACK_SIZE
-.. index:: interrupt stack size
 
 CONSTANT:
     ``CONFIGURE_INTERRUPT_STACK_SIZE``
@@ -1742,11 +1743,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_EXTRA_TASK_STACKS ===
 
 .. _Reserve Task/Thread Stack Memory Above Minimum:
+.. index:: CONFIGURE_EXTRA_TASK_STACKS
+.. index:: memory for task tasks
 
 Reserve Task/Thread Stack Memory Above Minimum
 ----------------------------------------------
-.. index:: CONFIGURE_EXTRA_TASK_STACKS
-.. index:: memory for task tasks
 
 CONSTANT:
     ``CONFIGURE_EXTRA_TASK_STACKS``
@@ -1773,15 +1774,15 @@ NOTES:
 .. COMMENT: === CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY ===
 
 .. _Automatically Zeroing the RTEMS Workspace and C Program Heap:
-
-Automatically Zeroing the RTEMS Workspace and C Program Heap
-------------------------------------------------------------
 .. index:: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
 .. index:: clear C Program Heap
 .. index:: clear RTEMS Workspace
 .. index:: zero C Program Heap
 .. index:: zero RTEMS Workspace
 
+Automatically Zeroing the RTEMS Workspace and C Program Heap
+------------------------------------------------------------
+
 CONSTANT:
     ``CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY``
 
@@ -1807,10 +1808,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_STACK_CHECKER_ENABLED ===
 
 .. _Enable The Task Stack Usage Checker:
+.. index:: CONFIGURE_STACK_CHECKER_ENABLED
 
 Enable The Task Stack Usage Checker
 -----------------------------------
-.. index:: CONFIGURE_STACK_CHECKER_ENABLED
 
 CONSTANT:
     ``CONFIGURE_STACK_CHECKER_ENABLED``
@@ -1837,10 +1838,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_INITIAL_EXTENSIONS ===
 
 .. _CONFIGURE_INITIAL_EXTENSIONS:
+.. index:: CONFIGURE_INITIAL_EXTENSIONS
 
 Specify Application Specific User Extensions
 --------------------------------------------
-.. index:: CONFIGURE_INITIAL_EXTENSIONS
 
 CONSTANT:
     ``CONFIGURE_INITIAL_EXTENSIONS``
@@ -1875,10 +1876,10 @@ overflows are detected in hardware.
 .. COMMENT: === CONFIGURE_TASK_STACK_ALLOCATOR_INIT ===
 
 .. _Custom Task Stack Allocator Initialization:
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
 
 Custom Task Stack Allocator Initialization
 ------------------------------------------
-.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
 
 CONSTANT:
     ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
@@ -1910,12 +1911,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_TASK_STACK_ALLOCATOR ===
 
 .. _Custom Task Stack Allocator:
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR
+.. index:: task stack allocator
 
 Custom Task Stack Allocator
 ---------------------------
-.. index:: CONFIGURE_TASK_STACK_ALLOCATOR
-
-.. index:: task stack allocator
 
 CONSTANT:
     ``CONFIGURE_TASK_STACK_ALLOCATOR``
@@ -1946,11 +1946,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_TASK_STACK_DEALLOCATOR ===
 
 .. _Custom Task Stack Deallocator:
+.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR
+.. index:: task stack deallocator
 
 Custom Task Stack Deallocator
 -----------------------------
-.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR
-.. index:: task stack deallocator
 
 CONSTANT:
     ``CONFIGURE_TASK_STACK_DEALLOCATOR``
@@ -1989,11 +1989,11 @@ amount of memory reserved for Classic API Message Buffers.
 .. COMMENT: === CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE ===
 
 .. _Calculate Memory for a Single Classic Message API Message Queue:
+.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
+.. index:: memory for a single message queue's buffers
 
 Calculate Memory for a Single Classic Message API Message Queue
 ---------------------------------------------------------------
-.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
-.. index:: memory for a single message queue's buffers
 
 CONSTANT:
     ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)``
@@ -2029,11 +2029,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_MESSAGE_BUFFER_MEMORY ===
 
 .. _Reserve Memory for All Classic Message API Message Queues:
+.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
+.. index:: configure message queue buffer memory
 
 Reserve Memory for All Classic Message API Message Queues
 ---------------------------------------------------------
-.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
-.. index:: configure message queue buffer memory
 
 CONSTANT:
     ``CONFIGURE_MESSAGE_BUFFER_MEMORY``
@@ -2084,10 +2084,10 @@ work-arounds when the memory estimated by ``<rtems/confdefs.h>`` is incorrect.
 .. COMMENT: === CONFIGURE_MEMORY_OVERHEAD ===
 
 .. _Specify Memory Overhead:
+.. index:: CONFIGURE_MEMORY_OVERHEAD
 
 Specify Memory Overhead
 -----------------------
-.. index:: CONFIGURE_MEMORY_OVERHEAD
 
 CONSTANT:
     ``CONFIGURE_MEMORY_OVERHEAD``
@@ -2114,10 +2114,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_HAS_OWN_CONFIGURATION_TABLE ===
 
 .. _Do Not Generate Configuration Information:
+.. index:: CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
 
 Do Not Generate Configuration Information
 -----------------------------------------
-.. index:: CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
 
 CONSTANT:
     ``CONFIGURE_HAS_OWN_CONFIGURATION_TABLE``
@@ -2149,11 +2149,11 @@ parameters supported by ``<rtems/confdefs.h>``.
 .. COMMENT: === CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS ===
 
 .. _Specify Maximum Number of File Descriptors:
+.. index:: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
+.. index:: maximum file descriptors
 
 Specify Maximum Number of File Descriptors
 ------------------------------------------
-.. index:: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
-.. index:: maximum file descriptors
 
 CONSTANT:
     ``CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS``
@@ -2180,10 +2180,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_TERMIOS_DISABLED ===
 
 .. _Disable POSIX Termios Support:
+.. index:: CONFIGURE_TERMIOS_DISABLED
 
 Disable POSIX Termios Support
 -----------------------------
-.. index:: CONFIGURE_TERMIOS_DISABLED
 
 CONSTANT:
     ``CONFIGURE_TERMIOS_DISABLED``
@@ -2210,10 +2210,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_NUMBER_OF_TERMIOS_PORTS ===
 
 .. _Specify Maximum Termios Ports:
+.. index:: CONFIGURE_NUMBER_OF_TERMIOS_PORTS
 
 Specify Maximum Termios Ports
 -----------------------------
-.. index:: CONFIGURE_NUMBER_OF_TERMIOS_PORTS
 
 CONSTANT:
     ``CONFIGURE_NUMBER_OF_TERMIOS_PORTS``
@@ -2248,10 +2248,10 @@ This section defines File System related configuration parameters.
 .. COMMENT: === CONFIGURE_HAS_OWN_MOUNT_TABLE ===
 
 .. _Providing Application Specific Mount Table:
+.. index:: CONFIGURE_HAS_OWN_MOUNT_TABLE
 
 Providing Application Specific Mount Table
 ------------------------------------------
-.. index:: CONFIGURE_HAS_OWN_MOUNT_TABLE
 
 CONSTANT:
     ``CONFIGURE_HAS_OWN_MOUNT_TABLE``
@@ -2282,10 +2282,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM ===
 
 .. _Configure devFS as Root File System:
+.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
 
 Configure devFS as Root File System
 -----------------------------------
-.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
 
 CONSTANT:
     ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM``
@@ -2314,10 +2314,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_DEVICES ===
 
 .. _Specifying Maximum Devices for devFS:
+.. index:: CONFIGURE_MAXIMUM_DEVICES
 
 Specifying Maximum Devices for devFS
 ------------------------------------
-.. index:: CONFIGURE_MAXIMUM_DEVICES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_DEVICES``
@@ -2345,10 +2345,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_DISABLE_FILESYSTEM ===
 
 .. _Disable File System Support:
+.. index:: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
 
 Disable File System Support
 ---------------------------
-.. index:: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_DISABLE_FILESYSTEM``
@@ -2374,10 +2374,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM ===
 
 .. _Use a Root IMFS with a Minimalistic Feature Set:
+.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
 
 Use a Root IMFS with a Minimalistic Feature Set
 -----------------------------------------------
-.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
 
 CONSTANT:
     ``CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM``
@@ -2414,10 +2414,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK ===
 
 .. _Specify Block Size for IMFS:
+.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
 
 Specify Block Size for IMFS
 ---------------------------
-.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
 
 CONSTANT:
     ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
@@ -2464,10 +2464,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_CHOWN ===
 
 .. _Disable Change Owner Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_CHOWN
 
 Disable Change Owner Support of Root IMFS
 -----------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_CHOWN
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_CHOWN``
@@ -2488,10 +2488,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_CHMOD ===
 
 .. _Disable Change Mode Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_CHMOD
 
 Disable Change Mode Support of Root IMFS
 ----------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_CHMOD
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_CHMOD``
@@ -2512,10 +2512,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_UTIME ===
 
 .. _Disable Change Times Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_UTIME
 
 Disable Change Times Support of Root IMFS
 -----------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_UTIME
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_UTIME``
@@ -2536,10 +2536,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_LINK ===
 
 .. _Disable Create Hard Link Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_LINK
 
 Disable Create Hard Link Support of Root IMFS
 ---------------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_LINK
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_LINK``
@@ -2560,10 +2560,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_SYMLINK ===
 
 .. _Disable Create Symbolic Link Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK
 
 Disable Create Symbolic Link Support of Root IMFS
 -------------------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_SYMLINK``
@@ -2584,10 +2584,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_READLINK ===
 
 .. _Disable Read Symbolic Link Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_READLINK
 
 Disable Read Symbolic Link Support of Root IMFS
 -----------------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_READLINK
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_READLINK``
@@ -2608,10 +2608,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_RENAME ===
 
 .. _Disable Rename Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_RENAME
 
 Disable Rename Support of Root IMFS
 -----------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_RENAME
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_RENAME``
@@ -2632,10 +2632,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_READDIR ===
 
 .. _Disable Directory Read Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_READDIR
 
 Disable Directory Read Support of Root IMFS
 -------------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_READDIR
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_READDIR``
@@ -2657,10 +2657,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_MOUNT ===
 
 .. _Disable Mount Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_MOUNT
 
 Disable Mount Support of Root IMFS
 ----------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_MOUNT
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_MOUNT``
@@ -2681,10 +2681,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_UNMOUNT ===
 
 .. _Disable Unmount Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_UNMOUNT
 
 Disable Unmount Support of Root IMFS
 ------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_UNMOUNT
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_UNMOUNT``
@@ -2705,10 +2705,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_MKNOD ===
 
 .. _Disable Make Nodes Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD
 
 Disable Make Nodes Support of Root IMFS
 ---------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_MKNOD
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_MKNOD``
@@ -2729,10 +2729,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_MKNOD_FILE ===
 
 .. _Disable Make Files Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
 
 Disable Make Files Support of Root IMFS
 ---------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_MKNOD_FILE``
@@ -2753,10 +2753,10 @@ DESCRIPTION:
 .. COMMENT: === CONFIGURE_IMFS_DISABLE_RMNOD ===
 
 .. _Disable Remove Nodes Support of Root IMFS:
+.. index:: CONFIGURE_IMFS_DISABLE_RMNOD
 
 Disable Remove Nodes Support of Root IMFS
 -----------------------------------------
-.. index:: CONFIGURE_IMFS_DISABLE_RMNOD
 
 CONSTANT:
     ``CONFIGURE_IMFS_DISABLE_RMNOD``
@@ -2785,10 +2785,10 @@ parameters.
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_LIBBLOCK ===
 
 .. _Enable Block Device Cache:
+.. index:: CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
 
 Enable Block Device Cache
 -------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_LIBBLOCK``
@@ -2813,10 +2813,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_CACHE_MEMORY_SIZE ===
 
 .. _Size of the Cache Memory:
+.. index:: CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
 
 Size of the Cache Memory
 ------------------------
-.. index:: CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
 
 CONSTANT:
     ``CONFIGURE_BDBUF_CACHE_MEMORY_SIZE``
@@ -2839,10 +2839,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_BUFFER_MIN_SIZE ===
 
 .. _Minimum Size of a Buffer:
+.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE
 
 Minimum Size of a Buffer
 ------------------------
-.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE
 
 CONSTANT:
     ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
@@ -2865,10 +2865,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_BUFFER_MAX_SIZE ===
 
 .. _Maximum Size of a Buffer:
+.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE
 
 Maximum Size of a Buffer
 ------------------------
-.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE
 
 CONSTANT:
     ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
@@ -2891,10 +2891,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SWAPOUT_SWAP_PERIOD ===
 
 .. _Swapout Task Swap Period:
+.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD
 
 Swapout Task Swap Period
 ------------------------
-.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD
 
 CONSTANT:
     ``CONFIGURE_SWAPOUT_SWAP_PERIOD``
@@ -2917,10 +2917,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SWAPOUT_BLOCK_HOLD ===
 
 .. _Swapout Task Maximum Block Hold Time:
+.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD
 
 Swapout Task Maximum Block Hold Time
 ------------------------------------
-.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD
 
 CONSTANT:
     ``CONFIGURE_SWAPOUT_BLOCK_HOLD``
@@ -2943,10 +2943,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SWAPOUT_TASK_PRIORITY ===
 
 .. _Swapout Task Priority:
+.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY
 
 Swapout Task Priority
 ---------------------
-.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY
 
 CONSTANT:
     ``CONFIGURE_SWAPOUT_TASK_PRIORITY``
@@ -2969,10 +2969,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS ===
 
 .. _Maximum Blocks per Read-Ahead Request:
+.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
 
 Maximum Blocks per Read-Ahead Request
 -------------------------------------
-.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
 
 CONSTANT:
     ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
@@ -2997,10 +2997,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_MAX_WRITE_BLOCKS ===
 
 .. _Maximum Blocks per Write Request:
+.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
 
 Maximum Blocks per Write Request
 --------------------------------
-.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
 
 CONSTANT:
     ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
@@ -3023,10 +3023,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_TASK_STACK_SIZE ===
 
 .. _Task Stack Size of the Block Device Cache Tasks:
+.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE
 
 Task Stack Size of the Block Device Cache Tasks
 -----------------------------------------------
-.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE
 
 CONSTANT:
     ``CONFIGURE_BDBUF_TASK_STACK_SIZE``
@@ -3049,10 +3049,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY ===
 
 .. _Read-Ahead Task Priority:
+.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
 
 Read-Ahead Task Priority
 ------------------------
-.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
 
 CONSTANT:
     ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
@@ -3075,10 +3075,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SWAPOUT_WORKER_TASKS ===
 
 .. _Swapout Worker Task Count:
+.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS
 
 Swapout Worker Task Count
 -------------------------
-.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS
 
 CONSTANT:
     ``CONFIGURE_SWAPOUT_WORKER_TASKS``
@@ -3101,10 +3101,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY ===
 
 .. _Swapout Worker Task Priority:
+.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
 
 Swapout Worker Task Priority
 ----------------------------
-.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
 
 CONSTANT:
     ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
@@ -3136,10 +3136,10 @@ This section describes BSP specific configuration settings used by
 .. COMMENT: === Disable BSP Settings ===
 
 .. _Disable BSP Configuration Settings:
+.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
 
 Disable BSP Configuration Settings
 ----------------------------------
-.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
 
 CONSTANT:
     ``CONFIGURE_DISABLE_BSP_SETTINGS``
@@ -3163,10 +3163,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK ===
 
 .. _Specify BSP Supports sbrk():
+.. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
 
 Specify BSP Supports sbrk()
 ---------------------------
-.. index:: CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
 
 CONSTANT:
     ``CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK``
@@ -3195,10 +3195,10 @@ NOTES:
 .. COMMENT: === BSP_IDLE_TASK_BODY ===
 
 .. _Specify BSP Specific Idle Task:
+.. index:: BSP_IDLE_TASK_BODY
 
 Specify BSP Specific Idle Task
 ------------------------------
-.. index:: BSP_IDLE_TASK_BODY
 
 CONSTANT:
     ``BSP_IDLE_TASK_BODY``
@@ -3225,10 +3225,10 @@ NOTES:
 .. COMMENT: === BSP_IDLE_TASK_STACK_SIZE ===
 
 .. _Specify BSP Suggested Value for IDLE Task Stack Size:
+.. index:: BSP_IDLE_TASK_STACK_SIZE
 
 Specify BSP Suggested Value for IDLE Task Stack Size
 ----------------------------------------------------
-.. index:: BSP_IDLE_TASK_STACK_SIZE
 
 CONSTANT:
     ``BSP_IDLE_TASK_STACK_SIZE``
@@ -3263,10 +3263,10 @@ NOTES:
 .. COMMENT: === BSP_INITIAL_EXTENSION ===
 
 .. _Specify BSP Specific User Extensions:
+.. index:: BSP_INITIAL_EXTENSION
 
 Specify BSP Specific User Extensions
 ------------------------------------
-.. index:: BSP_INITIAL_EXTENSION
 
 CONSTANT:
     ``BSP_INITIAL_EXTENSION``
@@ -3291,10 +3291,10 @@ NOTES:
 .. COMMENT: === BSP_INTERRUPT_STACK_SIZE ===
 
 .. _Specifying BSP Specific Interrupt Stack Size:
+.. index:: BSP_INTERRUPT_STACK_SIZE
 
 Specifying BSP Specific Interrupt Stack Size
 --------------------------------------------
-.. index:: BSP_INTERRUPT_STACK_SIZE
 
 CONSTANT:
     ``BSP_INTERRUPT_STACK_SIZE``
@@ -3319,10 +3319,10 @@ NOTES:
 .. COMMENT: === BSP_MAXIMUM_DEVICES ===
 
 .. _Specifying BSP Specific Maximum Devices:
+.. index:: BSP_MAXIMUM_DEVICES
 
 Specifying BSP Specific Maximum Devices
 ---------------------------------------
-.. index:: BSP_MAXIMUM_DEVICES
 
 CONSTANT:
     ``BSP_MAXIMUM_DEVICES``
@@ -3350,10 +3350,10 @@ NOTES:
 .. COMMENT: === BSP_ZERO_WORKSPACE_AUTOMATICALLY ===
 
 .. _BSP Recommends RTEMS Workspace be Cleared:
+.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY
 
 BSP Recommends RTEMS Workspace be Cleared
 -----------------------------------------
-.. index:: BSP_ZERO_WORKSPACE_AUTOMATICALLY
 
 CONSTANT:
     ``BSP_ZERO_WORKSPACE_AUTOMATICALLY``
@@ -3379,10 +3379,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_BSP_PREREQUISITE_DRIVERS ===
 
 .. _Specify BSP Prerequisite Drivers:
+.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
 
 Specify BSP Prerequisite Drivers
 --------------------------------
-.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
 
 CONSTANT:
     ``CONFIGURE_BSP_PREREQUISITE_DRIVERS``
@@ -3419,10 +3419,10 @@ by ``<rtems/confdefs.h>``.
 .. COMMENT: === CONFIGURE_IDLE_TASK_BODY ===
 
 .. _Specify Application Specific Idle Task Body:
+.. index:: CONFIGURE_IDLE_TASK_BODY
 
 Specify Application Specific Idle Task Body
 -------------------------------------------
-.. index:: CONFIGURE_IDLE_TASK_BODY
 
 CONSTANT:
     ``CONFIGURE_IDLE_TASK_BODY``
@@ -3447,10 +3447,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_IDLE_TASK_STACK_SIZE ===
 
 .. _Specify Idle Task Stack Size:
+.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE
 
 Specify Idle Task Stack Size
 ----------------------------
-.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE
 
 CONSTANT:
     ``CONFIGURE_IDLE_TASK_STACK_SIZE``
@@ -3474,10 +3474,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION ===
 
 .. _Specify Idle Task Performs Application Initialization:
+.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
 
 Specify Idle Task Performs Application Initialization
 -----------------------------------------------------
-.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
 
 CONSTANT:
     ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION``
@@ -3524,10 +3524,10 @@ configuration macros.
 .. COMMENT: === CONFIGURE_SCHEDULER_PRIORITY ===
 
 .. _Use Deterministic Priority Scheduler:
+.. index:: CONFIGURE_SCHEDULER_PRIORITY
 
 Use Deterministic Priority Scheduler
 ------------------------------------
-.. index:: CONFIGURE_SCHEDULER_PRIORITY
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_PRIORITY``
@@ -3557,10 +3557,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_SIMPLE ===
 
 .. _Use Simple Priority Scheduler:
+.. index:: CONFIGURE_SCHEDULER_SIMPLE
 
 Use Simple Priority Scheduler
 -----------------------------
-.. index:: CONFIGURE_SCHEDULER_SIMPLE
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_SIMPLE``
@@ -3592,10 +3592,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_EDF ===
 
 .. _Use Earliest Deadline First Scheduler:
+.. index:: CONFIGURE_SCHEDULER_EDF
 
 Use Earliest Deadline First Scheduler
 -------------------------------------
-.. index:: CONFIGURE_SCHEDULER_EDF
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_EDF``
@@ -3629,10 +3629,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_EDF_SMP ===
 
 .. _Use Earliest Deadline First SMP Scheduler:
+.. index:: CONFIGURE_SCHEDULER_EDF_SMP
 
 Use Earliest Deadline First Scheduler
 -------------------------------------
-.. index:: CONFIGURE_SCHEDULER_EDF_SMP
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_EDF_SMP``
@@ -3656,10 +3656,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_CBS ===
 
 .. _Use Constant Bandwidth Server Scheduler:
+.. index:: CONFIGURE_SCHEDULER_CBS
 
 Use Constant Bandwidth Server Scheduler
 ---------------------------------------
-.. index:: CONFIGURE_SCHEDULER_CBS
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_CBS``
@@ -3691,10 +3691,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_PRIORITY_SMP ===
 
 .. _Use Deterministic Priority SMP Scheduler:
+.. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP
 
 Use Deterministic Priority SMP Scheduler
 ----------------------------------------
-.. index:: CONFIGURE_SCHEDULER_PRIORITY_SMP
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_PRIORITY_SMP``
@@ -3726,10 +3726,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_SCHEDULER_SIMPLE_SMP ===
 
 .. _Use Simple SMP Priority Scheduler:
+.. index:: CONFIGURE_SCHEDULER_SIMPLE_SMP
 
 Use Simple SMP Priority Scheduler
 ---------------------------------
-.. index:: CONFIGURE_SCHEDULER_SIMPLE_SMP
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_SIMPLE_SMP``
@@ -3767,10 +3767,10 @@ NOTES:
 .. COMMENT: === Configuring a Scheduler Name ===
 
 .. _Configuring a Scheduler Name:
+.. index:: CONFIGURE_SCHEDULER_NAME
 
 Configuring a Scheduler Name
 ----------------------------
-.. index:: CONFIGURE_SCHEDULER_NAME
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_NAME``
@@ -3801,10 +3801,10 @@ NOTES:
 .. COMMENT: === Configuring a User Scheduler ===
 
 .. _Configuring a User Provided Scheduler:
+.. index:: CONFIGURE_SCHEDULER_USER
 
 Configuring a User Provided Scheduler
 -------------------------------------
-.. index:: CONFIGURE_SCHEDULER_USER
 
 CONSTANT:
     ``CONFIGURE_SCHEDULER_USER``
@@ -4030,10 +4030,10 @@ Note that network device drivers are not configured in the Device Driver Table.
 .. COMMENT: === CONFIGURE_MAXIMUM_DRIVERS ===
 
 .. _Specifying the Maximum Number of Device Drivers:
+.. index:: CONFIGURE_MAXIMUM_DRIVERS
 
 Specifying the Maximum Number of Device Drivers
 -----------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_DRIVERS
 
 CONSTANT:
 
@@ -4064,10 +4064,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER ===
 
 .. _Enable Console Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
 
 Enable Console Device Driver
 ----------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``
@@ -4095,10 +4095,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER ===
 
 .. _Enable Clock Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
 
 Enable Clock Driver
 -------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``
@@ -4128,10 +4128,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER ===
 
 .. _Enable the Benchmark Timer Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
 
 Enable the Benchmark Timer Driver
 ---------------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``
@@ -4159,10 +4159,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER ===
 
 .. _Specify Clock and Benchmark Timer Drivers Are Not Needed:
+.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
 
 Specify Clock and Benchmark Timer Drivers Are Not Needed
 --------------------------------------------------------
-.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``
@@ -4190,10 +4190,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER ===
 
 .. _Enable Real-Time Clock Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
 
 Enable Real-Time Clock Driver
 -----------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER``
@@ -4221,10 +4221,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER ===
 
 .. _Enable the Watchdog Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
 
 Enable the Watchdog Device Driver
 ---------------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER``
@@ -4252,10 +4252,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER ===
 
 .. _Enable the Graphics Frame Buffer Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
 
 Enable the Graphics Frame Buffer Device Driver
 ----------------------------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER``
@@ -4283,10 +4283,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER ===
 
 .. _Enable Stub Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
 
 Enable Stub Device Driver
 -------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER``
@@ -4311,10 +4311,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS ===
 
 .. _Specify Application Prerequisite Device Drivers:
+.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
 
 Specify Application Prerequisite Device Drivers
 -----------------------------------------------
-.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS``
@@ -4347,10 +4347,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_EXTRA_DRIVERS ===
 
 .. _Specify Extra Application Device Drivers:
+.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS
 
 Specify Extra Application Device Drivers
 ----------------------------------------
-.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
@@ -4376,11 +4376,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER ===
 
 .. _Enable /dev/null Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+.. index:: /dev/null
 
 Enable /dev/null Device Driver
 ------------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
-.. index:: /dev/null
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER``
@@ -4403,11 +4403,11 @@ NOTES:
 .. COMMENT: === CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER ===
 
 .. _Enable /dev/zero Device Driver:
+.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+.. index:: /dev/zero
 
 Enable /dev/zero Device Driver
 ------------------------------
-.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
-.. index:: /dev/zero
 
 CONSTANT:
     ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER``
@@ -4430,10 +4430,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE ===
 
 .. _Specifying Application Defined Device Driver Table:
+.. index:: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
 
 Specifying Application Defined Device Driver Table
 --------------------------------------------------
-.. index:: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
 
 CONSTANT:
     ``CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE``
@@ -4476,10 +4476,10 @@ Additionally, this class of Configuration Constants are only applicable if
 .. COMMENT: === CONFIGURE_MP_APPLICATION ===
 
 .. _Specify Application Will Use Multiprocessing:
+.. index:: CONFIGURE_MP_APPLICATION
 
 Specify Application Will Use Multiprocessing
 --------------------------------------------
-.. index:: CONFIGURE_MP_APPLICATION
 
 CONSTANT:
     ``CONFIGURE_MP_APPLICATION``
@@ -4506,10 +4506,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MP_NODE_NUMBER ===
 
 .. _Configure Node Number in Multiprocessor Configuration:
+.. index:: CONFIGURE_MP_NODE_NUMBER
 
 Configure Node Number in Multiprocessor Configuration
 -----------------------------------------------------
-.. index:: CONFIGURE_MP_NODE_NUMBER
 
 CONSTANT:
     ``CONFIGURE_MP_NODE_NUMBER``
@@ -4537,10 +4537,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MP_MAXIMUM_NODES ===
 
 .. _Configure Maximum Node in Multiprocessor Configuration:
+.. index:: CONFIGURE_MP_MAXIMUM_NODES
 
 Configure Maximum Node in Multiprocessor Configuration
 ------------------------------------------------------
-.. index:: CONFIGURE_MP_MAXIMUM_NODES
 
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_NODES``
@@ -4564,10 +4564,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS ===
 
 .. _Configure Maximum Global Objects in Multiprocessor Configuration:
+.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
 
 Configure Maximum Global Objects in Multiprocessor Configuration
 ----------------------------------------------------------------
-.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
 
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
@@ -4592,10 +4592,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MP_MAXIMUM_PROXIES ===
 
 .. _Configure Maximum Proxies in Multiprocessor Configuration:
+.. index:: CONFIGURE_MP_MAXIMUM_PROXIES
 
 Configure Maximum Proxies in Multiprocessor Configuration
 ---------------------------------------------------------
-.. index:: CONFIGURE_MP_MAXIMUM_PROXIES
 
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_PROXIES``
@@ -4623,10 +4623,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MP_MPCI_TABLE_POINTER ===
 
 .. _Configure MPCI in Multiprocessor Configuration:
+.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER
 
 Configure MPCI in Multiprocessor Configuration
 ----------------------------------------------
-.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER
 
 CONSTANT:
     ``CONFIGURE_MP_MPCI_TABLE_POINTER``
@@ -4652,10 +4652,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE ===
 
 .. _Do Not Generate Multiprocessor Configuration Table:
+.. index:: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
 
 Do Not Generate Multiprocessor Configuration Table
 --------------------------------------------------
-.. index:: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
 
 CONSTANT:
     ``CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE``
@@ -4699,10 +4699,10 @@ has a test suite. This test suite is enabled only when``--enable-tests`` and
 .. COMMENT: === CONFIGURE_GNAT_RTEMS ===
 
 .. _Specify Application Includes Ada Code:
+.. index:: CONFIGURE_GNAT_RTEMS
 
 Specify Application Includes Ada Code
 -------------------------------------
-.. index:: CONFIGURE_GNAT_RTEMS
 
 CONSTANT:
     ``CONFIGURE_GNAT_RTEMS``
@@ -4728,10 +4728,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_ADA_TASKS ===
 
 .. _Specify the Maximum Number of Ada Tasks.:
+.. index:: CONFIGURE_MAXIMUM_ADA_TASKS
 
 Specify the Maximum Number of Ada Tasks.
 ----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_ADA_TASKS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_ADA_TASKS``
@@ -4756,13 +4756,13 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_FAKE_ADA_TASKS ===
 
 .. _Specify the Maximum Fake Ada Tasks:
+.. index:: CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
 
 Specify the Maximum Fake Ada Tasks
 ----------------------------------
-.. index:: CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
 
 CONSTANT:
-    .. index:: ``CONFIGURE_MAXIMUM_FAKE_ADA_TASKS``
+    ``CONFIGURE_MAXIMUM_FAKE_ADA_TASKS``
 
 DATA TYPE:
     Unsigned integer (``uint32_t``).
@@ -4844,10 +4844,10 @@ Go Tasks
 .. COMMENT: === CONFIGURE_ENABLE_GO ===
 
 .. _Specify Application Includes Go Code:
+.. index:: CONFIGURE_ENABLE_GO
 
 Specify Application Includes Go Code
 ------------------------------------
-.. index:: CONFIGURE_ENABLE_GO
 
 CONSTANT:
     ``CONFIGURE_ENABLE_GO``
@@ -4871,10 +4871,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_GOROUTINES ===
 
 .. _Specify the maximum number of Go routines:
+.. index:: CONFIGURE_MAXIMUM_GOROUTINES
 
 Specify the maximum number of Go routines
 -----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_GOROUTINES
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_GOROUTINES``
@@ -4898,10 +4898,10 @@ NOTES:
 .. COMMENT: === CONFIGURE_MAXIMUM_GO_CHANNELS ===
 
 .. _Specify the maximum number of Go Channels:
+.. index:: CONFIGURE_MAXIMUM_GO_CHANNELS
 
 Specify the maximum number of Go Channels
 -----------------------------------------
-.. index:: CONFIGURE_MAXIMUM_GO_CHANNELS
 
 CONSTANT:
     ``CONFIGURE_MAXIMUM_GO_CHANNELS``
@@ -4924,82 +4924,82 @@ NOTES:
 
 Obsolete Configuration Options
 ==============================
+.. index:: CONFIGURE_BDBUF_BUFFER_COUNT
 
 CONFIGURE_BDBUF_BUFFER_COUNT
 ----------------------------
-.. index:: CONFIGURE_BDBUF_BUFFER_COUNT
 
 This configuration option was introduced in RTEMS 4.7.0 and is obsolete since
 RTEMS 4.10.0.
+.. index:: CONFIGURE_BDBUF_BUFFER_SIZE
 
 CONFIGURE_BDBUF_BUFFER_SIZE
 ---------------------------
-.. index:: CONFIGURE_BDBUF_BUFFER_SIZE
 
 This configuration option was introduced in RTEMS 4.7.0 and is obsolete since
 RTEMS 4.10.0.
+.. index:: CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
 
 CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
 --------------------------------------
-.. index:: CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
 
 This configuration option was introduced in RTEMS 4.9.0 and is obsolete since
 RTEMS 5.1.
+.. index:: CONFIGURE_HAS_OWN_BDBUF_TABLE
 
 CONFIGURE_HAS_OWN_BDBUF_TABLE
 -----------------------------
-.. index:: CONFIGURE_HAS_OWN_BDBUF_TABLE
 
 This configuration option was introduced in RTEMS 4.7.0 and is obsolete since
 RTEMS 4.10.0.
+.. index:: CONFIGURE_MAXIMUM_POSIX_BARRIERS
 
 CONFIGURE_MAXIMUM_POSIX_BARRIERS
 --------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_BARRIERS
 
 This configuration option is obsolete since RTEMS 5.1.
+.. index:: CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
 
 CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
 -------------------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
 
 This configuration option is obsolete since RTEMS 5.1.
+.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
 
 CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
 -------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
 
 This configuration option was introduced in RTEMS 4.10.0 and is obsolete since
 RTEMS 5.1.
+.. index:: CONFIGURE_MAXIMUM_POSIX_MUTEXES
 
 CONFIGURE_MAXIMUM_POSIX_MUTEXES
 -------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_MUTEXES
 
 This configuration option is obsolete since RTEMS 5.1.
+.. index:: CONFIGURE_MAXIMUM_POSIX_RWLOCKS
 
 CONFIGURE_MAXIMUM_POSIX_RWLOCKS
 -------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_RWLOCKS
 
 This configuration option is obsolete since RTEMS 5.1.
+.. index:: CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
 
 CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
 ---------------------------------
-.. index:: CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
 
 This configuration option is obsolete since RTEMS 5.1.
+.. index:: CONFIGURE_SMP_APPLICATION
 
 CONFIGURE_SMP_APPLICATION
 -------------------------
-.. index:: CONFIGURE_SMP_APPLICATION
 
 This configuration option was introduced in RTEMS 4.11.0 and is obsolete since
 RTEMS 5.1.
+.. index:: CONFIGURE_SMP_MAXIMUM_PROCESSORS
 
 CONFIGURE_SMP_MAXIMUM_PROCESSORS
 --------------------------------
-.. index:: CONFIGURE_SMP_MAXIMUM_PROCESSORS
 
 This configuration option was introduced in RTEMS 4.11.0 and is obsolete since
 RTEMS 5.1.  See also :ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
diff --git a/c-user/constant_bandwidth_server.rst b/c-user/constant_bandwidth_server.rst
index 2db0daa..2a6ed40 100644
--- a/c-user/constant_bandwidth_server.rst
+++ b/c-user/constant_bandwidth_server.rst
@@ -42,12 +42,11 @@ provided by the CBS API are:
 
 Background
 ==========
+.. index:: CBS parameters
+.. index:: rtems_cbs_parameters
 
 Constant Bandwidth Server Definitions
 -------------------------------------
-.. index:: CBS parameters
-
-.. index:: rtems_cbs_parameters
 
 The Constant Bandwidth Server API enables tasks to communicate with the
 scheduler and indicate its scheduling parameters. The scheduler has to be set
@@ -71,10 +70,10 @@ ordinary tasks that are not attached to any server.
 In order to make the server effective to the executing tasks, tasks have to be
 attached to the servers. The ``rtems_cbs_server_id`` is a type denoting an id
 of a server and ``rtems_id`` a type for id of tasks.
+.. index:: CBS periodic tasks
 
 Handling Periodic Tasks
 -----------------------
-.. index:: CBS periodic tasks
 
 Each task's execution begins with a default background priority (see the
 chapter Scheduling Concepts to understand the concept of priorities in
@@ -84,10 +83,10 @@ of periodic behavior, or you declare deadline and budget using the CBS API in
 which case these properties are constant for all subsequent periods, unless you
 change them using the CBS API again. Task now only has to indicate and end of
 each period using ``rtems_rate_monotonic_period``.
+.. index:: CBS overrun handler
 
 Registering a Callback Function
 -------------------------------
-.. index:: CBS overrun handler
 
 In case tasks attached to servers are not aware of their execution time and
 happen to exceed it, the scheduler does not guarantee execution any more and
@@ -113,10 +112,10 @@ The calling convention of the callback function is:
     void overrun_handler(
         rtems_cbs_server_id server_id
     );
+.. index:: CBS limitations
 
 Limitations
 -----------
-.. index:: CBS limitations
 
 When using this scheduler you have to keep in mind several things:
 
@@ -234,11 +233,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_cbs_initialize:
+.. index:: initialize the CBS library
+.. index:: rtems_cbs_initialize
 
 CBS_INITIALIZE - Initialize the CBS library
 -------------------------------------------
-.. index:: initialize the CBS library
-.. index:: rtems_cbs_initialize
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -272,11 +271,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_cleanup:
+.. index:: cleanup the CBS library
+.. index:: rtems_cbs_cleanup
 
 CBS_CLEANUP - Cleanup the CBS library
 -------------------------------------
-.. index:: cleanup the CBS library
-.. index:: rtems_cbs_cleanup
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -302,11 +301,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_create_server:
+.. index:: create a new bandwidth server
+.. index:: rtems_cbs_create_server
 
 CBS_CREATE_SERVER - Create a new bandwidth server
 -------------------------------------------------
-.. index:: create a new bandwidth server
-.. index:: rtems_cbs_create_server
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -350,11 +349,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_attach_thread:
+.. index:: attach a thread to server
+.. index:: rtems_cbs_attach_thread
 
 CBS_ATTACH_THREAD - Attach a thread to server
 ---------------------------------------------
-.. index:: attach a thread to server
-.. index:: rtems_cbs_attach_thread
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -392,11 +391,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_detach_thread:
+.. index:: detach a thread from server
+.. index:: rtems_cbs_detach_thread
 
 CBS_DETACH_THREAD - Detach a thread from server
 -----------------------------------------------
-.. index:: detach a thread from server
-.. index:: rtems_cbs_detach_thread
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -429,11 +428,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_destroy_server:
+.. index:: destroy a bandwidth server
+.. index:: rtems_cbs_destroy_server
 
 CBS_DESTROY_SERVER - Destroy a bandwidth server
 -----------------------------------------------
-.. index:: destroy a bandwidth server
-.. index:: rtems_cbs_destroy_server
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -466,11 +465,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_get_server_id:
+.. index:: get an ID of a server
+.. index:: rtems_cbs_get_server_id
 
 CBS_GET_SERVER_ID - Get an ID of a server
 -----------------------------------------
-.. index:: get an ID of a server
-.. index:: rtems_cbs_get_server_id
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -497,11 +496,11 @@ DESCRIPTION:
    \clearpage
 
 .. _rtems_cbs_get_parameters:
+.. index:: get scheduling parameters of a server
+.. index:: rtems_cbs_get_parameters
 
 CBS_GET_PARAMETERS - Get scheduling parameters of a server
 ----------------------------------------------------------
-.. index:: get scheduling parameters of a server
-.. index:: rtems_cbs_get_parameters
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -534,11 +533,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_set_parameters:
+.. index:: set scheduling parameters
+.. index:: rtems_cbs_set_parameters
 
 CBS_SET_PARAMETERS - Set scheduling parameters
 ----------------------------------------------
-.. index:: set scheduling parameters
-.. index:: rtems_cbs_set_parameters
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -573,11 +572,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_get_execution_time:
+.. index:: get elapsed execution time
+.. index:: rtems_cbs_get_execution_time
 
 CBS_GET_EXECUTION_TIME - Get elapsed execution time
 ---------------------------------------------------
-.. index:: get elapsed execution time
-.. index:: rtems_cbs_get_execution_time
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -611,11 +610,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_get_remaining_budget:
+.. index:: get remaining execution time
+.. index:: rtems_cbs_get_remaining_budget
 
 CBS_GET_REMAINING_BUDGET - Get remaining execution time
 -------------------------------------------------------
-.. index:: get remaining execution time
-.. index:: rtems_cbs_get_remaining_budget
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -649,11 +648,11 @@ NOTES:
    \clearpage
 
 .. _rtems_cbs_get_approved_budget:
+.. index:: get scheduler approved execution time
+.. index:: rtems_cbs_get_approved_budget
 
 CBS_GET_APPROVED_BUDGET - Get scheduler approved execution time
 ---------------------------------------------------------------
-.. index:: get scheduler approved execution time
-.. index:: rtems_cbs_get_approved_budget
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/cpu_usage_statistics.rst b/c-user/cpu_usage_statistics.rst
index 81eb41f..fde008f 100644
--- a/c-user/cpu_usage_statistics.rst
+++ b/c-user/cpu_usage_statistics.rst
@@ -4,6 +4,8 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: CPU Usage
+
 CPU Usage Statistics
 ********************
 
@@ -109,6 +111,7 @@ calling sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_cpu_usage_report:
+.. index:: rtems_cpu_usage_report
 
 cpu_usage_report - Report CPU Usage Statistics
 ----------------------------------------------
@@ -133,6 +136,7 @@ NOTES:
    \clearpage
 
 .. _rtems_cpu_usage_reset:
+.. index:: rtems_cpu_usage_reset
 
 cpu_usage_reset - Reset CPU Usage Statistics
 --------------------------------------------
diff --git a/c-user/directive_status_codes.rst b/c-user/directive_status_codes.rst
index 420a0a0..6acfd4d 100644
--- a/c-user/directive_status_codes.rst
+++ b/c-user/directive_status_codes.rst
@@ -3,6 +3,8 @@
 .. COMMENT: Copyright 2015 embedded brains GmbH
 .. COMMENT: All rights reserved.
 
+.. index:: Status Codes
+
 Directive Status Codes
 **********************
 
@@ -18,6 +20,8 @@ Directives
 
 The directives are:
 
+.. index:: rtems_status_code
+
 .. list-table::
  :class: rtems-table
 
@@ -81,10 +85,10 @@ The directives are:
    \clearpage
 
 .. _rtems_status_text:
+.. index:: rtems_status_text
 
 STATUS_TEXT - Returns the enumeration name for a status code
 ------------------------------------------------------------
-.. index:: rtems_status_text
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/dual_ports_memory_manager.rst b/c-user/dual_ports_memory_manager.rst
index 18b5808..ed93482 100644
--- a/c-user/dual_ports_memory_manager.rst
+++ b/c-user/dual_ports_memory_manager.rst
@@ -4,12 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
-Dual-Ported Memory Manager
-**************************
-
 .. index:: ports
 .. index:: dual ported memory
 
+Dual-Ported Memory Manager
+**************************
+
 Introduction
 ============
 
@@ -27,12 +27,13 @@ areas (DPMA).  The directives provided by the dual-ported memory manager are:
 
 - rtems_port_internal_to_external_ - Convert internal to external address
 
-Background
-==========
 .. index:: dual ported memory, definition
 .. index:: external addresses, definition
 .. index:: internal addresses, definition
 
+Background
+==========
+
 A dual-ported memory area (DPMA) is an contiguous block of RAM owned by a
 particular processor but which can be accessed by other processors in the
 system.  The owner accesses the memory using internal addresses, while other
@@ -99,11 +100,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_port_create:
+.. index:: create a port
+.. index:: rtems_port_create
 
 PORT_CREATE - Create a port
 ---------------------------
-.. index:: create a port
-.. index:: rtems_port_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -152,13 +153,13 @@ NOTES:
    \clearpage
 
 .. _rtems_port_ident:
-
-PORT_IDENT - Get ID of a port
------------------------------
 .. index:: get ID of a port
 .. index:: obtain ID of a port
 .. index:: rtems_port_ident
 
+PORT_IDENT - Get ID of a port
+-----------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -193,11 +194,11 @@ NOTES:
    \clearpage
 
 .. _rtems_port_delete:
+.. index:: delete a port
+.. index:: rtems_port_delete
 
 PORT_DELETE - Delete a port
 ---------------------------
-.. index:: delete a port
-.. index:: rtems_port_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -230,11 +231,11 @@ NOTES:
    \clearpage
 
 .. _rtems_port_external_to_internal:
+.. index:: convert external to internal address
+.. index:: rtems_port_external_to_internal
 
 PORT_EXTERNAL_TO_INTERNAL - Convert external to internal address
 ----------------------------------------------------------------
-.. index:: convert external to internal address
-.. index:: rtems_port_external_to_internal
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -270,11 +271,11 @@ NOTES:
    \clearpage
 
 .. _rtems_port_internal_to_external:
+.. index:: convert internal to external address
+.. index:: rtems_port_internal_to_external
 
 PORT_INTERNAL_TO_EXTERNAL - Convert internal to external address
 ----------------------------------------------------------------
-.. index:: convert internal to external address
-.. index:: rtems_port_internal_to_external
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/event_manager.rst b/c-user/event_manager.rst
index 784fbd9..d3c1a95 100644
--- a/c-user/event_manager.rst
+++ b/c-user/event_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: events
+
 Event Manager
 *************
 
-.. index:: events
-
 Introduction
 ============
 
@@ -21,12 +21,13 @@ and synchronization.  The directives provided by the event manager are:
 Background
 ==========
 
-Event Sets
-----------
 .. index:: event flag, definition
 .. index:: event set, definition
 .. index:: rtems_event_set
 
+Event Sets
+----------
+
 An event flag is used by a task (or ISR) to inform another task of the
 occurrence of a significant situation.  Thirty-two event flags are associated
 with each task.  A collection of one or more event flags is referred to as an
@@ -59,11 +60,12 @@ condition is satisfied when at least a single requested event is posted.  The
 ``RTEMS_EVENT_ALL`` algorithm states that an event condition is satisfied when
 every requested event is posted.
 
-Building an Event Set or Condition
-----------------------------------
 .. index:: event condition, building
 .. index:: event set, building
 
+Building an Event Set or Condition
+----------------------------------
+
 An event set or condition is built by a bitwise OR of the desired events.  The
 set of valid events is ``RTEMS_EVENT_0`` through ``RTEMS_EVENT_31``.  If an
 event is not explicitly specified in the set or condition, then it is not
@@ -181,11 +183,11 @@ related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_event_send:
+.. index:: send event set to a task
+.. index:: rtems_event_send
 
 EVENT_SEND - Send event set to a task
 -------------------------------------
-.. index:: send event set to a task
-.. index:: rtems_event_send
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -232,11 +234,11 @@ NOTES:
    \clearpage
 
 .. _rtems_event_receive:
+.. index:: receive event condition
+.. index:: rtems_event_receive
 
 EVENT_RECEIVE - Receive event condition
 ---------------------------------------
-.. index:: receive event condition
-.. index:: rtems_event_receive
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/fatal_error.rst b/c-user/fatal_error.rst
index c716c89..6cee174 100644
--- a/c-user/fatal_error.rst
+++ b/c-user/fatal_error.rst
@@ -5,12 +5,11 @@
 .. COMMENT: All rights reserved.
 
 .. _fatal_error_manager:
+.. index:: fatal errors
 
 Fatal Error Manager
 *******************
 
-.. index:: fatal errors
-
 Introduction
 ============
 
@@ -34,13 +33,13 @@ provided by the fatal error manager are:
 Background
 ==========
 
-Overview
---------
-
 .. index:: fatal error detection
 .. index:: fatal error processing
 .. index:: fatal error user extension
 
+Overview
+--------
+
 The fatal error manager is called upon detection of an irrecoverable error
 condition by either RTEMS or the application software.  Fatal errors are also
 used in case it is difficult or impossible to return an error condition by
@@ -388,10 +387,10 @@ Operations
 ==========
 
 .. _Terminate:
+.. index:: _Terminate
 
 Announcing a Fatal Error
 ------------------------
-.. index:: _Terminate
 
 The :c:func:`_Terminate()` internal error handler is invoked when the
 application or the executive itself determines that a fatal error has occurred
@@ -443,13 +442,13 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_fatal:
-
-FATAL - Invoke the fatal error
-------------------------------
 .. index:: announce fatal error
 .. index:: fatal error, announce
 .. index:: rtems_fatal
 
+FATAL - Invoke the fatal error
+------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -473,12 +472,12 @@ NOTE:
    \clearpage
 
 .. _rtems_shutdown_executive:
+.. index:: shutdown RTEMS
+.. index:: rtems_shutdown_executive
 
 SHUTDOWN_EXECUTIVE - Shutdown RTEMS
 -----------------------------------
-.. index:: shutdown RTEMS
 
-.. index:: rtems_shutdown_executive
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -505,11 +504,11 @@ NOTES:
    \clearpage
 
 .. _rtems_exception_frame_print:
+.. index:: exception frame
+.. index:: rtems_exception_frame_print
 
 EXCEPTION_FRAME_PRINT - Prints the exception frame
 --------------------------------------------------
-.. index:: exception frame
-.. index:: rtems_exception_frame_print
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -529,11 +528,11 @@ DESCRIPTION:
    \clearpage
 
 .. _rtems_fatal_source_text:
+.. index:: fatal error
+.. index:: rtems_fatal_source_text
 
 FATAL_SOURCE_TEXT - Returns a text for a fatal source
 -----------------------------------------------------
-.. index:: fatal error
-.. index:: rtems_fatal_source_text
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -554,11 +553,11 @@ DESCRIPTION:
    \clearpage
 
 .. _rtems_internal_error_text:
+.. index:: fatal error
+.. index:: rtems_internal_error_text
 
 INTERNAL_ERROR_TEXT - Returns a text for an internal error code
 ---------------------------------------------------------------
-.. index:: fatal error
-.. index:: rtems_internal_error_text
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -579,13 +578,13 @@ DESCRIPTION:
    \clearpage
 
 .. _rtems_fatal_error_occurred:
-
-FATAL_ERROR_OCCURRED - Invoke the fatal error handler (deprecated)
-------------------------------------------------------------------
 .. index:: announce fatal error
 .. index:: fatal error, announce
 .. index:: rtems_fatal_error_occurred
 
+FATAL_ERROR_OCCURRED - Invoke the fatal error handler (deprecated)
+------------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/initialization.rst b/c-user/initialization.rst
index 7d7d2de..a04633d 100644
--- a/c-user/initialization.rst
+++ b/c-user/initialization.rst
@@ -22,9 +22,10 @@ The Initialization Manager provides only one directive:
 Background
 ==========
 
+.. index:: initialization tasks
+
 Initialization Tasks
 --------------------
-.. index:: initialization tasks
 
 Initialization task(s) are the mechanism by which RTEMS transfers initial
 control to the user's application.  Initialization tasks differ from other
@@ -305,13 +306,13 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_initialize_executive:
+.. index:: initialize RTEMS
+.. index:: start multitasking
+.. index:: rtems_initialize_executive
 
 INITIALIZE_EXECUTIVE - Initialize RTEMS
 ---------------------------------------
-.. index:: initialize RTEMS
-.. index:: start multitasking
 
-.. index:: rtems_initialize_executive
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/interrupt_manager.rst b/c-user/interrupt_manager.rst
index 37b5cbe..41dc8dd 100644
--- a/c-user/interrupt_manager.rst
+++ b/c-user/interrupt_manager.rst
@@ -4,6 +4,8 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: interrupts
+
 Interrupt Manager
 *****************
 
@@ -44,9 +46,10 @@ from an ISR.  The interrupt manager includes the following directive:
 Background
 ==========
 
+.. index:: interrupt processing
+
 Processing an Interrupt
 -----------------------
-.. index:: interrupt processing
 
 The interrupt manager allows the application to connect a function to a
 hardware interrupt vector.  When an interrupt occurs, the processor will
@@ -111,9 +114,10 @@ another ISR.  RTEMS supports efficient interrupt nesting by allowing the nested
 ISRs to terminate without performing any dispatch processing.  Only when the
 outermost ISR terminates will the postponed dispatching occur.
 
+.. index:: interrupt levels
+
 RTEMS Interrupt Levels
 ----------------------
-.. index:: interrupt levels
 
 Many processors support multiple interrupt levels or priorities.  The exact
 number of interrupt levels is processor dependent.  RTEMS internally supports
@@ -122,9 +126,10 @@ specific information on the mapping between RTEMS and the target processor's
 interrupt levels, refer to the Interrupt Processing chapter of the Applications
 Supplement document for a specific target processor.
 
+.. index:: disabling interrupts
+
 Disabling of Interrupts by RTEMS
 --------------------------------
-.. index:: disabling interrupts
 
 During the execution of directive calls, critical sections of code may be
 executed.  When these sections are encountered, RTEMS disables all maskable
@@ -264,13 +269,13 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_interrupt_catch:
-
-INTERRUPT_CATCH - Establish an ISR
-----------------------------------
 .. index:: establish an ISR
 .. index:: install an ISR
 .. index:: rtems_interrupt_catch
 
+INTERRUPT_CATCH - Establish an ISR
+----------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -308,11 +313,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_disable:
+.. index:: disable interrupts
+.. index:: rtems_interrupt_disable
 
 INTERRUPT_DISABLE - Disable Interrupts
 --------------------------------------
-.. index:: disable interrupts
-.. index:: rtems_interrupt_disable
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -346,11 +351,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_enable:
+.. index:: enable interrupts
+.. index:: rtems_interrupt_enable
 
 INTERRUPT_ENABLE - Enable Interrupts
 ------------------------------------
-.. index:: enable interrupts
-.. index:: rtems_interrupt_enable
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -381,11 +386,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_flash:
+.. index:: flash interrupts
+.. index:: rtems_interrupt_flash
 
 INTERRUPT_FLASH - Flash Interrupts
 ----------------------------------
-.. index:: flash interrupts
-.. index:: rtems_interrupt_flash
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -416,11 +421,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_local_disable:
+.. index:: disable interrupts
+.. index:: rtems_interrupt_local_disable
 
 INTERRUPT_LOCAL_DISABLE - Disable Interrupts on Current Processor
 -----------------------------------------------------------------
-.. index:: disable interrupts
-.. index:: rtems_interrupt_local_disable
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -453,11 +458,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_local_enable:
+.. index:: enable interrupts
+.. index:: rtems_interrupt_local_enable
 
 INTERRUPT_LOCAL_ENABLE - Enable Interrupts on Current Processor
 ---------------------------------------------------------------
-.. index:: enable interrupts
-.. index:: rtems_interrupt_local_enable
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -484,10 +489,10 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_lock_initialize:
+.. index:: rtems_interrupt_lock_initialize
 
 INTERRUPT_LOCK_INITIALIZE - Initialize an ISR Lock
 --------------------------------------------------
-.. index:: rtems_interrupt_lock_initialize
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -512,10 +517,10 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_lock_acquire:
+.. index:: rtems_interrupt_lock_acquire
 
 INTERRUPT_LOCK_ACQUIRE - Acquire an ISR Lock
 --------------------------------------------
-.. index:: rtems_interrupt_lock_acquire
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -547,10 +552,10 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_lock_release:
+.. index:: rtems_interrupt_lock_release
 
 INTERRUPT_LOCK_RELEASE - Release an ISR Lock
 --------------------------------------------
-.. index:: rtems_interrupt_lock_release
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -579,10 +584,10 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_lock_acquire_isr:
+.. index:: rtems_interrupt_lock_acquire_isr
 
 INTERRUPT_LOCK_ACQUIRE_ISR - Acquire an ISR Lock from ISR
 ---------------------------------------------------------
-.. index:: rtems_interrupt_lock_acquire_isr
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -617,10 +622,10 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_lock_release_isr:
+.. index:: rtems_interrupt_lock_release_isr
 
 INTERRUPT_LOCK_RELEASE_ISR - Release an ISR Lock from ISR
 ---------------------------------------------------------
-.. index:: rtems_interrupt_lock_release_isr
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -649,11 +654,11 @@ NOTES:
    \clearpage
 
 .. _rtems_interrupt_is_in_progress:
+.. index:: is interrupt in progress
+.. index:: rtems_interrupt_is_in_progress
 
 INTERRUPT_IS_IN_PROGRESS - Is an ISR in Progress
 ------------------------------------------------
-.. index:: is interrupt in progress
-.. index:: rtems_interrupt_is_in_progress
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/io_manager.rst b/c-user/io_manager.rst
index cb8f70d..ab7be41 100644
--- a/c-user/io_manager.rst
+++ b/c-user/io_manager.rst
@@ -4,12 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
-I/O Manager
-***********
-
 .. index:: device drivers
 .. index:: IO Manager
 
+I/O Manager
+***********
+
 Introduction
 ============
 
@@ -40,9 +40,10 @@ drivers.  The directives provided by the I/O manager are:
 Background
 ==========
 
+.. index:: Device Driver Table
+
 Device Driver Table
 -------------------
-.. index:: Device Driver Table
 
 Each application utilizing the RTEMS I/O manager must specify the address of a
 Device Driver Table in its Configuration Table. This table contains each device
@@ -73,11 +74,12 @@ table.
 The :file:`confdefs.h` entry ``CONFIGURE_MAXIMUM_DRIVERS`` configures the
 number of driver slots available to the application.
 
-Major and Minor Device Numbers
-------------------------------
 .. index:: major device number
 .. index:: minor device number
 
+Major and Minor Device Numbers
+------------------------------
+
 Each call to the I/O manager must provide a device's major and minor numbers as
 arguments.  The major number is the index of the requested driver's entry
 points in the Device Driver Table, and is used to select a specific device
@@ -91,9 +93,10 @@ driver.
 The data types ``rtems_device_major_number`` and ``rtems_device_minor_number``
 are used to manipulate device major and minor numbers, respectively.
 
+.. index:: device names
+
 Device Names
 ------------
-.. index:: device names
 
 The I/O Manager provides facilities to associate a name with a particular
 device.  Directives are provided to register the name of a device and to look
@@ -122,9 +125,10 @@ Although the RTEMS I/O manager provides a framework for device drivers, it
 makes no assumptions regarding the construction or operation of a device
 driver.
 
+.. index:: runtime driver registration
+
 Runtime Driver Registration
 ---------------------------
-.. index:: runtime driver registration
 
 Board support package and application developers can select wether a device
 driver is statically entered into the default device table or registered at
@@ -144,9 +148,10 @@ Dynamic registration helps applications where:
 
 - Support for runtime loadable driver modules.
 
+.. index:: device driver interface
+
 Device Driver Interface
 -----------------------
-.. index:: device driver interface
 
 When an application invokes an I/O manager directive, RTEMS determines which
 device driver entry point must be invoked.  The information passed by the
@@ -226,11 +231,11 @@ related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_io_register_driver:
+.. index:: register a device driver
+.. index:: rtems_io_register_driver
 
 IO_REGISTER_DRIVER - Register a device driver
 ---------------------------------------------
-.. index:: register a device driver
-.. index:: rtems_io_register_driver
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -284,11 +289,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_unregister_driver:
+.. index:: unregister a device driver
+.. index:: rtems_io_unregister_driver
 
 IO_UNREGISTER_DRIVER - Unregister a device driver
 -------------------------------------------------
-.. index:: unregister a device driver
-.. index:: rtems_io_unregister_driver
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -317,11 +322,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_initialize:
+.. index:: initialize a device driver
+.. index:: rtems_io_initialize
 
 IO_INITIALIZE - Initialize a device driver
 ------------------------------------------
-.. index:: initialize a device driver
-.. index:: rtems_io_initialize
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -360,11 +365,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_register_name:
+.. index:: register device
+.. index:: rtems_io_register_name
 
 IO_REGISTER_NAME - Register a device
 ------------------------------------
-.. index:: register device
-.. index:: rtems_io_register_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -395,11 +400,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_lookup_name:
+.. index:: lookup device major and minor number
+.. index:: rtems_io_lookup_name
 
 IO_LOOKUP_NAME - Lookup a device
 --------------------------------
-.. index:: lookup device major and minor number
-.. index:: rtems_io_lookup_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -430,11 +435,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_open:
+.. index:: open a devive
+.. index:: rtems_io_open
 
 IO_OPEN - Open a device
 -----------------------
-.. index:: open a devive
-.. index:: rtems_io_open
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -468,11 +473,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_close:
+.. index:: close a device
+.. index:: rtems_io_close
 
 IO_CLOSE - Close a device
 -------------------------
-.. index:: close a device
-.. index:: rtems_io_close
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -506,11 +511,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_read:
+.. index:: read from a device
+.. index:: rtems_io_read
 
 IO_READ - Read from a device
 ----------------------------
-.. index:: read from a device
-.. index:: rtems_io_read
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -545,11 +550,11 @@ NOTES:
    \clearpage
 
 .. _rtems_io_write:
+.. index:: write to a device
+.. index:: rtems_io_write
 
 IO_WRITE - Write to a device
 ----------------------------
-.. index:: write to a device
-.. index:: rtems_io_write
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -584,13 +589,13 @@ NOTES:
    \clearpage
 
 .. _rtems_io_control:
-
-IO_CONTROL - Special device services
-------------------------------------
 .. index:: special device services
 .. index:: IO Control
 .. index:: rtems_io_control
 
+IO_CONTROL - Special device services
+------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/key_concepts.rst b/c-user/key_concepts.rst
index 3d1a473..c88132e 100644
--- a/c-user/key_concepts.rst
+++ b/c-user/key_concepts.rst
@@ -17,11 +17,11 @@ one with these concepts.
 
 .. _objects:
 
+.. index:: objects
+
 Objects
 =======
 
-.. index:: objects
-
 RTEMS provides directives which can be used to dynamically create, delete, and
 manipulate a set of predefined object types.  These types include tasks,
 message queues, semaphores, memory regions, memory partitions, timers, ports,
@@ -37,14 +37,17 @@ selected by the user as a meaningful "tag" which may commonly reflect the
 object's use in the application.  Conversely, object IDs are designed to
 facilitate efficient object manipulation by the executive.
 
-Object Names
-------------
 .. index:: object name
 .. index:: rtems_name
 
+Object Names
+------------
+
 An object name is an unsigned thirty-two bit entity associated with the object
 by the user.  The data type ``rtems_name`` is used to store object
-names... index:: rtems_build_name
+names.
+
+.. index:: 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
@@ -84,12 +87,13 @@ name:
         printk( "ID=0x%08x name=%s\n", id, ((result) ? result : "no name") );
     }
 
-Object IDs
-----------
 .. index:: object ID
 .. index:: object ID composition
 .. index:: rtems_id
 
+Object IDs
+----------
+
 An object ID is a unique unsigned integer value which uniquely identifies an
 object instance.  Object IDs are passed as arguments to many directives in
 RTEMS and RTEMS translates the ID to an internal object pointer. The efficient
@@ -198,9 +202,10 @@ create time and freed when the object is deleted.  With the exception of user
 extension routines, object control blocks are not directly manipulated by user
 applications.
 
+.. index:: communication and synchronization
+
 Communication and Synchronization
 =================================
-.. index:: communication and synchronization
 
 In real-time multitasking applications, the ability for cooperating execution
 threads to communicate and synchronize with each other is imperative.  A
@@ -239,9 +244,10 @@ synchronization, while the event manager primarily provides a high performance
 synchronization mechanism.  The signal manager supports only asynchronous
 communication and is typically used for exception handling.
 
+.. index:: locking protocols
+
 Locking Protocols
 =================
-.. index:: locking protocols
 
 RTEMS supports the four locking protocols
 
@@ -265,10 +271,10 @@ obtain, release and timeout operations depend on the complexity of this
 resource dependency graph.
 
 .. _PriorityInversion:
+.. index:: priority inversion
 
 Priority Inversion
 ------------------
-.. index:: priority inversion
 
 Priority inversion is a form of indefinite postponement which is common in
 multitasking, preemptive executives with shared resources.  Priority inversion
@@ -281,11 +287,11 @@ complete its interaction with the resource and release that resource.  The high
 priority task is effectively prevented from executing by lower priority tasks.
 
 .. _PriorityCeiling:
+.. index:: priority ceiling protocol
+.. index:: immediate ceiling priority protocol
 
 Immediate Ceiling Priority Protocol (ICPP)
 ------------------------------------------
-.. index:: priority ceiling protocol
-.. index:: immediate ceiling priority protocol
 
 Each mutex using the Immediate Ceiling Priority Protocol (ICPP) has a ceiling
 priority.  The priority of the mutex owner is immediately raised to the ceiling
@@ -307,10 +313,10 @@ protocol is more forgiving in that it does not require this apriori
 information.
 
 .. _PriorityInheritance:
+.. index:: priority inheritance protocol
 
 Priority Inheritance Protocol
 -----------------------------
-.. index:: priority inheritance protocol
 
 The priority of the mutex owner is raised to the highest priority of all
 threads that currently wait for ownership of this mutex :cite:`Sha:1990:PI`.
@@ -318,10 +324,10 @@ Since RTEMS 5.1, priority updates due to the priority inheritance protocol
 take place immediately and are propagated recursively.
 
 .. _MrsP:
+.. index:: Multiprocessor Resource Sharing Protocol (MrsP)
 
 Multiprocessor Resource Sharing Protocol (MrsP)
 -----------------------------------------------
-.. index:: Multiprocessor Resource Sharing Protocol (MrsP)
 
 The Multiprocessor Resource Sharing Protocol (MrsP) is a generalization of the
 priority ceiling protocol to clustered scheduling :cite:`Burns:2013:MrsP`.  One
@@ -339,10 +345,10 @@ overcome some shortcomings of the original implementation
 :cite:`Catellani:2015:MrsP`.
 
 .. _OMIP:
+.. index:: O(m) Independence-Preserving Protocol (OMIP)
 
 O(m) Independence-Preserving Protocol (OMIP)
 ----------------------------------------------------
-.. index:: O(m) Independence-Preserving Protocol (OMIP)
 
 The :math:`O(m)` Independence-Preserving Protocol (OMIP) is a generalization of
 the priority inheritance protocol to clustered scheduling which avoids the
@@ -355,9 +361,10 @@ need internal locking.  The complex part of the implementation is contained in
 the thread queues and shared with the MrsP support.  This locking protocol is
 available since RTEMS 5.1.
 
+.. index:: thread queues
+
 Thread Queues
 =============
-.. index:: thread queues
 
 In case more than one :term:`thread` may wait on a synchronization object, e.g.
 a semaphore or a message queue, then the waiting threads are added to a data
@@ -415,9 +422,10 @@ A red-black tree is used to implement the priority queues yielding a
 :math:`O(log(n))` worst-case time complexity for enqueue and dequeue operations
 with :math:`n` being the count of threads already on the queue.
 
+.. index:: time
+
 Time
 ====
-.. index:: time
 
 The development of responsive real-time applications requires an understanding
 of how RTEMS maintains and supports time-related operations.  The basic unit of
@@ -505,9 +513,10 @@ and removal operations offered by the timer wheel algorithms.  See also
 tree support already used in other areas, e.g. for the thread priority queues.
 Less code is a good thing for size, testing and verification.
 
+.. index:: memory management
+
 Memory Management
 =================
-.. index:: memory management
 
 RTEMS memory management facilities can be grouped into two classes: dynamic
 memory allocation and address translation.  Dynamic memory allocation is
diff --git a/c-user/linker_sets.rst b/c-user/linker_sets.rst
index f6f250e..a93f829 100644
--- a/c-user/linker_sets.rst
+++ b/c-user/linker_sets.rst
@@ -5,12 +5,11 @@
 .. COMMENT: All rights reserved.
 
 .. _linker_sets:
+.. index:: linkersets
 
 Linker Sets
 ***********
 
-.. index:: linkersets
-
 Introduction
 ============
 
@@ -128,10 +127,10 @@ Directives
    \clearpage
 
 .. _RTEMS_LINKER_SET_BEGIN:
+.. index:: RTEMS_LINKER_SET_BEGIN
 
 RTEMS_LINKER_SET_BEGIN - Designator of the linker set begin marker
 ------------------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_BEGIN
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -161,10 +160,10 @@ NOTE:
    \clearpage
 
 .. _RTEMS_LINKER_SET_END:
+.. index:: RTEMS_LINKER_SET_END
 
 RTEMS_LINKER_SET_END - Designator of the linker set end marker
 --------------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_END
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -183,10 +182,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_SET_SIZE:
+.. index:: RTEMS_LINKER_SET_SIZE
 
 RTEMS_LINKER_SET_SIZE - The linker set size in characters
 ---------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_SIZE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -204,10 +203,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_SET_ITEM_COUNT:
+.. index:: RTEMS_LINKER_SET_ITEM_COUNT
 
 RTEMS_LINKER_SET_ITEM_COUNT - The linker set item count
 ---------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_ITEM_COUNT
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -224,10 +223,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_SET_IS_EMPTY:
+.. index:: RTEMS_LINKER_SET_IS_EMPTY
 
 RTEMS_LINKER_SET_IS_EMPTY - Is the linker set empty?
 ---------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_IS_EMPTY
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -245,10 +244,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_SET_FOREACH:
+.. index:: RTEMS_LINKER_SET_FOREACH
 
 RTEMS_LINKER_SET_FOREACH - Iterate through the linker set items
 ---------------------------------------------------------
-.. index:: RTEMS_LINKER_SET_FOREACH
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -281,10 +280,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_DECLARE:
+.. index:: RTEMS_LINKER_ROSET_DECLARE
 
 RTEMS_LINKER_ROSET_DECLARE - Declares a read-only linker set
 ------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_DECLARE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -304,10 +303,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET:
+.. index:: RTEMS_LINKER_ROSET
 
 RTEMS_LINKER_ROSET - Defines a read-only linker set
 ---------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -327,10 +326,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_ITEM_DECLARE:
+.. index:: RTEMS_LINKER_ROSET_ITEM_DECLARE
 
 RTEMS_LINKER_ROSET_ITEM_DECLARE - Declares a read-only linker set item
 ----------------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_ITEM_DECLARE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -352,10 +351,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_ITEM_REFERENCE:
+.. index:: RTEMS_LINKER_ROSET_ITEM_REFERENCE
 
 RTEMS_LINKER_ROSET_ITEM_REFERENCE - References a read-only linker set item
 --------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_ITEM_REFERENCE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -377,10 +376,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_ITEM:
+.. index:: RTEMS_LINKER_ROSET_ITEM
 
 RTEMS_LINKER_ROSET_ITEM - Defines a read-only linker set item
 -------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_ITEM
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -402,10 +401,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_ITEM_ORDERED:
+.. index:: RTEMS_LINKER_ROSET_ITEM_ORDERED
 
 RTEMS_LINKER_ROSET_ITEM_ORDERED - Defines an ordered read-only linker set item
 ------------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_ITEM_ORDERED
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -459,10 +458,10 @@ NOTES:
    \clearpage
 
 .. _RTEMS_LINKER_ROSET_CONTENT:
+.. index:: RTEMS_LINKER_ROSET_CONTENT
 
 RTEMS_LINKER_ROSET_CONTENT - Marks a declaration as a read-only linker set content
 ----------------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_ROSET_CONTENT
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -481,10 +480,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_DECLARE:
+.. index:: RTEMS_LINKER_RWSET_DECLARE
 
 RTEMS_LINKER_RWSET_DECLARE - Declares a read-write linker set
 -------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_DECLARE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -504,10 +503,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET:
+.. index:: RTEMS_LINKER_RWSET
 
 RTEMS_LINKER_RWSET - Defines a read-write linker set
 ----------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -527,10 +526,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_ITEM_DECLARE:
+.. index:: RTEMS_LINKER_RWSET_ITEM_DECLARE
 
 RTEMS_LINKER_RWSET_ITEM_DECLARE - Declares a read-write linker set item
 -----------------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_ITEM_DECLARE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -552,10 +551,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_ITEM_REFERENCE:
+.. index:: RTEMS_LINKER_RWSET_ITEM_REFERENCE
 
 RTEMS_LINKER_RWSET_ITEM_REFERENCE - References a read-write linker set item
 ---------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_ITEM_REFERENCE
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -577,10 +576,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_ITEM:
+.. index:: RTEMS_LINKER_RWSET_ITEM
 
 RTEMS_LINKER_RWSET_ITEM - Defines a read-write linker set item
 --------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_ITEM
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -602,10 +601,10 @@ DESCRIPTION:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_ITEM_ORDERED:
+.. index:: RTEMS_LINKER_RWSET_ITEM_ORDERED
 
 RTEMS_LINKER_RWSET_ITEM_ORDERED - Defines an ordered read-write linker set item
 -------------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_ITEM_ORDERED
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -659,10 +658,10 @@ NOTES:
    \clearpage
 
 .. _RTEMS_LINKER_RWSET_CONTENT:
+.. index:: RTEMS_LINKER_RWSET_CONTENT
 
 RTEMS_LINKER_RWSET_CONTENT - Marks a declaration as a read-write linker set content
 -----------------------------------------------------------------------------------
-.. index:: RTEMS_LINKER_RWSET_CONTENT
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/message_manager.rst b/c-user/message_manager.rst
index 496137e..2c908d9 100644
--- a/c-user/message_manager.rst
+++ b/c-user/message_manager.rst
@@ -4,12 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
-Message Manager
-***************
-
 .. index:: messages
 .. index:: message queues
 
+Message Manager
+***************
+
 Introduction
 ============
 
@@ -64,9 +64,10 @@ buffer of the message queue or directly to a peer in certain cases.  This copy
 operation is performed with interrupts disabled.  So it is advisable to keep
 the messages as short as possible.
 
+.. index:: message queue attributes
+
 Building a Message Queue Attribute Set
 --------------------------------------
-.. index:: message queue attributes
 
 In general, an attribute set is built by a bitwise OR of the desired attribute
 components.  The set of valid message queue attributes is provided in the
@@ -220,11 +221,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_message_queue_create:
+.. index:: create a message queue
+.. index:: rtems_message_queue_create
 
 MESSAGE_QUEUE_CREATE - Create a queue
 -------------------------------------
-.. index:: create a message queue
-.. index:: rtems_message_queue_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -307,11 +308,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_ident:
+.. index:: get ID of a message queue
+.. index:: rtems_message_queue_ident
 
 MESSAGE_QUEUE_IDENT - Get ID of a queue
 ---------------------------------------
-.. index:: get ID of a message queue
-.. index:: rtems_message_queue_ident
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -360,11 +361,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_delete:
+.. index:: delete a message queue
+.. index:: rtems_message_queue_delete
 
 MESSAGE_QUEUE_DELETE - Delete a queue
 -------------------------------------
-.. index:: delete a message queue
-.. index:: rtems_message_queue_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -418,11 +419,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_send:
+.. index:: send message to a queue
+.. index:: rtems_message_queue_send
 
 MESSAGE_QUEUE_SEND - Put message at rear of a queue
 ---------------------------------------------------
-.. index:: send message to a queue
-.. index:: rtems_message_queue_send
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -475,11 +476,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_urgent:
+.. index:: put message at front of queue
+.. index:: rtems_message_queue_urgent
 
 MESSAGE_QUEUE_URGENT - Put message at front of a queue
 ------------------------------------------------------
-.. index:: put message at front of queue
-.. index:: rtems_message_queue_urgent
 
 **CALLING SEQUENCE:**
     .. code-block:: c
@@ -532,11 +533,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_broadcast:
+.. index:: broadcast message to a queue
+.. index:: rtems_message_queue_broadcast
 
 MESSAGE_QUEUE_BROADCAST - Broadcast N messages to a queue
 ---------------------------------------------------------
-.. index:: broadcast message to a queue
-.. index:: rtems_message_queue_broadcast
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -592,11 +593,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_receive:
+.. index:: receive message from a queue
+.. index:: rtems_message_queue_receive
 
 MESSAGE_QUEUE_RECEIVE - Receive message from a queue
 ----------------------------------------------------
-.. index:: receive message from a queue
-.. index:: rtems_message_queue_receive
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -679,11 +680,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_get_number_pending:
+.. index:: get number of pending messages
+.. index:: rtems_message_queue_get_number_pending
 
 MESSAGE_QUEUE_GET_NUMBER_PENDING - Get number of messages pending on a queue
 ----------------------------------------------------------------------------
-.. index:: get number of pending messages
-.. index:: rtems_message_queue_get_number_pending
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -718,11 +719,11 @@ NOTES:
    \clearpage
 
 .. _rtems_message_queue_flush:
+.. index:: flush messages on a queue
+.. index:: rtems_message_queue_flush
 
 MESSAGE_QUEUE_FLUSH - Flush all messages on a queue
 ---------------------------------------------------
-.. index:: flush messages on a queue
-.. index:: rtems_message_queue_flush
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/multiprocessing.rst b/c-user/multiprocessing.rst
index 6ff2dff..740eabf 100644
--- a/c-user/multiprocessing.rst
+++ b/c-user/multiprocessing.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: multiprocessing
+
 Multiprocessing Manager
 ***********************
 
-.. index:: multiprocessing
-
 Introduction
 ============
 
@@ -42,11 +42,11 @@ The directives provided by the  Manager are:
 - rtems_multiprocessing_announce_ - A multiprocessing communications packet has
   arrived
 
+.. index:: multiprocessing topologies
+
 Background
 ==========
 
-.. index:: multiprocessing topologies
-
 RTEMS makes no assumptions regarding the connection media or topology of a
 multiprocessor system.  The tasks which compose a particular application can be
 spread among as many processors as needed to satisfy the application's timing
@@ -68,9 +68,10 @@ a homogeneous one.  In keeping with RTEMS philosophy of providing transparent
 physical node boundaries, the minimal heterogeneous processing required is
 isolated in the MPCI layer.
 
+.. index:: nodes, definition
+
 Nodes
 -----
-.. index:: nodes, definition
 
 A processor in a RTEMS system is referred to as a node.  Each node is assigned
 a unique non-zero node number by the application designer.  RTEMS assumes that
@@ -85,9 +86,10 @@ The node number is used by RTEMS to identify each node when performing remote
 operations.  Thus, the Multiprocessor Communications Interface Layer (MPCI)
 must be able to route messages based on the node number.
 
+.. index:: global objects, definition
+
 Global Objects
 --------------
-.. index:: global objects, definition
 
 All RTEMS objects which are created with the GLOBAL attribute will be known on
 all other nodes.  Global objects can be referenced from any node in the system,
@@ -99,9 +101,10 @@ field in the Multiprocessor Configuration Table.  The distribution of tasks to
 processors is performed during the application design phase.  Dynamic task
 relocation is not supported by RTEMS.
 
+.. index:: global objects table
+
 Global Object Table
 -------------------
-.. index:: global objects table
 
 RTEMS maintains two tables containing object information on every node in a
 multiprocessor system: a local object table and a global object table.  The
@@ -118,9 +121,10 @@ This parameter, as well as the maximum_nodes parameter, is required to be the
 same on all nodes.  To maintain consistency among the table copies, every node
 in the system must be informed of the creation or deletion of a global object.
 
+.. index:: MPCI and remote operations
+
 Remote Operations
 -----------------
-.. index:: MPCI and remote operations
 
 When an application performs an operation on a remote global object, RTEMS must
 generate a Remote Request (RQ) message and send it to the appropriate node.
@@ -175,9 +179,10 @@ error handler should be invoked.  RTEMS assumes the reliable transmission and
 reception of messages by the MPCI and makes no attempt to detect or correct
 errors.
 
+.. index:: proxy, definition
+
 Proxies
 -------
-.. index:: proxy, definition
 
 A proxy is an RTEMS data structure which resides on a remote node and is used
 to represent a task which must block as part of a remote operation. This action
@@ -381,9 +386,10 @@ The ``to_convert`` field of the ``rtems_packet_prefix`` portion of the packet
 indicates how much of the packet in 32-bit units may require conversion in a
 heterogeneous system.
 
+.. index:: heterogeneous multiprocessing
+
 Supporting Heterogeneous Environments
 -------------------------------------
-.. index:: heterogeneous multiprocessing
 
 Developing an MPCI layer for a heterogeneous system requires a thorough
 understanding of the differences between the processors which comprise the
@@ -476,11 +482,11 @@ usage, and status codes.
    \clearpage
 
 .. _rtems_multiprocessing_announce:
+.. index:: announce arrival of package
+.. index:: rtems_multiprocessing_announce
 
 MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet
 -----------------------------------------------------------
-.. index:: announce arrival of package
-.. index:: rtems_multiprocessing_announce
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/object_services.rst b/c-user/object_services.rst
index 0ee32ef..dd924da 100644
--- a/c-user/object_services.rst
+++ b/c-user/object_services.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: object manipulation
+
 Object Services
 ***************
 
-.. index:: object manipulation
-
 Introduction
 ============
 
@@ -181,11 +181,11 @@ Directives
    \clearpage
 
 .. _rtems_build_name:
+.. index:: build object name
+.. index:: rtems_build_name
 
 BUILD_NAME - Build object name from characters
 ----------------------------------------------
-.. index:: build object name
-.. index:: rtems_build_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -213,13 +213,13 @@ NOTES:
    \clearpage
 
 .. _rtems_object_get_classic_name:
-
-OBJECT_GET_CLASSIC_NAME - Lookup name from id
----------------------------------------------
 .. index:: get name from id
 .. index:: obtain name from id
 .. index:: rtems_object_get_classic_name
 
+OBJECT_GET_CLASSIC_NAME - Lookup name from id
+---------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -251,13 +251,13 @@ NOTES:
    \clearpage
 
 .. _rtems_object_get_name:
-
-OBJECT_GET_NAME - Obtain object name as string
-----------------------------------------------
 .. index:: get object name as string
 .. index:: obtain object name as string
 .. index:: rtems_object_get_name
 
+OBJECT_GET_NAME - Obtain object name as string
+----------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -284,11 +284,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_set_name:
+.. index:: set object name
+.. index:: rtems_object_set_name
 
 OBJECT_SET_NAME - Set object name
 ---------------------------------
-.. index:: set object name
-.. index:: rtems_object_set_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -331,11 +331,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_get_api:
+.. index:: obtain API from id
+.. index:: rtems_object_id_get_api
 
 OBJECT_ID_GET_API - Obtain API from Id
 --------------------------------------
-.. index:: obtain API from id
-.. index:: rtems_object_id_get_api
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -360,11 +360,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_get_class:
+.. index:: obtain class from object id
+.. index:: rtems_object_id_get_class
 
 OBJECT_ID_GET_CLASS - Obtain Class from Id
 ------------------------------------------
-.. index:: obtain class from object id
-.. index:: rtems_object_id_get_class
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -389,11 +389,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_get_node:
+.. index:: obtain node from object id
+.. index:: rtems_object_id_get_node
 
 OBJECT_ID_GET_NODE - Obtain Node from Id
 ----------------------------------------
-.. index:: obtain node from object id
-.. index:: rtems_object_id_get_node
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -418,11 +418,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_get_index:
+.. index:: obtain index from object id
+.. index:: rtems_object_id_get_index
 
 OBJECT_ID_GET_INDEX - Obtain Index from Id
 ------------------------------------------
-.. index:: obtain index from object id
-.. index:: rtems_object_id_get_index
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -447,11 +447,11 @@ NOTES:
    \clearpage
 
 .. _rtems_build_id:
+.. index:: build object id from components
+.. index:: rtems_build_id
 
 BUILD_ID - Build Object Id From Components
 ------------------------------------------
-.. index:: build object id from components
-.. index:: rtems_build_id
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -481,11 +481,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_api_minimum:
+.. index:: obtain minimum API value
+.. index:: rtems_object_id_api_minimum
 
 OBJECT_ID_API_MINIMUM - Obtain Minimum API Value
 ------------------------------------------------
-.. index:: obtain minimum API value
-.. index:: rtems_object_id_api_minimum
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -506,11 +506,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_api_maximum:
+.. index:: obtain maximum API value
+.. index:: rtems_object_id_api_maximum
 
 OBJECT_ID_API_MAXIMUM - Obtain Maximum API Value
 ------------------------------------------------
-.. index:: obtain maximum API value
-.. index:: rtems_object_id_api_maximum
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -531,11 +531,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_api_minimum_class:
+.. index:: obtain minimum class value
+.. index:: rtems_object_api_minimum_class
 
 OBJECT_API_MINIMUM_CLASS - Obtain Minimum Class Value
 -----------------------------------------------------
-.. index:: obtain minimum class value
-.. index:: rtems_object_api_minimum_class
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -562,11 +562,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_api_maximum_class:
+.. index:: obtain maximum class value
+.. index:: rtems_object_api_maximum_class
 
 OBJECT_API_MAXIMUM_CLASS - Obtain Maximum Class Value
 -----------------------------------------------------
-.. index:: obtain maximum class value
-.. index:: rtems_object_api_maximum_class
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -593,11 +593,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_api_minimum_class:
+.. index:: obtain minimum class value for an API
+.. index:: rtems_object_id_api_minimum_class
 
 OBJECT_ID_API_MINIMUM_CLASS - Obtain Minimum Class Value for an API
 -------------------------------------------------------------------
-.. index:: obtain minimum class value for an API
-.. index:: rtems_object_id_api_minimum_class
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -624,11 +624,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_id_api_maximum_class:
+.. index:: obtain maximum class value for an API
+.. index:: rtems_object_id_api_maximum_class
 
 OBJECT_ID_API_MAXIMUM_CLASS - Obtain Maximum Class Value for an API
 -------------------------------------------------------------------
-.. index:: obtain maximum class value for an API
-.. index:: rtems_object_id_api_maximum_class
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -655,11 +655,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_get_api_name:
+.. index:: obtain API name
+.. index:: rtems_object_get_api_name
 
 OBJECT_GET_API_NAME - Obtain API Name
 -------------------------------------
-.. index:: obtain API name
-.. index:: rtems_object_get_api_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -687,11 +687,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_get_api_class_name:
+.. index:: obtain class name
+.. index:: rtems_object_get_api_class_name
 
 OBJECT_GET_API_CLASS_NAME - Obtain Class Name
 ---------------------------------------------
-.. index:: obtain class name
-.. index:: rtems_object_get_api_class_name
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -723,11 +723,11 @@ NOTES:
    \clearpage
 
 .. _rtems_object_get_class_information:
+.. index:: obtain class information
+.. index:: rtems_object_get_class_information
 
 OBJECT_GET_CLASS_INFORMATION - Obtain Class Information
 -------------------------------------------------------
-.. index:: obtain class information
-.. index:: rtems_object_get_class_information
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/overview.rst b/c-user/overview.rst
index e6722af..3a1862c 100644
--- a/c-user/overview.rst
+++ b/c-user/overview.rst
@@ -38,6 +38,8 @@ dependent are provided in the Applications Supplement documents.  A supplement
 document which addresses specific architectural issues that affect RTEMS is
 provided for each processor type that is supported.
 
+.. index:: Real-time applications
+
 Real-time Application Systems
 =============================
 
@@ -73,6 +75,8 @@ communication channels and global resources that must be shared between
 competing processors are introduced.  The ramifications of multiple processors
 complicate each and every characteristic of a real-time system.
 
+.. index:: Real-time executive
+
 Real-time Executive
 ===================
 
@@ -113,6 +117,8 @@ developer is then able to concentrate solely on the application.  By using
 standard software components, the time and cost required to develop
 sophisticated real-time applications is significantly reduced.
 
+.. index:: Application architecture
+
 RTEMS Application Architecture
 ==============================
 
@@ -135,6 +141,8 @@ real-time system can benefit from this architecture by building a rich library
 of standard application components which can be used repeatedly in other
 real-time projects.
 
+.. index:: Internal Architecture
+
 RTEMS Internal Architecture
 ===========================
 
diff --git a/c-user/partition_manager.rst b/c-user/partition_manager.rst
index fafd988..9edf09f 100644
--- a/c-user/partition_manager.rst
+++ b/c-user/partition_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: partitions
+
 Partition Manager
 *****************
 
-.. index:: partitions
-
 Introduction
 ============
 
@@ -28,9 +28,10 @@ fixed-size units.  The directives provided by the partition manager are:
 Background
 ==========
 
+.. index:: partition, definition
+
 Partition Manager Definitions
 -----------------------------
-.. index:: partition, definition
 
 A partition is a physically contiguous memory area divided into fixed-size
 buffers that can be dynamically allocated and deallocated.
@@ -45,9 +46,10 @@ buffer is allocated, the entire buffer is available for application use.
 Therefore, modifying memory that is outside of an allocated buffer could
 destroy the free buffer chain or the contents of an adjacent allocated buffer.
 
+.. index:: partition attribute set, building
+
 Building a Partition Attribute Set
 ----------------------------------
-.. index:: partition attribute set, building
 
 In general, an attribute set is built by a bitwise OR of the desired attribute
 components.  The set of valid partition attributes is provided in the following
@@ -134,11 +136,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_partition_create:
+.. index:: create a partition
+.. index:: rtems_partition_create
 
 PARTITION_CREATE - Create a partition
 -------------------------------------
-.. index:: create a partition
-.. index:: rtems_partition_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -228,13 +230,13 @@ NOTES:
    \clearpage
 
 .. _rtems_partition_ident:
-
-PARTITION_IDENT - Get ID of a partition
----------------------------------------
 .. index:: get ID of a partition
 .. index:: obtain ID of a partition
 .. index:: rtems_partition_ident
 
+PARTITION_IDENT - Get ID of a partition
+---------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -282,11 +284,11 @@ NOTES:
    \clearpage
 
 .. _rtems_partition_delete:
+.. index:: delete a partition
+.. index:: rtems_partition_delete
 
 PARTITION_DELETE - Delete a partition
 -------------------------------------
-.. index:: delete a partition
-.. index:: rtems_partition_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -331,13 +333,13 @@ NOTES:
    \clearpage
 
 .. _rtems_partition_get_buffer:
-
-PARTITION_GET_BUFFER - Get buffer from a partition
---------------------------------------------------
 .. index:: get buffer from partition
 .. index:: obtain buffer from partition
 .. index:: rtems_partition_get_buffer
 
+PARTITION_GET_BUFFER - Get buffer from a partition
+--------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -379,11 +381,11 @@ NOTES:
    \clearpage
 
 .. _rtems_partition_return_buffer:
+.. index:: return buffer to partitition
+.. index:: rtems_partition_return_buffer
 
 PARTITION_RETURN_BUFFER - Return buffer to a partition
 ------------------------------------------------------
-.. index:: return buffer to partitition
-.. index:: rtems_partition_return_buffer
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/pci_library.rst b/c-user/pci_library.rst
index ea0bf51..736888d 100644
--- a/c-user/pci_library.rst
+++ b/c-user/pci_library.rst
@@ -4,12 +4,12 @@
 .. COMMENT: Aeroflex Gaisler AB
 .. COMMENT: All rights reserved.
 
+.. index:: PCI
+.. index:: libpci
 
 PCI Library
 ***********
 
-.. index:: libpci
-
 Introduction
 ============
 
@@ -390,6 +390,8 @@ this is mosly for debugging or for development systems. When the product is
 finally deployed macros switch to using the inline functions instead which have
 been configured for the correct endianness.
 
+.. index:: PCI address translation
+
 PCI address translation
 ~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -408,6 +410,8 @@ different PCI spaces/regions.
     /* Translate CPU accessible address into PCI address (for DMA) */
     static inline int pci_cpu2pci(uint32_t *address, int type);
 
+.. index:: PCI Interrupt
+
 PCI Interrupt
 -------------
 
diff --git a/c-user/rate_monotonic_manager.rst b/c-user/rate_monotonic_manager.rst
index 96539ed..ad675b0 100644
--- a/c-user/rate_monotonic_manager.rst
+++ b/c-user/rate_monotonic_manager.rst
@@ -5,12 +5,12 @@
 .. COMMENT: COPYRIGHT (c) 2017 Kuan-Hsun Chen.
 .. COMMENT: All rights reserved.
 
-Rate Monotonic Manager
-**********************
-
 .. index:: rate mononitonic tasks
 .. index:: periodic tasks
 
+Rate Monotonic Manager
+**********************
+
 Introduction
 ============
 
@@ -133,9 +133,10 @@ milliseconds every 100 (10 percent of the CPU).  As a general rule of thumb,
 the higher frequency at which a task executes, the more important it is to
 optimize that task.
 
+.. index:: periodic task, definition
+
 Periodicity Definitions
 ----------------------------------
-.. index:: periodic task, definition
 
 A periodic task is one which must be executed at a regular interval.  The
 interval between successive iterations of the task is referred to as its
@@ -165,11 +166,12 @@ joystick.  The mechanical action of the fire button ensures a minimum time
 period between successive activations, but the missile must be launched by a
 hard deadline.
 
-Rate Monotonic Scheduling Algorithm
------------------------------------
 .. index:: Rate Monotonic Scheduling Algorithm, definition
 .. index:: RMS Algorithm, definition
 
+Rate Monotonic Scheduling Algorithm
+-----------------------------------
+
 The Rate Monotonic Scheduling Algorithm (RMS) is important to real-time systems
 designers because it allows one to sufficiently guarantee that a set of tasks
 is schedulable (see :cite:`Liu:1973:Scheduling`, :cite:`Lehoczky:1989:RM`,
@@ -229,11 +231,11 @@ highest priority non-critical task.  Although RMS may be used to assign
 priorities to the non-critical tasks, it is not necessary.  In this instance,
 schedulability is only guaranteed for the critical task set.
 
+.. index:: RMS schedulability analysis
+
 Schedulability Analysis
 -----------------------
 
-.. index:: RMS schedulability analysis
-
 RMS allows application designers to ensure that tasks can meet all deadlines under fixed-priority assignment,
 even under transient overload, without knowing exactly when any given task will
 execute by applying proven schedulability analysis rules.
@@ -261,9 +263,10 @@ assumptions:
 Once the basic schedulability analysis is understood, some of the above
 assumptions can be relaxed and the side-effects accounted for.
 
+.. index:: RMS Processor Utilization Rule
+
 Processor Utilization Rule
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. index:: RMS Processor Utilization Rule
 
 The Processor Utilization Rule requires that processor utilization be
 calculated based upon the period and execution time of each task.
@@ -312,9 +315,10 @@ upper bound of 3 * (2**(1/3) - 1), or 0.779, imposed by the Processor
 Utilization Rule.  Therefore, this task set is guaranteed to be schedulable
 using RMS.
 
+.. index:: RMS First Deadline Rule
+
 First Deadline Rule
 ^^^^^^^^^^^^^^^^^^^
-.. index:: RMS First Deadline Rule
 
 If a given set of tasks do exceed the processor utilization upper limit imposed
 by the Processor Utilization Rule, they can still be guaranteed to meet all
@@ -631,11 +635,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_rate_monotonic_create:
+.. index:: create a period
+.. index:: rtems_rate_monotonic_create
 
 RATE_MONOTONIC_CREATE - Create a rate monotonic period
 ------------------------------------------------------
-.. index:: create a period
-.. index:: rtems_rate_monotonic_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -671,13 +675,13 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_ident:
-
-RATE_MONOTONIC_IDENT - Get ID of a period
------------------------------------------
 .. index:: get ID of a period
 .. index:: obtain ID of a period
 .. index:: rtems_rate_monotonic_ident
 
+RATE_MONOTONIC_IDENT - Get ID of a period
+-----------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -710,11 +714,11 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_cancel:
+.. index:: cancel a period
+.. index:: rtems_rate_monotonic_cancel
 
 RATE_MONOTONIC_CANCEL - Cancel a period
 ---------------------------------------
-.. index:: cancel a period
-.. index:: rtems_rate_monotonic_cancel
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -752,10 +756,10 @@ NOTES:
 
 .. _rtems_rate_monotonic_delete:
 .. index:: rtems_rate_monotonic_delete
+.. index:: delete a period
 
 RATE_MONOTONIC_DELETE - Delete a rate monotonic period
 ------------------------------------------------------
-.. index:: delete a period
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -790,14 +794,14 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_period:
-
-RATE_MONOTONIC_PERIOD - Conclude current/Start next period
-----------------------------------------------------------
 .. index:: conclude current period
 .. index:: start current period
 .. index:: period initiation
 .. index:: rtems_rate_monotonic_period
 
+RATE_MONOTONIC_PERIOD - Conclude current/Start next period
+----------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -844,13 +848,13 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_get_status:
-
-RATE_MONOTONIC_GET_STATUS - Obtain status from a period
--------------------------------------------------------
 .. index:: get status of period
 .. index:: obtain status of period
 .. index:: rtems_rate_monotonic_get_status
 
+RATE_MONOTONIC_GET_STATUS - Obtain status from a period
+-------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -909,13 +913,13 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_get_statistics:
-
-RATE_MONOTONIC_GET_STATISTICS - Obtain statistics from a period
----------------------------------------------------------------
 .. index:: get statistics of period
 .. index:: obtain statistics of period
 .. index:: rtems_rate_monotonic_get_statistics
 
+RATE_MONOTONIC_GET_STATISTICS - Obtain statistics from a period
+---------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -978,11 +982,11 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_reset_statistics:
+.. index:: reset statistics of period
+.. index:: rtems_rate_monotonic_reset_statistics
 
 RATE_MONOTONIC_RESET_STATISTICS - Reset statistics for a period
 ---------------------------------------------------------------
-.. index:: reset statistics of period
-.. index:: rtems_rate_monotonic_reset_statistics
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1012,11 +1016,11 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_reset_all_statistics:
+.. index:: reset statistics of all periods
+.. index:: rtems_rate_monotonic_reset_all_statistics
 
 RATE_MONOTONIC_RESET_ALL_STATISTICS - Reset statistics for all periods
 ----------------------------------------------------------------------
-.. index:: reset statistics of all periods
-.. index:: rtems_rate_monotonic_reset_all_statistics
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1038,13 +1042,13 @@ NOTES:
    \clearpage
 
 .. _rtems_rate_monotonic_report_statistics:
-
-RATE_MONOTONIC_REPORT_STATISTICS - Print period statistics report
------------------------------------------------------------------
 .. index:: print period statistics report
 .. index:: period statistics report
 .. index:: rtems_rate_monotonic_report_statistics
 
+RATE_MONOTONIC_REPORT_STATISTICS - Print period statistics report
+-----------------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
diff --git a/c-user/red_black_trees.rst b/c-user/red_black_trees.rst
index 53c8f81..bac16d1 100644
--- a/c-user/red_black_trees.rst
+++ b/c-user/red_black_trees.rst
@@ -4,11 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: Red-Black Trees
+.. index:: rbtrees
+
 Red-Black Trees
 ***************
 
-.. index:: rbtrees
-
 Introduction
 ============
 
@@ -111,9 +112,10 @@ Examples for using the red-black trees can be found in the
 Directives
 ==========
 
+.. index:: rbtree doc
+
 Documentation for the Red-Black Tree Directives
 -----------------------------------------------
-.. index:: rbtree doc
 
 Source documentation for the Red-Black Tree API can be found in the generated
 Doxygen output for ``cpukit/sapi``.
diff --git a/c-user/region_manager.rst b/c-user/region_manager.rst
index 70cf31d..9867a72 100644
--- a/c-user/region_manager.rst
+++ b/c-user/region_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: regions
+
 Region Manager
 **************
 
-.. index:: regions
-
 Introduction
 ============
 
@@ -34,11 +34,12 @@ variable sized units.  The directives provided by the region manager are:
 Background
 ==========
 
-Region Manager Definitions
---------------------------
 .. index:: region, definition
 .. index:: segment, definition
 
+Region Manager Definitions
+--------------------------
+
 A region makes up a physically contiguous memory space with user-defined
 boundaries from which variable-sized segments are dynamically allocated and
 deallocated.  A segment is a variable size section of memory which is allocated
@@ -59,9 +60,10 @@ boundaries while the region is currently active in the system.
 Upon return to the region, the free block is coalesced with its neighbors (if
 free) on both sides to produce the largest possible unused block.
 
+.. index:: region attribute set, building
+
 Building an Attribute Set
 -------------------------
-.. index:: region attribute set, building
 
 In general, an attribute set is built by a bitwise OR of the desired attribute
 components.  The set of valid region attributes is provided in the following
@@ -223,10 +225,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_region_create:
+.. index:: create a region
 
 REGION_CREATE - Create a region
 -------------------------------
-.. index:: create a region
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -298,13 +301,13 @@ NOTES:
    \clearpage
 
 .. _rtems_region_ident:
-
-REGION_IDENT - Get ID of a region
----------------------------------
 .. index:: get ID of a region
 .. index:: obtain ID of a region
 .. index:: rtems_region_ident
 
+REGION_IDENT - Get ID of a region
+---------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -340,11 +343,11 @@ NOTES:
    \clearpage
 
 .. _rtems_region_delete:
+.. index:: delete a region
+.. index:: rtems_region_delete
 
 REGION_DELETE - Delete a region
 -------------------------------
-.. index:: delete a region
-.. index:: rtems_region_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -381,13 +384,13 @@ NOTES:
    \clearpage
 
 .. _rtems_region_extend:
-
-REGION_EXTEND - Add memory to a region
---------------------------------------
 .. index:: add memory to a region
 .. index:: region, add memory
 .. index:: rtems_region_extend
 
+REGION_EXTEND - Add memory to a region
+--------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -434,11 +437,11 @@ NOTES:
    \clearpage
 
 .. _rtems_region_get_segment:
+.. index:: get segment from region
+.. index:: rtems_region_get_segment
 
 REGION_GET_SEGMENT - Get segment from a region
 ----------------------------------------------
-.. index:: get segment from region
-.. index:: rtems_region_get_segment
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -520,11 +523,11 @@ NOTES:
    \clearpage
 
 .. _rtems_region_return_segment:
+.. index:: return segment to region
+.. index:: rtems_region_return_segment
 
 REGION_RETURN_SEGMENT - Return segment to a region
 --------------------------------------------------
-.. index:: return segment to region
-.. index:: rtems_region_return_segment
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -569,11 +572,11 @@ NOTES:
    \clearpage
 
 .. _rtems_region_get_segment_size:
+.. index:: get size of segment
+.. index:: rtems_region_get_segment_size
 
 REGION_GET_SEGMENT_SIZE - Obtain size of a segment
 --------------------------------------------------
-.. index:: get size of segment
-.. index:: rtems_region_get_segment_size
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -611,11 +614,11 @@ NOTES:
    \clearpage
 
 .. _rtems_region_resize_segment:
+.. index:: resize segment
+.. index:: rtems_region_resize_segment
 
 REGION_RESIZE_SEGMENT - Change size of a segment
 ------------------------------------------------
-.. index:: resize segment
-.. index:: rtems_region_resize_segment
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/rtems_data_types.rst b/c-user/rtems_data_types.rst
index e5be2f3..6e76367 100644
--- a/c-user/rtems_data_types.rst
+++ b/c-user/rtems_data_types.rst
@@ -4,6 +4,9 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: RTEMS Data Types
+.. index:: data types
+
 RTEMS Data Types
 ****************
 
diff --git a/c-user/scheduling_concepts.rst b/c-user/scheduling_concepts.rst
index d6a57c4..ff47e0a 100644
--- a/c-user/scheduling_concepts.rst
+++ b/c-user/scheduling_concepts.rst
@@ -4,12 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
-Scheduling Concepts
-*******************
-
 .. index:: scheduling
 .. index:: task scheduling
 
+Scheduling Concepts
+*******************
+
 Introduction
 ============
 
@@ -39,11 +39,11 @@ The directives provided by the scheduler manager are:
 
 - rtems_scheduler_remove_processor_ - Remove processor from a scheduler
 
+.. index:: scheduling algorithms
+
 Scheduling Algorithms
 ---------------------
 
-.. index:: scheduling algorithms
-
 RTEMS provides a plugin framework which allows it to support multiple
 scheduling algorithms. RTEMS includes multiple scheduling algorithms and the
 user can select which of these they wish to use in their application at
@@ -60,9 +60,10 @@ scheduling algorithm.  This scheduling algoritm is suitable for uniprocessor
 Scheduler*.  Unless the user configures another scheduling algorithm, RTEMS
 will use this on uniprocessor systems.
 
+.. index:: priority scheduling
+
 Priority Scheduling
 -------------------
-.. index:: priority scheduling
 
 When using priority based scheduling, RTEMS allocates the processor using a
 priority-based, preemptive algorithm augmented to provide round-robin
@@ -153,9 +154,10 @@ supporting a large number of tasks.
 
 This scheduler is only aware of a single core.
 
+.. index:: earliest deadline first scheduling
+
 Earliest Deadline First Scheduler
 ---------------------------------
-.. index:: earliest deadline first scheduling
 
 This is an alternative scheduler in RTEMS for single core applications.  The
 primary EDF advantage is high total CPU utilization (theoretically up to
@@ -185,9 +187,10 @@ period, it has to be finished until the end of this period. The call of
 deadline. Moreover, the ``rtems_rate_monotonic_cancel`` and
 ``rtems_rate_monotonic_delete`` calls clear the deadlines assigned to the task.
 
+.. index:: constant bandwidth server scheduling
+
 Constant Bandwidth Server Scheduling (CBS)
 ------------------------------------------
-.. index:: constant bandwidth server scheduling
 
 This is an alternative scheduler in RTEMS for single core applications.  The
 CBS is a budget aware extension of EDF scheduler. The main goal of this
@@ -264,11 +267,11 @@ levels).  This scheduler supports arbitrary task processor affinities.  The
 worst-case run-time complexity of some scheduler operations exceeds
 :math:`O(n)` while :math:`n` is the count of ready tasks.
 
+.. index:: scheduling mechanisms
+
 Scheduling Modification Mechanisms
 ==================================
 
-.. index:: scheduling mechanisms
-
 RTEMS provides four mechanisms which allow the user to alter the task
 scheduling decisions:
 
@@ -290,9 +293,10 @@ timeslicing and manual round-robin it is important to keep in mind that
 preemption (if enabled) of a task by higher priority tasks will occur as
 required, overriding the other factors presented in the description.
 
+.. index:: task priority
+
 Task Priority and Scheduling
 ----------------------------
-.. index:: task priority
 
 The most significant task scheduling modification mechanism is the ability for
 the user to assign a priority level to each individual task when it is created
@@ -301,9 +305,10 @@ on the configured scheduler.  A lower priority level means higher priority
 (higher importance).  The maximum priority level of the default uniprocessor
 scheduler is 255.
 
+.. index:: preemption
+
 Preemption
 ----------
-.. index:: preemption
 
 Another way the user can alter the basic scheduling algorithm is by
 manipulating the preemption mode flag (``RTEMS_PREEMPT_MASK``) of individual
@@ -314,11 +319,12 @@ higher priority levels will not be allowed to execute.  Note that the
 preemption setting has no effect on the manner in which a task is scheduled.
 It only applies once a task has control of the processor.
 
-Timeslicing
------------
 .. index:: timeslicing
 .. index:: round robin scheduling
 
+Timeslicing
+-----------
+
 Timeslicing or round-robin scheduling is an additional method which can be used
 to alter the basic scheduling algorithm.  Like preemption, timeslicing is
 specified on a task by task basis using the timeslicing mode flag
@@ -333,9 +339,10 @@ and continues to run.  Remember that a higher priority task will preempt the
 task (unless preemption is disabled) as soon as it is ready to run, even if the
 task has not used up its entire timeslice.
 
+.. index:: manual round robin
+
 Manual Round-Robin
 ------------------
-.. index:: manual round robin
 
 The final mechanism for altering the RTEMS scheduling algorithm is called
 manual round-robin.  Manual round-robin is invoked by using
@@ -345,9 +352,10 @@ immediately returned to the ready chain at the end of its priority group.  If
 no other tasks of the same priority are ready to run, then the task does not
 lose control of the processor.
 
+.. index:: dispatching
+
 Dispatching Tasks
 =================
-.. index:: dispatching
 
 The dispatcher is the RTEMS component responsible for allocating the processor
 to a ready task.  In order to allocate the processor to one task, it must be
@@ -370,9 +378,10 @@ unnecessary save and restore operations, the state of the numeric coprocessor
 is only saved when a ``RTEMS_FLOATING_POINT`` task is dispatched and that task
 was not the last task to utilize the coprocessor.
 
+.. index:: task state transitions
+
 Task State Transitions
 ======================
-.. index:: task state transitions
 
 Tasks in an RTEMS system must always be in one of the five allowable task
 states.  These states are: executing, ready, blocked, dormant, and
diff --git a/c-user/semaphore_manager.rst b/c-user/semaphore_manager.rst
index 58558a5..6d95708 100644
--- a/c-user/semaphore_manager.rst
+++ b/c-user/semaphore_manager.rst
@@ -4,14 +4,14 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
-Semaphore Manager
-*****************
-
 .. index:: semaphores
 .. index:: binary semaphores
 .. index:: counting semaphores
 .. index:: mutual exclusion
 
+Semaphore Manager
+*****************
+
 Introduction
 ============
 
@@ -325,11 +325,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_semaphore_create:
+.. index:: create a semaphore
+.. index:: rtems_semaphore_create
 
 SEMAPHORE_CREATE - Create a semaphore
 -------------------------------------
-.. index:: create a semaphore
-.. index:: rtems_semaphore_create
 
 
 CALLING SEQUENCE:
@@ -437,14 +437,13 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_ident:
-
-SEMAPHORE_IDENT - Get ID of a semaphore
----------------------------------------
 .. index:: get ID of a semaphore
 .. index:: obtain ID of a semaphore
-
 .. index:: rtems_semaphore_ident
 
+SEMAPHORE_IDENT - Get ID of a semaphore
+---------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -490,11 +489,11 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_delete:
+.. index:: delete a semaphore
+.. index:: rtems_semaphore_delete
 
 SEMAPHORE_DELETE - Delete a semaphore
 -------------------------------------
-.. index:: delete a semaphore
-.. index:: rtems_semaphore_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -546,13 +545,13 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_obtain:
-
-SEMAPHORE_OBTAIN - Acquire a semaphore
---------------------------------------
 .. index:: obtain a semaphore
 .. index:: lock a semaphore
 .. index:: rtems_semaphore_obtain
 
+SEMAPHORE_OBTAIN - Acquire a semaphore
+--------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -645,13 +644,13 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_release:
-
-SEMAPHORE_RELEASE - Release a semaphore
----------------------------------------
 .. index:: release a semaphore
 .. index:: unlock a semaphore
 .. index:: rtems_semaphore_release
 
+SEMAPHORE_RELEASE - Release a semaphore
+---------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -706,13 +705,13 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_flush:
-
-SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore
-----------------------------------------------------------
 .. index:: flush a semaphore
 .. index:: unblock all tasks waiting on a semaphore
 .. index:: rtems_semaphore_flush
 
+SEMAPHORE_FLUSH - Unblock all tasks waiting on a semaphore
+----------------------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -762,11 +761,11 @@ NOTES:
    \clearpage
 
 .. _rtems_semaphore_set_priority:
+.. index:: set priority by scheduler for a semaphore
+.. index:: rtems_semaphore_set_priority
 
 SEMAPHORE_SET_PRIORITY - Set priority by scheduler for a semaphore
 ------------------------------------------------------------------
-.. index:: set priority by scheduler for a semaphore
-.. index:: rtems_semaphore_set_priority
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/signal_manager.rst b/c-user/signal_manager.rst
index 2bc9709..6b74854 100644
--- a/c-user/signal_manager.rst
+++ b/c-user/signal_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: signals
+
 Signal Manager
 **************
 
-.. index:: signals
-
 Introduction
 ============
 
@@ -22,11 +22,12 @@ communication.  The directives provided by the signal manager are:
 Background
 ==========
 
-Signal Manager Definitions
---------------------------
 .. index:: asynchronous signal routine
 .. index:: ASR
 
+Signal Manager Definitions
+--------------------------
+
 The signal manager allows a task to optionally define an asynchronous signal
 routine (ASR).  An ASR is to a task what an ISR is to an application's set of
 tasks.  When the processor is interrupted, the execution of an application is
@@ -46,11 +47,12 @@ 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.
 
-A Comparison of ASRs and ISRs
------------------------------
 .. index:: ASR vs. ISR
 .. index:: ISR vs. ASR
 
+A Comparison of ASRs and ISRs
+-----------------------------
+
 The format of an ASR is similar to that of an ISR with the following
 exceptions:
 
@@ -66,9 +68,10 @@ exceptions:
 - An ASR has a task mode which can be different from that of the task.  An ISR
   does not execute as a task and, as a result, does not have a task mode.
 
+.. index:: signal set, building
+
 Building a Signal Set
 ---------------------
-.. index:: signal set, building
 
 A signal set is built by a bitwise OR of the desired signals.  The set of valid
 signals is ``RTEMS_SIGNAL_0`` through ``RTEMS_SIGNAL_31``.  If a signal is not
@@ -82,9 +85,10 @@ consisting of ``RTEMS_SIGNAL_6``, ``RTEMS_SIGNAL_15``, and ``RTEMS_SIGNAL_31``.
 The signal parameter provided to the ``rtems_signal_send`` directive should be
 ``RTEMS_SIGNAL_6 | RTEMS_SIGNAL_15 | RTEMS_SIGNAL_31``.
 
+.. index:: ASR mode, building
+
 Building an ASR Mode
 --------------------
-.. index:: ASR mode, building
 
 In general, an ASR's mode is built by a bitwise OR of the desired mode
 components.  The set of valid mode components is the same as those allowed with
@@ -175,6 +179,8 @@ sending the same signal multiple times to a task (without any intermediate
 signal processing occurring for the task), has the same result as sending that
 signal to that task once.
 
+.. index:: rtems_asr
+
 Processing an ASR
 -----------------
 
@@ -185,8 +191,6 @@ and ISRs is limited to the meaning of the single argument passed to an ASR.
 The ASR should have the following calling sequence and adhere to C calling
 conventions:
 
-.. index:: rtems_asr
-
 .. code-block:: c
 
     rtems_asr user_routine(
@@ -208,13 +212,13 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_signal_catch:
-
-SIGNAL_CATCH - Establish an ASR
--------------------------------
 .. index:: establish an ASR
 .. index:: install an ASR
 .. index:: rtems_signal_catch
 
+SIGNAL_CATCH - Establish an ASR
+-------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -269,11 +273,11 @@ NOTES:
    \clearpage
 
 .. _rtems_signal_send:
+.. index:: send signal set
+.. index:: rtems_signal_send
 
 SIGNAL_SEND - Send signal set to a task
 ---------------------------------------
-.. index:: send signal set
-.. index:: rtems_signal_send
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/stack_bounds_checker.rst b/c-user/stack_bounds_checker.rst
index 67f1771..31ecf1d 100644
--- a/c-user/stack_bounds_checker.rst
+++ b/c-user/stack_bounds_checker.rst
@@ -4,11 +4,12 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: Stack Bounds Checker
+.. index:: stack
+
 Stack Bounds Checker
 ********************
 
-.. index:: stack
-
 Introduction
 ============
 
diff --git a/c-user/symmetric_multiprocessing_services.rst b/c-user/symmetric_multiprocessing_services.rst
index 5ff24a3..0cdf1ef 100644
--- a/c-user/symmetric_multiprocessing_services.rst
+++ b/c-user/symmetric_multiprocessing_services.rst
@@ -5,6 +5,9 @@
 .. COMMENT: Copyright (c) 2017 embedded brains GmbH.
 .. COMMENT: All rights reserved.
 
+.. index:: Symmetric Multiprocessing
+.. index:: SMP
+
 Symmetric Multiprocessing (SMP)
 *******************************
 
@@ -124,11 +127,12 @@ when a task switch occurred at just the wrong moment. Now there are N-1 tasks
 executing in parallel all the time and this results in many more opportunities
 for small windows in critical sections to be hit.
 
-Task Affinity
--------------
 .. index:: task affinity
 .. index:: thread affinity
 
+Task Affinity
+-------------
+
 RTEMS provides services to manipulate the affinity of a task. Affinity is used
 to specify the subset of processors in an SMP system on which a particular task
 can execute.
@@ -144,11 +148,12 @@ not support affinity, it is likely to ignore all attempts to set affinity.
 The scheduler with support for arbitary processor affinities uses a proof of
 concept implementation.  See https://devel.rtems.org/ticket/2510.
 
-Task Migration
---------------
 .. index:: task migration
 .. index:: thread migration
 
+Task Migration
+--------------
+
 With more than one processor in the system tasks can migrate from one processor
 to another.  There are four reasons why tasks migrate in RTEMS.
 
diff --git a/c-user/task_manager.rst b/c-user/task_manager.rst
index be99895..8934315 100644
--- a/c-user/task_manager.rst
+++ b/c-user/task_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: tasks
+
 Task Manager
 ************
 
-.. index:: tasks
-
 Introduction
 ============
 
@@ -56,9 +56,10 @@ and administer tasks.  The directives provided by the task manager are:
 Background
 ==========
 
+.. index:: task, definition
+
 Task Definition
 ---------------
-.. index:: task, definition
 
 Many definitions of a task have been proposed in computer literature.
 Unfortunately, none of these definitions encompasses all facets of the concept
@@ -102,9 +103,10 @@ regains control of the processor, its context is restored from the TCB.  When a
 task is restarted, the initial state of the task is restored from the starting
 context area in the task's TCB.
 
+.. index:: task name
+
 Task Name
 ---------
-.. index:: task name
 
 By default, the task name is defined by the task object name given to
 :ref:`rtems_task_create() <rtems_task_create>`.  The task name can be obtained
@@ -116,9 +118,10 @@ The maximum size of a task name is defined by the application configuration
 option :ref:`CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
 <CONFIGURE_MAXIMUM_THREAD_NAME_SIZE>`.
 
+.. index:: task states
+
 Task States
 -----------
-.. index:: task states
 
 A task may exist in one of the following five states:
 
@@ -140,12 +143,13 @@ tasks appear to execute in parallel, but actually each is dispatched to the CPU
 for periods of time determined by the RTEMS scheduling algorithm.  The
 scheduling of a task is based on its current state and priority.
 
-Task Priority
--------------
 .. index:: task priority
 .. index:: priority, task
 .. index:: rtems_task_priority
 
+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.  The data type ``rtems_task_priority`` is used to store task
@@ -164,11 +168,12 @@ Priorities are used by the scheduler to determine which ready task will be
 allowed to execute.  In general, the higher the logical priority of a task, the
 more likely it is to receive processor execution time.
 
-Task Mode
----------
 .. index:: task mode
 .. index:: rtems_task_mode
 
+Task Mode
+---------
+
 A task's execution mode is a combination of the following four components:
 
 - preemption
@@ -242,11 +247,12 @@ the task will execute at interrupt level n.
 The set of default modes may be selected by specifying the
 ``RTEMS_DEFAULT_MODES`` constant.
 
-Accessing Task Arguments
-------------------------
 .. index:: task arguments
 .. index:: task prototype
 
+Accessing Task Arguments
+------------------------
+
 All RTEMS tasks are invoked with a single argument which is specified when they
 are started or restarted.  The argument is commonly used to communicate startup
 information to the task.  The simplest manner in which to define a task which
@@ -263,9 +269,10 @@ accesses it argument is:
 Application tasks requiring more information may view this single argument as
 an index into an array of parameter blocks.
 
+.. index:: floating point
+
 Floating Point Considerations
 -----------------------------
-.. index:: floating point
 
 Creating a task with the ``RTEMS_FLOATING_POINT`` attribute flag results in
 additional memory being allocated for the TCB to store the state of the numeric
@@ -313,9 +320,10 @@ consequence of a ``RTEMS_NO_FLOATING_POINT`` task attempting to access the
 floating point unit is CPU dependent but will generally result in an exception
 condition.
 
+.. index:: task attributes, building
+
 Building a Task Attribute Set
 -----------------------------
-.. index:: task attributes, building
 
 In general, an attribute set is built by a bitwise OR of the desired
 components.  The set of valid task attribute components is listed below:
@@ -347,9 +355,10 @@ attribute_set parameter can be set to ``RTEMS_FLOATING_POINT`` because
 and used the numeric coprocessor, then the attribute_set parameter would be
 ``RTEMS_GLOBAL | RTEMS_FLOATING_POINT``.
 
+.. index:: task mode, building
+
 Building a Mode and Mask
 ------------------------
-.. index:: task mode, building
 
 In general, a mode and its corresponding mask is built by a bitwise OR of the
 desired components.  The set of valid mode constants and each mode's
@@ -547,12 +556,12 @@ It is important to note that the ``cpuset`` is not validated until the
 ``rtems_task_set_affinity`` call is made. At that point, it is validated
 against the current system configuration.
 
-Transition Advice for Obsolete Notepads
----------------------------------------
-
 .. index:: rtems_task_get_note
 .. index:: rtems_task_set_note
 
+Transition Advice for Obsolete Notepads
+---------------------------------------
+
 Task notepads and the associated directives :ref:`rtems_task_get_note` and
 :ref:`rtems_task_set_note` were removed in RTEMS 5.1. These were never
 thread-safe to access and subject to conflicting use of the notepad index by
@@ -564,13 +573,13 @@ over the key (e.g. notepad index) selection. For most applications, POSIX Keys
 should be used. These are available in all RTEMS build configurations. It is
 also possible that thread-local storage (TLS) is an option for some use cases.
 
-Transition Advice for Obsolete Task Variables
----------------------------------------------
-
 .. index:: rtems_task_variable_add
 .. index:: rtems_task_variable_get
 .. index:: rtems_task_variable_delete
 
+Transition Advice for Obsolete Task Variables
+---------------------------------------------
+
 Task notepads and the associated directives :ref:`rtems_task_variable_add`,
 :ref:`rtems_task_variable_get` and :ref:`rtems_task_variable_delete` were
 removed in RTEMS 5.1.  Task variables must be replaced by POSIX Keys or
@@ -590,11 +599,11 @@ related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_task_create:
+.. index:: create a task
+.. index:: rtems_task_create
 
 TASK_CREATE - Create a task
 ---------------------------
-.. index:: create a task
-.. index:: rtems_task_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -735,11 +744,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_ident:
+.. index:: get ID of a task
+.. index:: rtems_task_ident
 
 TASK_IDENT - Get ID of a task
 -----------------------------
-.. index:: get ID of a task
-.. index:: rtems_task_ident
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -789,11 +798,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_self:
+.. index:: obtain ID of caller
+.. index:: rtems_task_self
 
 TASK_SELF - Obtain ID of caller
 -------------------------------
-.. index:: obtain ID of caller
-.. index:: rtems_task_self
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -815,11 +824,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_start:
+.. index:: starting a task
+.. index:: rtems_task_start
 
 TASK_START - Start a task
 -------------------------
-.. index:: starting a task
-.. index:: rtems_task_start
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -869,11 +878,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_restart:
+.. index:: restarting a task
+.. index:: rtems_task_restart
 
 TASK_RESTART - Restart a task
 -----------------------------
-.. index:: restarting a task
-.. index:: rtems_task_restart
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -931,11 +940,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_delete:
+.. index:: deleting a task
+.. index:: rtems_task_delete
 
 TASK_DELETE - Delete a task
 ---------------------------
-.. index:: deleting a task
-.. index:: rtems_task_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -987,11 +996,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_suspend:
+.. index:: suspending a task
+.. index:: rtems_task_suspend
 
 TASK_SUSPEND - Suspend a task
 -----------------------------
-.. index:: suspending a task
-.. index:: rtems_task_suspend
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1034,11 +1043,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_resume:
+.. index:: resuming a task
+.. index:: rtems_task_resume
 
 TASK_RESUME - Resume a task
 ---------------------------
-.. index:: resuming a task
-.. index:: rtems_task_resume
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1079,11 +1088,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_is_suspended:
+.. index:: is task suspended
+.. index:: rtems_task_is_suspended
 
 TASK_IS_SUSPENDED - Determine if a task is Suspended
 ----------------------------------------------------
-.. index:: is task suspended
-.. index:: rtems_task_is_suspended
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1117,15 +1126,15 @@ NOTES:
    \clearpage
 
 .. _rtems_task_set_priority:
-
-TASK_SET_PRIORITY - Set task priority
--------------------------------------
 .. index:: rtems_task_set_priority
 .. index:: current task priority
 .. index:: set task priority
 .. index:: get task priority
 .. index:: obtain task priority
 
+TASK_SET_PRIORITY - Set task priority
+-------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -1181,14 +1190,14 @@ NOTES:
    \clearpage
 
 .. _rtems_task_get_priority:
-
-TASK_GET_PRIORITY - Get task priority
--------------------------------------
 .. index:: rtems_task_get_priority
 .. index:: current task priority
 .. index:: get task priority
 .. index:: obtain task priority
 
+TASK_GET_PRIORITY - Get task priority
+-------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -1230,9 +1239,6 @@ NOTES:
    \clearpage
 
 .. _rtems_task_mode:
-
-TASK_MODE - Change the current task mode
-----------------------------------------
 .. index:: current task mode
 .. index:: set task mode
 .. index:: get task mode
@@ -1241,6 +1247,9 @@ TASK_MODE - Change the current task mode
 .. index:: obtain task mode
 .. index:: rtems_task_mode
 
+TASK_MODE - Change the current task mode
+----------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -1309,13 +1318,13 @@ NOTES:
    \clearpage
 
 .. _rtems_task_wake_after:
-
-TASK_WAKE_AFTER - Wake up after interval
-----------------------------------------
 .. index:: delay a task for an interval
 .. index:: wake up after an interval
 .. index:: rtems_task_wake_after
 
+TASK_WAKE_AFTER - Wake up after interval
+----------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -1352,13 +1361,13 @@ NOTES:
    \clearpage
 
 .. _rtems_task_wake_when:
-
-TASK_WAKE_WHEN - Wake up when specified
----------------------------------------
 .. index:: delay a task until a wall time
 .. index:: wake up at a wall time
 .. index:: rtems_task_wake_when
 
+TASK_WAKE_WHEN - Wake up when specified
+---------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -1608,11 +1617,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_iterate:
+.. index:: iterate over all threads
+.. index:: rtems_task_iterate
 
 TASK_ITERATE - Iterate Over Tasks
 ---------------------------------
-.. index:: iterate over all threads
-.. index:: rtems_task_iterate
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -1650,10 +1659,10 @@ Deprecated and Removed Directives
    \clearpage
 
 .. _rtems_iterate_over_all_threads:
+.. index:: rtems_iterate_over_all_threads
 
 ITERATE_OVER_ALL_THREADS - Iterate Over Tasks
 ---------------------------------------------
-.. index:: rtems_iterate_over_all_threads
 
 .. warning::
 
@@ -1689,11 +1698,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_get_note:
+.. index:: get task notepad entry
+.. index:: rtems_task_get_note
 
 TASK_GET_NOTE - Get task notepad entry
 --------------------------------------
-.. index:: get task notepad entry
-.. index:: rtems_task_get_note
 
 .. warning::
 
@@ -1742,11 +1751,11 @@ NOTES:
    \clearpage
 
 .. _rtems_task_set_note:
+.. index:: set task notepad entry
+.. index:: rtems_task_set_note
 
 TASK_SET_NOTE - Set task notepad entry
 --------------------------------------
-.. index:: set task notepad entry
-.. index:: rtems_task_set_note
 
 .. warning::
 
@@ -1794,14 +1803,14 @@ NOTES:
    \clearpage
 
 .. _rtems_task_variable_add:
-
-TASK_VARIABLE_ADD - Associate per task variable
------------------------------------------------
 .. index:: per-task variable
 .. index:: task private variable
 .. index:: task private data
 .. index:: rtems_task_variable_add
 
+TASK_VARIABLE_ADD - Associate per task variable
+-----------------------------------------------
+
 .. warning::
 
     This directive was removed in RTEMS 5.1.
@@ -1857,13 +1866,13 @@ NOTES:
    \clearpage
 
 .. _rtems_task_variable_get:
-
-TASK_VARIABLE_GET - Obtain value of a per task variable
--------------------------------------------------------
 .. index:: get per-task variable
 .. index:: obtain per-task variable
 .. index:: rtems_task_variable_get
 
+TASK_VARIABLE_GET - Obtain value of a per task variable
+-------------------------------------------------------
+
 .. warning::
 
     This directive was removed in RTEMS 5.1.
@@ -1914,14 +1923,14 @@ NOTES:
    \clearpage
 
 .. _rtems_task_variable_delete:
-
-TASK_VARIABLE_DELETE - Remove per task variable
------------------------------------------------
 .. index:: per-task variable
 .. index:: task private variable
 .. index:: task private data
 .. index:: rtems_task_variable_delete
 
+TASK_VARIABLE_DELETE - Remove per task variable
+-----------------------------------------------
+
 .. warning::
 
     This directive was removed in RTEMS 5.1.
diff --git a/c-user/timer_manager.rst b/c-user/timer_manager.rst
index 1e29add..ca80dfd 100644
--- a/c-user/timer_manager.rst
+++ b/c-user/timer_manager.rst
@@ -4,11 +4,11 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: timers
+
 Timer Manager
 *************
 
-.. index:: timers
-
 Introduction
 ============
 
@@ -84,14 +84,14 @@ service routine finished its work.
 The Timer Server is designed to remain blocked until a task-based timer fires.
 This reduces the execution overhead of the Timer Server.
 
+.. index:: rtems_timer_service_routine
+
 Timer Service Routines
 ----------------------
 
 The timer service routine should adhere to C calling conventions and have a
 prototype similar to the following:
 
-.. index:: rtems_timer_service_routine
-
 .. code-block:: c
 
     rtems_timer_service_routine user_routine(
@@ -195,11 +195,11 @@ related constants, usage, and status codes.
 
    \clearpage
 .. _rtems_timer_create:
+.. index:: create a timer
+.. index:: rtems_timer_create
 
 TIMER_CREATE - Create a timer
 -----------------------------
-.. index:: create a timer
-.. index:: rtems_timer_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -241,11 +241,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_ident:
+.. index:: obtain the ID of a timer
+.. index:: rtems_timer_ident
 
 TIMER_IDENT - Get ID of a timer
 -------------------------------
-.. index:: obtain the ID of a timer
-.. index:: rtems_timer_ident
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -281,11 +281,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_cancel:
+.. index:: cancel a timer
+.. index:: rtems_timer_cancel
 
 TIMER_CANCEL - Cancel a timer
 -----------------------------
-.. index:: cancel a timer
-.. index:: rtems_timer_cancel
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -316,11 +316,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_delete:
+.. index:: delete a timer
+.. index:: rtems_timer_delete
 
 TIMER_DELETE - Delete a timer
 -----------------------------
-.. index:: delete a timer
-.. index:: rtems_timer_delete
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -355,11 +355,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_fire_after:
+.. index:: fire a timer after an interval
+.. index:: rtems_timer_fire_after
 
 TIMER_FIRE_AFTER - Fire timer after interval
 --------------------------------------------
-.. index:: fire a timer after an interval
-.. index:: rtems_timer_fire_after
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -399,11 +399,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_fire_when:
+.. index:: fire a timer at wall time
+.. index:: rtems_timer_fire_when
 
 TIMER_FIRE_WHEN - Fire timer when specified
 -------------------------------------------
-.. index:: fire a timer at wall time
-.. index:: rtems_timer_fire_when
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -447,11 +447,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_initiate_server:
+.. index:: initiate the Timer Server
+.. index:: rtems_timer_initiate_server
 
 TIMER_INITIATE_SERVER - Initiate server for task-based timers
 -------------------------------------------------------------
-.. index:: initiate the Timer Server
-.. index:: rtems_timer_initiate_server
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -492,11 +492,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_server_fire_after:
+.. index:: fire task-based a timer after an interval
+.. index:: rtems_timer_server_fire_after
 
 TIMER_SERVER_FIRE_AFTER - Fire task-based timer after interval
 --------------------------------------------------------------
-.. index:: fire task-based a timer after an interval
-.. index:: rtems_timer_server_fire_after
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -540,11 +540,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_server_fire_when:
+.. index:: fire a task-based timer at wall time
+.. index:: rtems_timer_server_fire_when
 
 TIMER_SERVER_FIRE_WHEN - Fire task-based timer when specified
 -------------------------------------------------------------
-.. index:: fire a task-based timer at wall time
-.. index:: rtems_timer_server_fire_when
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -592,11 +592,11 @@ NOTES:
    \clearpage
 
 .. _rtems_timer_reset:
+.. index:: reset a timer
+.. index:: rtems_timer_reset
 
 TIMER_RESET - Reset an interval timer
 -------------------------------------
-.. index:: reset a timer
-.. index:: rtems_timer_reset
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/timespec_helpers.rst b/c-user/timespec_helpers.rst
index 905af55..115833b 100644
--- a/c-user/timespec_helpers.rst
+++ b/c-user/timespec_helpers.rst
@@ -4,6 +4,8 @@
 .. COMMENT: On-Line Applications Research Corporation (OAR).
 .. COMMENT: All rights reserved.
 
+.. index:: TImespec Helpers
+
 Timespec Helpers
 ****************
 
@@ -124,11 +126,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_timespec_set:
+.. index:: set struct timespec instance
+.. index:: rtems_timespec_set
 
 TIMESPEC_SET - Set struct timespec Instance
 -------------------------------------------
-.. index:: set struct timespec instance
-.. index:: rtems_timespec_set
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -155,10 +157,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_zero:
+.. index:: rtems_timespec_zero
 
 TIMESPEC_ZERO - Zero struct timespec Instance
 ---------------------------------------------
-.. index:: rtems_timespec_zero
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -182,10 +184,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_is_valid:
+.. index:: rtems_timespec_is_valid
 
 TIMESPEC_IS_VALID - Check validity of a struct timespec instance
 ----------------------------------------------------------------
-.. index:: rtems_timespec_is_valid
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -211,10 +213,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_add_to:
+.. index:: rtems_timespec_add_to
 
 TIMESPEC_ADD_TO - Add Two struct timespec Instances
 ---------------------------------------------------
-.. index:: rtems_timespec_add_to
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -240,10 +242,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_subtract:
+.. index:: rtems_timespec_subtract
 
 TIMESPEC_SUBTRACT - Subtract Two struct timespec Instances
 ----------------------------------------------------------
-.. index:: rtems_timespec_subtract
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -274,10 +276,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_divide:
+.. index:: rtems_timespec_divide
 
 TIMESPEC_DIVIDE - Divide Two struct timespec Instances
 ------------------------------------------------------
-.. index:: rtems_timespec_divide
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -314,10 +316,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_divide_by_integer:
+.. index:: rtems_timespec_divide_by_integer
 
 TIMESPEC_DIVIDE_BY_INTEGER - Divide a struct timespec Instance by an Integer
 ----------------------------------------------------------------------------
-.. index:: rtems_timespec_divide_by_integer
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -345,10 +347,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_less_than:
+.. index:: rtems_timespec_less_than
 
 TIMESPEC_LESS_THAN - Less than operator
 ---------------------------------------
-.. index:: rtems_timespec_less_than
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -375,10 +377,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_greater_than:
+.. index:: rtems_timespec_greater_than
 
 TIMESPEC_GREATER_THAN - Greater than operator
 ---------------------------------------------
-.. index:: rtems_timespec_greater_than
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -403,10 +405,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_equal_to:
+.. index:: rtems_timespec_equal_to
 
 TIMESPEC_EQUAL_TO - Check equality of timespecs
 -----------------------------------------------
-.. index:: rtems_timespec_equal_to
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -431,10 +433,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_get_seconds:
+.. index:: rtems_timespec_get_seconds
 
 TIMESPEC_GET_SECONDS - Get Seconds Portion of struct timespec Instance
 ----------------------------------------------------------------------
-.. index:: rtems_timespec_get_seconds
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -459,10 +461,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_get_nanoseconds:
+.. index:: rtems_timespec_get_nanoseconds
 
 TIMESPEC_GET_NANOSECONDS - Get Nanoseconds Portion of the struct timespec Instance
 ----------------------------------------------------------------------------------
-.. index:: rtems_timespec_get_nanoseconds
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -487,10 +489,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_to_ticks:
+.. index:: rtems_timespec_to_ticks
 
 TIMESPEC_TO_TICKS - Convert struct timespec Instance to Ticks
 -------------------------------------------------------------
-.. index:: rtems_timespec_to_ticks
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -514,10 +516,10 @@ NOTES:
    \clearpage
 
 .. _rtems_timespec_from_ticks:
+.. index:: rtems_timespec_from_ticks
 
 TIMESPEC_FROM_TICKS - Convert Ticks to struct timespec Representation
 ---------------------------------------------------------------------
-.. index:: rtems_timespec_from_ticks
 
 CALLING SEQUENCE:
     .. code-block:: c
diff --git a/c-user/user_extensions.rst b/c-user/user_extensions.rst
index f51e6d6..84af815 100644
--- a/c-user/user_extensions.rst
+++ b/c-user/user_extensions.rst
@@ -5,12 +5,11 @@
 .. COMMENT: All rights reserved.
 
 .. _User Extensions Manager:
+.. index:: user extensions
 
 User Extensions Manager
 ***********************
 
-.. index:: user extensions
-
 Introduction
 ============
 
@@ -62,11 +61,12 @@ dynamic memory allocations and object creation/deletion.  Some user extensions
 are invoked with thread dispatching disabled.  The fatal error extension is
 invoked in an arbitrary context.
 
-Extension Sets
---------------
 .. index:: user extension set
 .. index:: rtems_extensions_table
 
+Extension Sets
+--------------
+
 User extensions are maintained as a set.  All user extensions are optional and
 may be `NULL`.  Together a set of these user extensions typically performs a
 specific functionality such as performance monitoring or debugger support.  The
@@ -86,9 +86,10 @@ extension set is defined via the following structure.
       rtems_task_terminate_extension thread_terminate;
     } rtems_extensions_table;
 
+.. index:: TCB extension area
+
 TCB Extension Area
 ------------------
-.. index:: TCB extension area
 
 There is no system-provided storage for the initial extension sets.
 
@@ -169,6 +170,8 @@ installed after the Standard C Library will operate correctly even if they
 utilize the C Library because the C Library's thread delete extension is
 invoked after that of the other thread delete extensions.
 
+.. index:: rtems_task_create_extension
+
 Thread Create Extension
 -----------------------
 
@@ -176,8 +179,6 @@ The thread create extension is invoked during thread creation, for example
 via :ref:`rtems_task_create() <rtems_task_create>` or :c:func:`pthread_create`.
 The thread create extension is defined as follows.
 
-.. index:: rtems_task_create_extension
-
 .. code-block:: c
 
     typedef bool ( *rtems_task_create_extension )(
@@ -202,6 +203,8 @@ must return :c:data:`true`.
 The thread create extension is invoked in forward order with thread dispatching
 enabled (except during system initialization).
 
+.. index:: rtems_task_start_extension
+
 Thread Start Extension
 ----------------------
 
@@ -209,8 +212,6 @@ The thread start extension is invoked during a thread start, for example
 via :ref:`rtems_task_start() <rtems_task_start>` or :c:func:`pthread_create`.
 The thread start extension is defined as follows.
 
-.. index:: rtems_task_start_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_start_extension )(
@@ -228,6 +229,8 @@ invoked.
 The thread start extension is invoked in forward order with thread dispatching
 disabled.
 
+.. index:: rtems_task_restart_extension
+
 Thread Restart Extension
 ------------------------
 
@@ -235,8 +238,6 @@ The thread restart extension is invoked during a thread restart, for example
 via :ref:`rtems_task_restart() <rtems_task_start>`.
 The thread restart extension is defined as follows.
 
-.. index:: rtems_task_restart_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_restart_extension )(
@@ -254,6 +255,8 @@ dispatching enabled (except during system initialization).  The thread life is
 protected.  Thread restart and delete requests issued by thread restart
 extensions lead to recursion.
 
+.. index:: rtems_task_switch_extension
+
 Thread Switch Extension
 -----------------------
 
@@ -261,8 +264,6 @@ The thread switch extension is invoked before the context switch from the
 currently executing thread to the heir thread.  The thread switch extension is
 defined as follows.
 
-.. index:: rtems_task_switch_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_switch_extension )(
@@ -280,14 +281,14 @@ SMP lock is owned.
 The context switches initiated through the multitasking start are not covered
 by the thread switch extension.
 
+.. index:: rtems_task_begin_extension
+
 Thread Begin Extension
 ----------------------
 
 The thread begin extension is invoked during a thread begin before the thread
 entry function is called.  The thread begin extension is defined as follows.
 
-.. index:: rtems_task_begin_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_begin_extension )(
@@ -303,14 +304,14 @@ The thread begin extension is invoked in forward order with thread dispatching
 enabled.  The thread switch extension may be called multiple times for this
 thread before the thread begin extension is invoked.
 
+.. index:: rtems_task_exitted_extension
+
 Thread Exitted Extension
 ------------------------
 
 The thread exitted extension is invoked once the thread entry function returns.
 The thread exitted extension is defined as follows.
 
-.. index:: rtems_task_exitted_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_exitted_extension )(
@@ -322,6 +323,8 @@ thread.
 
 This extension is invoked in forward order with thread dispatching enabled.
 
+.. index:: rtems_task_terminate_extension
+
 Thread Termination Extension
 ----------------------------
 
@@ -331,8 +334,6 @@ due to calls of :ref:`rtems_task_delete() <rtems_task_delete>`,
 :c:func:`pthread_exit`, or :c:func:`pthread_cancel`.  The thread termination
 extension is defined as follows.
 
-.. index:: rtems_task_terminate_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_terminate_extension )(
@@ -351,6 +352,8 @@ The thread terminate extension is invoked in reverse order with thread
 dispatching enabled.  The thread life is protected.  Thread restart and delete
 requests issued by thread terminate extensions lead to recursion.
 
+.. index:: rtems_task_delete_extension
+
 Thread Delete Extension
 -----------------------
 
@@ -358,8 +361,6 @@ The thread delete extension is invoked in case a zombie thread is killed.  A
 thread becomes a zombie thread after it terminated.  The thread delete
 extension is defined as follows.
 
-.. index:: rtems_task_delete_extension
-
 .. code-block:: c
 
     typedef void ( *rtems_task_delete_extension )(
@@ -383,14 +384,14 @@ must first terminate and this may take some time.  The thread delete extension
 is invoked by :ref:`rtems_task_create() <rtems_task_create>` or similar as a
 result of a lazy garbage collection of zombie threads.
 
+.. index:: rtems_fatal_extension
+
 Fatal Error Extension
 ---------------------
 
 The fatal error extension is invoked during :ref:`system termination
 <Terminate>`.  The fatal error extension is defined as follows.
 
-.. index:: rtems_fatal_extension
-
 .. code-block:: c
 
     typedef void( *rtems_fatal_extension )(
@@ -424,11 +425,11 @@ sequence, related constants, usage, and status codes.
    \clearpage
 
 .. _rtems_extension_create:
+.. index:: create an extension set
+.. index:: rtems_extension_create
 
 EXTENSION_CREATE - Create a extension set
 -----------------------------------------
-.. index:: create an extension set
-.. index:: rtems_extension_create
 
 CALLING SEQUENCE:
     .. code-block:: c
@@ -472,13 +473,13 @@ NOTES:
    \clearpage
 
 .. _rtems_extension_ident:
-
-EXTENSION_IDENT - Get ID of a extension set
--------------------------------------------
 .. index:: get ID of an extension set
 .. index:: obtain ID of an extension set
 .. index:: rtems_extension_ident
 
+EXTENSION_IDENT - Get ID of a extension set
+-------------------------------------------
+
 CALLING SEQUENCE:
     .. code-block:: c
 
@@ -513,11 +514,11 @@ NOTES:
    \clearpage
 
 .. _rtems_extension_delete:
+.. index:: delete an extension set
+.. index:: rtems_extension_delete
 
 EXTENSION_DELETE - Delete a extension set
 -----------------------------------------
-.. index:: delete an extension set
-.. index:: rtems_extension_delete
 
 CALLING SEQUENCE:
     .. code-block:: c




More information about the vc mailing list