[PATCH 01/33] libtest: <rtems/test.h> to <rtems/simple-test.h>

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jul 21 15:04:18 UTC 2020


Rename this header file to later move <t.h> to <rtems/test.h>.

Update #3199.
---
 cpukit/headers.am                             |    3 +-
 cpukit/include/rtems/doxygen-appl-config.h    | 3736 +++++++++++++++++
 .../include/rtems/{test.h => simple-test.h}   |    0
 cpukit/libtest/testbeginend.c                 |    2 +-
 cpukit/libtest/testbusy.c                     |    2 +-
 cpukit/libtest/testextension.c                |    2 +-
 cpukit/libtest/testparallel.c                 |    2 +-
 cpukit/libtest/testwrappers.c                 |    2 +-
 testsuites/ada/support/initimpl.h             |    2 +-
 testsuites/libtests/block08/system.h          |    2 +-
 testsuites/libtests/block09/init.c            |    2 +-
 testsuites/libtests/block10/init.c            |    2 +-
 testsuites/libtests/capture01/system.h        |    2 +-
 testsuites/libtests/dl01/dl01-o1.c            |    2 +-
 testsuites/libtests/dl02/dl02-o1.c            |    2 +-
 testsuites/libtests/dl02/dl02-o2.c            |    2 +-
 testsuites/libtests/dl05/dl05-o5.cc           |    2 +-
 testsuites/libtests/dl06/dl06-o1.c            |    2 +-
 testsuites/libtests/dl06/dl06-o2.c            |    2 +-
 testsuites/libtests/dl07/dl07-o1.c            |    2 +-
 testsuites/libtests/dl07/dl07-o2.c            |    2 +-
 testsuites/libtests/dl07/dl07-o3.c            |    2 +-
 testsuites/libtests/dl07/dl07-o4.c            |    2 +-
 testsuites/libtests/dl07/dl07-o5.c            |    2 +-
 testsuites/libtests/dl08/dl08-o1.c            |    2 +-
 testsuites/libtests/dl08/dl08-o2.c            |    2 +-
 testsuites/libtests/dl08/dl08-o3.c            |    2 +-
 testsuites/libtests/dl08/dl08-o4.c            |    2 +-
 testsuites/libtests/dl08/dl08-o5.c            |    2 +-
 .../dl08/dl08-o6-123456789-123456789.c        |    2 +-
 testsuites/libtests/dl09/dl09-o1.c            |    2 +-
 testsuites/libtests/dl09/dl09-o2.c            |    2 +-
 testsuites/libtests/dl09/dl09-o3.c            |    2 +-
 testsuites/libtests/dl09/dl09-o4.c            |    2 +-
 testsuites/libtests/dl09/dl09-o5.c            |    2 +-
 testsuites/libtests/dl10/dl10-o1.c            |    2 +-
 testsuites/libtests/dl10/dl10-o2.c            |    2 +-
 testsuites/libtests/dl10/dl10-o3.c            |    2 +-
 testsuites/libtests/dl10/dl10-o4.c            |    2 +-
 testsuites/libtests/dl10/dl10-o5.c            |    2 +-
 testsuites/libtests/dl10/dl10-o6.c            |    2 +-
 testsuites/libtests/mathl/init.c              |    2 +-
 testsuites/psxtests/psxbarrier01/main.c       |    2 +-
 testsuites/psxtests/psxconfig01/init.c        |    2 +-
 testsuites/psxtests/psxfenv01/init.c          |    2 +-
 testsuites/psxtests/psxinttypes01/init.c      |    2 +-
 testsuites/psxtests/psxndbm01/init.c          |    2 +-
 testsuites/psxtests/psxrwlock01/main.c        |    2 +-
 testsuites/samples/base_mp/system.h           |    2 +-
 testsuites/samples/base_sp/system.h           |    2 +-
 testsuites/samples/capture/system.h           |    2 +-
 testsuites/samples/cdtest/main.cc             |    2 +-
 testsuites/samples/cdtest/system.h            |    2 +-
 testsuites/samples/fileio/system.h            |    2 +-
 testsuites/samples/iostream/system.h          |    2 +-
 testsuites/samples/nsecs/system.h             |    2 +-
 testsuites/samples/paranoia/system.h          |    2 +-
 testsuites/samples/pppd/system.h              |    2 +-
 testsuites/samples/ticker/system.h            |    2 +-
 testsuites/smptests/smpatomic01/init.c        |    2 +-
 testsuites/smptests/smplock01/init.c          |    2 +-
 testsuites/smptests/smpscheduler03/init.c     |    2 +-
 testsuites/smptests/smpscheduler05/init.c     |    2 +-
 testsuites/smptests/smpscheduler06/init.c     |    2 +-
 testsuites/smptests/smpscheduler07/init.c     |    2 +-
 testsuites/sptests/spheapprot/init.c          |    2 +-
 testsuites/sptests/sptimecounter02/init.c     |    2 +-
 testsuites/sptests/sptimecounter03/init.c     |    2 +-
 testsuites/sptests/sptimecounter04/init.c     |    2 +-
 testsuites/support/include/buffer_test_io.h   |    2 +-
 testsuites/support/include/tmacros.h          |    2 +-
 testsuites/tmtests/tmfine01/init.c            |    2 +-
 testsuites/tmtests/tmonetoone/init.c          |    2 +-
 73 files changed, 3808 insertions(+), 71 deletions(-)
 create mode 100644 cpukit/include/rtems/doxygen-appl-config.h
 rename cpukit/include/rtems/{test.h => simple-test.h} (100%)

diff --git a/cpukit/headers.am b/cpukit/headers.am
index dd38c69242..248707dc8a 100644
--- a/cpukit/headers.am
+++ b/cpukit/headers.am
@@ -87,6 +87,7 @@ include_rtems_HEADERS += include/rtems/devnull.h
 include_rtems_HEADERS += include/rtems/devzero.h
 include_rtems_HEADERS += include/rtems/diskdevs.h
 include_rtems_HEADERS += include/rtems/dosfs.h
+include_rtems_HEADERS += include/rtems/doxygen-appl-config.h
 include_rtems_HEADERS += include/rtems/dumpbuf.h
 include_rtems_HEADERS += include/rtems/endian.h
 include_rtems_HEADERS += include/rtems/error.h
@@ -159,6 +160,7 @@ include_rtems_HEADERS += include/rtems/serial_mouse.h
 include_rtems_HEADERS += include/rtems/seterr.h
 include_rtems_HEADERS += include/rtems/shell.h
 include_rtems_HEADERS += include/rtems/shellconfig.h
+include_rtems_HEADERS += include/rtems/simple-test.h
 include_rtems_HEADERS += include/rtems/sparse-disk.h
 include_rtems_HEADERS += include/rtems/spurious.h
 include_rtems_HEADERS += include/rtems/stackchk.h
@@ -170,7 +172,6 @@ include_rtems_HEADERS += include/rtems/telnetd.h
 include_rtems_HEADERS += include/rtems/termios_printk.h
 include_rtems_HEADERS += include/rtems/termios_printk_cnf.h
 include_rtems_HEADERS += include/rtems/termiostypes.h
-include_rtems_HEADERS += include/rtems/test.h
 include_rtems_HEADERS += include/rtems/tftp.h
 include_rtems_HEADERS += include/rtems/thread.h
 include_rtems_HEADERS += include/rtems/timecounter.h
diff --git a/cpukit/include/rtems/doxygen-appl-config.h b/cpukit/include/rtems/doxygen-appl-config.h
new file mode 100644
index 0000000000..a68118692d
--- /dev/null
+++ b/cpukit/include/rtems/doxygen-appl-config.h
@@ -0,0 +1,3736 @@
+/**
+ * @defgroup Block Device Cache Configuration Block Device Cache Configuration
+ *
+ * This section describes configuration options related to the Block Device
+ * Cache (bdbuf).
+ *
+ * @{
+ */
+
+/**
+ * @brief In case this configuration option is defined, then the Block Device
+ *   Cache is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Each option of the Block Device Cache (bdbuf) configuration can be
+ * explicitly set by the user with the configuration options below.  The Block
+ * Device Cache is used for example by the RFS and DOSFS filesystems.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+
+/**
+ * @brief The value of this configuration option defines the maximum size of a
+ *   buffer in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 4096.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be an integral multiple of :ref:`CONFIGURE_BDBUF_BUFFER_MIN_SIZE`.
+ */
+#define CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+
+/**
+ * @brief The value of this configuration option defines the minimum size of a
+ *   buffer in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 512.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ */
+#define CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+
+/**
+ * @brief The value of this configuration option defines the size of the cache
+ *   memory in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 32768.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``SIZE_MAX``.
+ */
+#define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
+
+/**
+ * @brief The value of this configuration option defines the maximum blocks per
+ *   read-ahead request.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * A value of 0 disables the read-ahead task (default).  The read-ahead task
+ * will issue speculative read transfers if a sequential access pattern is
+ * detected.  This can improve the performance on some systems.
+ */
+#define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+
+/**
+ * @brief The value of this configuration option defines the maximum blocks per
+ *   write request.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 16.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ */
+#define CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+
+/**
+ * @brief The value of this configuration option defines the read-ahead task
+ *   priority.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 15.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ */
+#define CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+
+/**
+ * @brief The value of this configuration option defines the task stack size of
+ *   the Block Device Cache tasks in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is ``RTEMS_MINIMUM_STACK_SIZE``.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to
+ *   :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ */
+#define CONFIGURE_BDBUF_TASK_STACK_SIZE
+
+/**
+ * @brief The value of this configuration option defines the swapout task
+ *   maximum block hold time in milliseconds.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 1000.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ */
+#define CONFIGURE_SWAPOUT_BLOCK_HOLD
+
+/**
+ * @brief The value of this configuration option defines the swapout task swap
+ *   period in milliseconds.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 250.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ */
+#define CONFIGURE_SWAPOUT_SWAP_PERIOD
+
+/**
+ * @brief The value of this configuration option defines the swapout task
+ *   priority.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 15.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ */
+#define CONFIGURE_SWAPOUT_TASK_PRIORITY
+
+/**
+ * @brief The value of this configuration option defines the swapout worker
+ *   task priority.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 15.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ */
+#define CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+
+/**
+ * @brief The value of this configuration option defines the swapout worker
+ *   task count.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ */
+#define CONFIGURE_SWAPOUT_WORKER_TASKS
+
+/** @} */
+
+/**
+ * @defgroup BSP Related Configuration Options BSP Related Configuration Options
+ *
+ * This section describes configuration options related to the BSP.  Some
+ * configuration options may have a BSP-specific setting which is defined by
+ * ``<bsp.h>``.  The BSP-specific settings can be disabled by the
+ * :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` configuration option.
+ *
+ * @{
+ */
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then the value of this configuration option defines the default value
+ *   of :ref:`CONFIGURE_IDLE_TASK_BODY`.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is BSP-specific.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void *( *idle_body )( uintptr_t )``.
+ *
+ * As it has knowledge of the specific CPU model, system controller logic, and
+ * peripheral buses, a BSP-specific IDLE task may be capable of turning
+ * components off to save power during extended periods of no task activity.
+ */
+#define BSP_IDLE_TASK_BODY
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then the value of this configuration option defines the default value
+ *   of :ref:`CONFIGURE_IDLE_TASK_SIZE`.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is BSP-specific.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the IDLE task stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the IDLE task stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ */
+#define BSP_IDLE_TASK_STACK_SIZE
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then the value of this configuration option is used to initialize the
+ *   table of initial user extensions.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is BSP-specific.
+ *
+ * The value of this configuration option shall be a list of initializers for
+ * structures of type :c:type:`rtems_extensions_table`.
+ *
+ * The value of this configuration option is placed after the entries of all
+ * other initial user extensions.
+ */
+#define BSP_INITIAL_EXTENSION
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then the value of this configuration option defines the default value
+ *   of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is BSP-specific.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the interrupt stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be aligned according to ``CPU_INTERRUPT_STACK_ALIGNMENT``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the interrupt stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be aligned according to ``CPU_INTERRUPT_STACK_ALIGNMENT``.
+ */
+#define BSP_INTERRUPT_STACK_SIZE
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then the value of this configuration option is used to initialize the
+ *   table of initial user extensions.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is BSP-specific.
+ *
+ * The value of this configuration option shall be a list of initializers for
+ * structures of type :c:type:`rtems_extensions_table`.
+ *
+ * The value of this configuration option is placed before the entries of all
+ * other initial user extensions (including
+ * :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`).
+ */
+#define CONFIGURE_BSP_PREREQUISITE_DRIVERS
+
+/**
+ * @brief In case this configuration option is defined, then the following BSP
+ *   related configuration options are undefined:
+ *
+ * @brief * :ref:`BSP_IDLE_TASK_BODY`
+ *
+ * @brief * :ref:`BSP_IDLE_TASK_STACK_SIZE`
+ *
+ * @brief * :ref:`BSP_INITIAL_EXTENSION`
+ *
+ * @brief * :ref:`BSP_INTERRUPT_STACK_SIZE`
+ *
+ * @brief * :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS`
+ *
+ * @brief * :ref:`CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK`
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_DISABLE_BSP_SETTINGS
+
+/**
+ * @brief If
+ *
+ * @brief * this configuration option is defined by the BSP
+ *
+ * @brief * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
+ *
+ * @brief then not all memory is made available to the C Program Heap
+ *   immediately at system initialization time.  When :c:func:`malloc()` or
+ *   other standard memory allocation functions are unable to allocate memory,
+ *   they will call the BSP supplied :c:func:`sbrk()` function to obtain more
+ *   memory.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This option should not be defined by the application. Only the BSP knows how
+ * it allocates memory to the C Program Heap.
+ */
+#define CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
+
+/** @} */
+
+/**
+ * @defgroup Classic API Configuration Classic API Configuration
+ *
+ * This section describes configuration options related to the Classic API.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Barriers that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_BARRIERS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Message Queues that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
+ * store the messages of each message queue, see
+ * :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+ */
+#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Partitions that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_PARTITIONS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Periods that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_PERIODS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Ports that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_PORTS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Regions that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_REGIONS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Semaphore that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * In SMP configurations, the size of a Semaphore Control Block depends on the
+ * scheduler count (see :ref:`ConfigurationSchedulerTable`).  The semaphores
+ * using the :ref:`MrsP` need a ceiling priority per scheduler.
+ */
+#define CONFIGURE_MAXIMUM_SEMAPHORES
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Tasks that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * The calculations for the required memory in the RTEMS Workspace for tasks
+ * assume that each task has a minimum stack size and has floating point
+ * support enabled.  The configuration parameter
+ * ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify task stack requirements
+ * *ABOVE* the minimum size required.  See :ref:`Reserve Task/Thread Stack
+ * Memory Above Minimum` for more information about
+ * ``CONFIGURE_EXTRA_TASK_STACKS``.
+ *
+ * The maximum number of POSIX threads is specified by
+ * :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
+ *
+ * A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
+ * assumption that all tasks have floating point enabled. This would require
+ * the addition of a new configuration parameter to specify the number of tasks
+ * which enable floating point support.
+ */
+#define CONFIGURE_MAXIMUM_TASKS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API Timers that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_TIMERS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   Classic API User Extensions that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * This object class cannot be configured in unlimited allocation mode.
+ */
+#define CONFIGURE_MAXIMUM_USER_EXTENSIONS
+
+/** @} */
+
+/**
+ * @defgroup Classic API Initialization Task Configuration Classic API Initialization Task Configuration
+ *
+ * This section describes configuration options related to the Classic API
+ * initialization task.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option defines task argument of the
+ *   Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall be a valid integer of type
+ * ``rtems_task_argument``.
+ */
+#define CONFIGURE_INIT_TASK_ARGUMENTS
+
+/**
+ * @brief The value of this configuration option defines the task attributes of
+ *   the Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
+ *
+ * The value of this configuration option shall be a valid task attribute set.
+ */
+#define CONFIGURE_INIT_TASK_ATTRIBUTES
+
+/**
+ * @brief The value of this configuration option initializes the entry point of
+ *   the Classic API initialization task.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``Init``.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
+ *
+ * The application shall provide the function referenced by this configuration
+ * option.
+ */
+#define CONFIGURE_INIT_TASK_ENTRY_POINT
+
+/**
+ * @brief The value of this configuration option defines the initial execution
+ *   mode of the Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * In SMP  configurations, the default value is ``RTEMS_DEFAULT_MODES``, otherwise
+ * the default value is ``RTEMS_NO_PREEMPT``.
+ *
+ * The value of this configuration option shall be a valid task mode set.
+ */
+#define CONFIGURE_INIT_TASK_INITIAL_MODES
+
+/**
+ * @brief The value of this configuration option defines the name of the
+ *   Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
+ *
+ * The value of this configuration option shall be a valid integer of type
+ * ``rtems_name``.
+ *
+ * Use :c:func:`rtems_build_name` to define the task name.
+ */
+#define CONFIGURE_INIT_TASK_NAME
+
+/**
+ * @brief The value of this configuration option defines the initial priority
+ *   of the Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 1.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ */
+#define CONFIGURE_INIT_TASK_PRIORITY
+
+/**
+ * @brief The value of this configuration option defines the task stack size of
+ *   the Classic API initialization task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to
+ *   :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ */
+#define CONFIGURE_INIT_TASK_STACK_SIZE
+
+/**
+ * @brief In case this configuration option is defined, then exactly one
+ *   Classic API initialization task is configured.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * `CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
+ *
+ * * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
+ *
+ * * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
+ *
+ * otherwise a compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+/** @} */
+
+/**
+ * @defgroup Device Driver Configuration Device Driver Configuration
+ *
+ * This section describes configuration options related to the device drivers.
+ * Note that network device drivers are not covered by the following options.
+ *
+ * @{
+ */
+
+/**
+ * @brief In case this configuration option is defined, then **no** Clock
+ *   Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then a Clock Driver may be
+ * initialized during system initialization.
+ *
+ * This configuration parameter is intended to prevent the common user error of
+ * using the Hello World example as the baseline for an application and leaving
+ * out a clock tick source.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+ *
+ * * `CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+ *
+ * otherwise a compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+
+/**
+ * @brief The value of this configuration option is used to initialize the
+ *   Device Driver Table.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is the empty list.
+ *
+ * The value of this configuration option shall be a list of initializers for
+ * structures of type :c:type:`rtems_driver_address_table`.
+ *
+ * The value of this configuration option is placed after the entries of other
+ * device driver configuration options.
+ *
+ * See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative
+ * placement of application device driver initializers.
+ */
+#define CONFIGURE_APPLICATION_EXTRA_DRIVERS
+
+/**
+ * @brief In case this configuration option is defined, then the ATA Driver is
+ *   initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Most BSPs do not include support for an ATA Driver.
+ *
+ * If this option is defined and the BSP does not have this device driver, then
+ * the user will get a link time error for an undefined symbol.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Clock Driver
+ *   is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The Clock Driver is responsible for providing a regular interrupt which
+ * invokes a clock tick directive.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * `CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+ *
+ * * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+ *
+ * otherwise a compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Console Driver
+ *   is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The Console Driver is responsible for providing the :file:`/dev/console`
+ * device file.  This device is used to initialize the standard input, output,
+ * and error file descriptors.
+ *
+ * BSPs should be constructed in a manner that allows :c:func:`printk` to work
+ * properly without the need for the Console Driver to be configured.
+ *
+ * The
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+ *
+ * configuration options are mutually exclusive.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Frame Buffer
+ *   Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Most BSPs do not include support for a Frame Buffer Driver. This is because
+ * many boards do not include the required hardware.
+ *
+ * If this option is defined and the BSP does not have this device driver, then
+ * the user will get a link time error for an undefined symbol.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the IDE Driver is
+ *   initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Most BSPs do not include support for an IDE Driver.
+ *
+ * If this option is defined and the BSP does not have this device driver, then
+ * the user will get a link time error for an undefined symbol.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the
+ *   :file:`/dev/null` Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This device driver is supported by all BSPs.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Real-Time
+ *   Clock Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Most BSPs do not include support for a real-time clock (RTC). This is
+ * because many boards do not include the required hardware.
+ *
+ * If this is defined and the BSP does not have this device driver, then the
+ * user will get a link time error for an undefined symbol.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Simple Console
+ *   Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This device driver is responsible for providing the :file:`/dev/console`
+ * device file.  This device is used to initialize the standard input, output,
+ * and error file descriptors.
+ *
+ * This device driver reads via :c:func:`getchark`.
+ *
+ * This device driver writes via :c:func:`rtems_putc`.
+ *
+ * The Termios framework is not used.  There is no support to change device
+ * settings, e.g. baud, stop bits, parity, etc.
+ *
+ * The
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+ *
+ * configuration options are mutually exclusive.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Simple Task
+ *   Console Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This device driver is responsible for providing the :file:`/dev/console`
+ * device file.  This device is used to initialize the standard input, output,
+ * and error file descriptors.
+ *
+ * This device driver reads via :c:func:`getchark`.
+ *
+ * This device driver writes into a write buffer.  The count of characters
+ * written into the write buffer is returned.  It might be less than the
+ * requested count, in case the write buffer is full.  The write is
+ * non-blocking and may be called from interrupt context.  A dedicated task
+ * reads from the write buffer and outputs the characters via
+ * :c:func:`rtems_putc`.  This task runs with the least important priority. The
+ * write buffer size is 2047 characters and it is not configurable.
+ *
+ * Use ``fsync(STDOUT_FILENO)`` or ``fdatasync(STDOUT_FILENO)`` to drain the
+ * write buffer.
+ *
+ * The Termios framework is not used.  There is no support to change device
+ * settings, e.g.  baud, stop bits, parity, etc.
+ *
+ * The
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`,
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER`, and
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`
+ *
+ * configuration options are mutually exclusive.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Stub Driver is
+ *   initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This device driver simply provides entry points that return successful and
+ * is primarily a test fixture. It is supported by all BSPs.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Benchmark
+ *   Timer Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The Benchmark Timer Driver is intended for the benchmark tests of the RTEMS
+ * Testsuite.  Applications should not use this driver.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
+ *
+ * * :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`, or
+ *
+ * * `CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER`,
+ *
+ * otherwise a compile time error will occur.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the Watchdog
+ *   Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Most BSPs do not include support for a watchdog device driver. This is
+ * because many boards do not include the required hardware.
+ *
+ * If this is defined and the BSP does not have this device driver, then the
+ * user will get a link time error for an undefined symbol.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+
+/**
+ * @brief In case this configuration option is defined, then the
+ *   :file:`/dev/zero` Driver is initialized during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This device driver is supported by all BSPs.
+ */
+#define CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+
+/**
+ * @brief The value of this configuration option is used to initialize the
+ *   Device Driver Table.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is the empty list.
+ *
+ * The value of this configuration option shall be a list of initializers for
+ * structures of type :c:type:`rtems_driver_address_table`.
+ *
+ * The value of this configuration option is placed after the entries defined
+ * by :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device
+ * driver configuration options.
+ *
+ * See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
+ * of application device driver initializers.
+ */
+#define CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
+
+/**
+ * @brief The value of this configuration option defines the ATA task priority.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 140.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * * It shall be a valid Classic API task priority.  The set of valid task
+ *   priorities is scheduler-specific.
+ *
+ * This configuration option is only evaluated if the configuration option
+ * :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined.
+ */
+#define CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+
+/**
+ * @brief The value of this configuration option defines the number of device
+ *   drivers.
+ *
+ * This configuration option is an integer define.
+ *
+ * This is computed by default, and is set to the number of device drivers
+ * configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration
+ * options.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be less than or equal to ``SIZE_MAX``.
+ *
+ * * It shall be greater than or equal than the number of statically configured
+ *   device drivers.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * If the application will dynamically install device drivers, then this
+ * configuration parameter shall be larger than the number of statically
+ * configured device drivers. Drivers configured using the
+ * ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration options are
+ * statically installed.
+ */
+#define CONFIGURE_MAXIMUM_DRIVERS
+
+/** @} */
+
+/**
+ * @defgroup Event Recording Configuration Event Recording Configuration
+ *
+ * This section describes configuration options related to the event recording.
+ *
+ * @{
+ */
+
+/**
+ * @brief In case
+ *
+ * @brief * this configuration option is defined
+ *
+ * @brief * and :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` is properly
+ *     defined,
+ *
+ * @brief then the event record extensions are enabled.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The record extensions capture thread create, start, restart, delete, switch,
+ * begin, exitted and terminate events.
+ */
+#define CONFIGURE_RECORD_EXTENSIONS_ENABLED
+
+/**
+ * @brief In case
+ *
+ * @brief * this configuration option is defined
+ *
+ * @brief * and :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` is properly
+ *     defined,
+ *
+ * @brief * and :ref:`CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB` is undefined,
+ *
+ * @brief then the event records are dumped in Base64 encoding in a fatal error
+ *   extension (see :ref:`Terminate`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This extension can be used to produce crash dumps.
+ */
+#define CONFIGURE_RECORD_FATAL_DUMP_BASE64
+
+/**
+ * @brief In case
+ *
+ * @brief * this configuration option is defined
+ *
+ * @brief * and :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS` is properly
+ *     defined,
+ *
+ * @brief then the event records are compressed by zlib and dumped in Base64
+ *   encoding in a fatal error extension (see :ref:`Terminate`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The zlib compression needs about 512KiB of RAM.  This extension can be used
+ * to produce crash dumps.
+ */
+#define CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
+
+/**
+ * @brief The value of this configuration option defines the event record item
+ *   count per processor.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 16.
+ *
+ * * It shall be less than or equal to ``SIZE_MAX``.
+ *
+ * * It shall be a power of two.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * The event record buffers are statically allocated for each configured
+ * processor (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  If the value of this
+ * configuration option is zero, then nothing is allocated.
+ */
+#define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+
+/** @} */
+
+/**
+ * @defgroup Filesystem Configuration Filesystem Configuration
+ *
+ * This section describes configuration options related to filesytems. By
+ * default, the In-Memory Filesystem (IMFS) is used as the base filesystem
+ * (also known as root filesystem).  In order to save some memory for your
+ * application, you can disable the filesystem support with the
+ * :ref:`CONFIGURE_APPLICATION_DISABLE_FILESYSTEM` configuration option.
+ * Alternatively, you can strip down the features of the base filesystem with
+ * the :ref:`CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM` and
+ * :ref:`CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM` configuration options.  These
+ * three configuration options are mutually exclusive.  They are intended for
+ * an advanced application configuration.
+ *
+ * Features of the IMFS can be disabled and enabled with the following
+ * configuration options:
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_LINK`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD_FILE`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_MOUNT`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_READDIR`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_READLINK`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_RENAME`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_RMNOD`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT`
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UTIME`
+ *
+ * * :ref:`CONFIGURE_IMFS_ENABLE_MKFIFO`
+ *
+ * @{
+ */
+
+/**
+ * @brief In case this configuration option is defined, then **no** base
+ *   filesystem is initialized during system initialization and **no**
+ *   filesystems are configured.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then a base filesystem and the
+ * configured filesystems are initialized during system initialization.
+ *
+ * Filesystems shall be initialized to support file descriptor based device
+ * drivers and basic input/output functions such as :c:func:`printf`.
+ * Filesystems can be disabled to reduce the memory footprint of an
+ * application.
+ */
+#define CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+
+/**
+ * @brief In case this configuration option is defined, then the following
+ *   configuration options will be defined as well
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_DOSFS`,
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_FTPFS`,
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_IMFS`,
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_JFFS2`,
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_NFS`,
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_RFS`, and
+ *
+ * @brief * :ref:`CONFIGURE_FILESYSTEM_TFTPFS`.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_FILESYSTEM_ALL
+
+/**
+ * @brief In case this configuration option is defined, then the DOS (FAT)
+ *   filesystem is registered, so that instances of this filesystem can be
+ *   mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This filesystem requires a Block Device Cache configuration, see
+ * :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.
+ */
+#define CONFIGURE_FILESYSTEM_DOSFS
+
+/**
+ * @brief In case this configuration option is defined, then the FTP filesystem
+ *   (FTP client) is registered, so that instances of this filesystem can be
+ *   mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_FILESYSTEM_FTPFS
+
+/**
+ * @brief In case this configuration option is defined, then the In-Memory
+ *   Filesystem (IMFS) is registered, so that instances of this filesystem can
+ *   be mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Applications will rarely need this configuration option.  This configuration
+ * option is intended for test programs.  You do not need to define this
+ * configuration option for the base filesystem (also known as root
+ * filesystem).
+ */
+#define CONFIGURE_FILESYSTEM_IMFS
+
+/**
+ * @brief In case this configuration option is defined, then the JFFS2
+ *   filesystem is registered, so that instances of this filesystem can be
+ *   mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_FILESYSTEM_JFFS2
+
+/**
+ * @brief In case this configuration option is defined, then the Network
+ *   Filesystem (NFS) client is registered, so that instances of this
+ *   filesystem can be mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_FILESYSTEM_NFS
+
+/**
+ * @brief In case this configuration option is defined, then the RTEMS
+ *   Filesystem (RFS) is registered, so that instances of this filesystem can
+ *   be mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This filesystem requires a Block Device Cache configuration, see
+ * :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.
+ */
+#define CONFIGURE_FILESYSTEM_RFS
+
+/**
+ * @brief In case this configuration option is defined, then the TFTP
+ *   filesystem (TFTP client) is registered, so that instances of this
+ *   filesystem can be mounted by the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_FILESYSTEM_TFTPFS
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support changing the mode of files (no support for :c:func:`chmod`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports changing
+ * the mode of files.
+ */
+#define CONFIGURE_IMFS_DISABLE_CHMOD
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support changing the ownership of files (no support for
+ *   :c:func:`chown`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports changing
+ * the ownership of files.
+ */
+#define CONFIGURE_IMFS_DISABLE_CHOWN
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support hard links (no support for :c:func:`link`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports hard
+ * links.
+ */
+#define CONFIGURE_IMFS_DISABLE_LINK
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support making files (no support for :c:func:`mknod`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports making
+ * files.
+ */
+#define CONFIGURE_IMFS_DISABLE_MKNOD
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support making device files.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports making
+ * device files.
+ */
+#define CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support making regular files.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports making
+ * regular files.
+ */
+#define CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support mounting other filesystems (no support for :c:func:`mount`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports mounting
+ * other filesystems.
+ */
+#define CONFIGURE_IMFS_DISABLE_MOUNT
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support reading directories (no support for :c:func:`readdir`).  It is
+ *   still possible to open files in a directory.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports reading
+ * directories.
+ */
+#define CONFIGURE_IMFS_DISABLE_READDIR
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support reading symbolic links (no support for :c:func:`readlink`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports reading
+ * symbolic links.
+ */
+#define CONFIGURE_IMFS_DISABLE_READLINK
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support renaming files (no support for :c:func:`rename`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports renaming
+ * files.
+ */
+#define CONFIGURE_IMFS_DISABLE_RENAME
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support removing files (no support for :c:func:`rmnod`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports removing
+ * files.
+ */
+#define CONFIGURE_IMFS_DISABLE_RMNOD
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support creating symbolic links (no support for :c:func:`symlink`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports creating
+ * symbolic links.
+ */
+#define CONFIGURE_IMFS_DISABLE_SYMLINK
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support unmounting other filesystems (no support for
+ *   :c:func:`unmount`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports
+ * unmounting other filesystems.
+ */
+#define CONFIGURE_IMFS_DISABLE_UNMOUNT
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS does
+ *   not support changing file times (no support for :c:func:`utime`).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS supports changing
+ * file times.
+ */
+#define CONFIGURE_IMFS_DISABLE_UTIME
+
+/**
+ * @brief In case this configuration option is defined, then the root IMFS
+ *   supports making FIFOs.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the root IMFS does not support
+ * making FIFOs (no support for :c:func:`mkfifo`).
+ */
+#define CONFIGURE_IMFS_ENABLE_MKFIFO
+
+/**
+ * @brief The value of this configuration option defines the block size for
+ *   in-memory files managed by the IMFS.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 128.
+ *
+ * The value of this configuration option shall be an element of {16, 32, 64, 128,
+ * 256, 512}.
+ *
+ * The configured block size has two impacts. The first is the average amount
+ * of unused memory in the last block of each file.  For example, when the
+ * block size is 512, on average one-half of the last block of each file will
+ * remain unused and the memory is wasted. In contrast, when the block size is
+ * 16, the average unused memory per file is only 8 bytes. However, it requires
+ * more allocations for the same size file and thus more overhead per block for
+ * the dynamic memory management.
+ *
+ * Second, the block size has an impact on the maximum size file that can be
+ * stored in the IMFS. With smaller block size, the maximum file size is
+ * correspondingly smaller. The following shows the maximum file size possible
+ * based on the configured block size:
+ *
+ * * when the block size is 16 bytes, the maximum file size is 1,328 bytes.
+ *
+ * * when the block size is 32 bytes, the maximum file size is 18,656 bytes.
+ *
+ * * when the block size is 64 bytes, the maximum file size is 279,488 bytes.
+ *
+ * * when the block size is 128 bytes, the maximum file size is 4,329,344
+ *   bytes.
+ *
+ * * when the block size is 256 bytes, the maximum file size is 68,173,568
+ *   bytes.
+ *
+ * * when the block size is 512 bytes, the maximum file size is 1,082,195,456
+ *   bytes.
+ */
+#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+
+/**
+ * @brief In case this configuration option is defined, then an IMFS with a
+ *   reduced feature set will be the base filesystem (also known as root
+ *   filesystem).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * In case this configuration option is defined, then the following
+ * configuration options will be defined as well
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_LINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_MKNOD_FILE`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_MOUNT`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_READDIR`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_READLINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_RENAME`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_RMNOD`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UTIME`, and
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT`.
+ *
+ * In addition, a simplified path evaluation is enabled.  It allows only a look
+ * up of absolute paths.
+ *
+ * This configuration of the IMFS is basically a device-only filesystem.  It is
+ * comparable in functionality to the pseudo-filesystem name space provided
+ * before RTEMS release 4.5.0.
+ */
+#define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
+
+/**
+ * @brief In case this configuration option is defined, then an IMFS with a
+ *   reduced feature set will be the base filesystem (also known as root
+ *   filesystem).
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * In case this configuration option is defined, then the following
+ * configuration options will be defined as well
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHMOD`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_CHOWN`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_LINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_READLINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_RENAME`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_SYMLINK`,
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UTIME`, and
+ *
+ * * :ref:`CONFIGURE_IMFS_DISABLE_UNMOUNT`.
+ */
+#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+
+/** @} */
+
+/**
+ * @defgroup General System Configuration General System Configuration
+ *
+ * This section describes general system configuration options.
+ *
+ * @{
+ */
+
+/**
+ * @brief In case this configuration option is defined, then the memory areas
+ *   used for the RTEMS Workspace and the C Program Heap are dirtied with a
+ *   ``0xCF`` byte pattern during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Dirtying memory can add significantly to system initialization time.  It may
+ * assist in finding code that incorrectly assumes the contents of free memory
+ * areas is cleared to zero during system initialization.  In case
+ * :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY` is also defined, then the
+ * memory is first dirtied and then zeroed.
+ *
+ * See also :ref:`CONFIGURE_MALLOC_DIRTY`.
+ */
+#define CONFIGURE_DIRTY_MEMORY
+
+/**
+ * @brief In case this configuration option is defined, then the Newlib
+ *   reentrancy support per thread is disabled and a global reentrancy
+ *   structure is used.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * You can enable this option to reduce the size of the :term:`TCB`.  Use this
+ * option with care, since it can lead to race conditions and undefined system
+ * behaviour.  For example, :c:data:`errno` is no longer a thread-local
+ * variable if this option is enabled.
+ */
+#define CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+/**
+ * @brief The value of this configuration option defines the RTEMS Workspace
+ *   size in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * If this configuration option is undefined, then the RTEMS Workspace and task
+ * stack space size is calculated by ``<rtems/confdefs.h>`` based on the values
+ * configuration options.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to ``UINTPTR_MAX``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * This is an advanced configuration option.  Use it only if you know exactly
+ * what you are doing.
+ */
+#define CONFIGURE_EXECUTIVE_RAM_SIZE
+
+/**
+ * @brief The value of this configuration option defines the number of bytes
+ *   the applications wishes to add to the task stack requirements calculated
+ *   by ``<rtems/confdefs.h>``.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * This parameter is very important.  If the application creates tasks with
+ * stacks larger then the minimum, then that memory is **not** accounted for by
+ * ``<rtems/confdefs.h>``.
+ */
+#define CONFIGURE_EXTRA_TASK_STACKS
+
+/**
+ * @brief The value of this configuration option is used to initialize the
+ *   table of initial user extensions.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is the empty list.
+ *
+ * The value of this configuration option shall be a list of initializers for
+ * structures of type :c:type:`rtems_extensions_table`.
+ *
+ * The value of this configuration option is placed before the entries of
+ * :ref:`BSP_INITIAL_EXTENSION` and after the entries of all other initial user
+ * extensions.
+ */
+#define CONFIGURE_INITIAL_EXTENSIONS
+
+/**
+ * @brief The value of this configuration option defines the size of an
+ *   interrupt stack in bytes.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined,
+ * otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the interrupt stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be aligned according to ``CPU_INTERRUPT_STACK_ALIGNMENT``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the interrupt stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be aligned according to ``CPU_INTERRUPT_STACK_ALIGNMENT``.
+ *
+ * There is one interrupt stack available for each configured processor
+ * (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  The interrupt stack areas are
+ * statically allocated in a special linker section
+ * (``.rtemsstack.interrupt``). The placement of this linker section is
+ * BSP-specific.
+ *
+ * Some BSPs use the interrupt stack as the initialization stack which is used
+ * to perform the sequential system initialization before the multithreading is
+ * started.
+ *
+ * The interrupt stacks are covered by the :ref:`stack checker
+ * <CONFIGURE_STACK_CHECKER_ENABLED>`.  However, using a too small interrupt
+ * stack size may still result in undefined behaviour.
+ *
+ * In releases before RTEMS 5.1 the default value was
+ * :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of
+ * ``CPU_STACK_MINIMUM_SIZE``.
+ */
+#define CONFIGURE_INTERRUPT_STACK_SIZE
+
+/**
+ * @brief In case this configuration option is defined, then each memory area
+ *   returned by C Program Heap allocator functions such as :c:func:`malloc` is
+ *   dirtied with a ``0xCF`` byte pattern before it is handed over to the
+ *   application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The dirtying performed by this option is carried out for each successful
+ * memory allocation from the C Program Heap in contrast to
+ * :ref:`CONFIGURE_DIRTY_MEMORY` which dirties the memory only once during the
+ * system initialization.
+ */
+#define CONFIGURE_MALLOC_DIRTY
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   file like objects that can be concurrently open.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 3.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to ``SIZE_MAX``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * The default value of three file descriptors allows RTEMS to support standard
+ * input, output, and error I/O streams on ``/dev/console``.
+ */
+#define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   processors an application intends to use.  The number of actually
+ *   available processors depends on the hardware and may be less.  It is
+ *   recommended to use the smallest value suitable for the application in
+ *   order to save memory. Each processor needs an IDLE task stack and
+ *   interrupt stack for example.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 1.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``CPU_MAXIMUM_PROCESSORS``.
+ *
+ * If there are more processors available than configured, the rest will be
+ * ignored.
+ *
+ * This configuration option is only evaluated in SMP configurations (e.g.
+ * RTEMS was built with the ``--enable-smp`` build configuration option).  In
+ * all other configurations it has no effect.
+ */
+#define CONFIGURE_MAXIMUM_PROCESSORS
+
+/**
+ * @brief The value of this configuration option defines the maximum thread
+ *   name size including the terminating ``NUL`` character.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 16.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to ``SIZE_MAX``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * The default value was chosen for Linux compatibility, see
+ * `PTHREAD_SETNAME_NP(3)
+ * <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
+ *
+ * The size of the thread control block is increased by the maximum thread name
+ * size.
+ *
+ * This configuration option is available since RTEMS 5.1.
+ */
+#define CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
+
+/**
+ * @brief The value of this configuration option defines the number of
+ *   kilobytes the application wishes to add to the RTEMS Workspace size
+ *   calculated by ``<rtems/confdefs.h>``.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * This configuration option should only be used when it is suspected that a
+ * bug in ``<rtems/confdefs.h>`` has resulted in an underestimation.  Typically
+ * the memory allocation will be too low when an application does not account
+ * for all message queue buffers or task stacks, see
+ * :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+ */
+#define CONFIGURE_MEMORY_OVERHEAD
+
+/**
+ * @brief The value of this configuration option defines the number of bytes
+ *   reserved for message queue buffers in the RTEMS Workspace.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * The configuration options :ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and
+ * :ref:`CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES` define only how many message
+ * queues can be created by the application.  The memory for the message
+ * buffers is configured by this option.  For each message queue you have to
+ * reserve some memory for the message buffers.  The size dependes on the
+ * maximum number of pending messages and the maximum size of the messages of a
+ * message queue.  Use the ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()`` macro to
+ * specify the message buffer memory for each message queue and sum them up to
+ * define the value for ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``.
+ *
+ * The interface for the ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()`` help macro
+ * is as follows:
+ *
+ * .. code-block:: c
+ *
+ *     CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( max_messages, max_msg_size )
+ *
+ * Where ``max_messages`` is the maximum number of pending messages and
+ * ``max_msg_size`` is the maximum size in bytes of the messages of the
+ * corresponding message queue.  Both parameters shall be compile time
+ * constants.  Not using this help macro (e.g. just using ``max_messages *
+ * max_msg_size``) may result in an underestimate of the RTEMS Workspace size.
+ *
+ * The following example illustrates how the
+ * `CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE()` help macro can be used to assist in
+ * calculating the message buffer memory required.  In this example, there are
+ * two message queues used in this application.  The first message queue has a
+ * maximum of 24 pending messages with the message structure defined by the
+ * type ``one_message_type``.  The other message queue has a maximum of 500
+ * pending messages with the message structure defined by the type
+ * ``other_message_type``.
+ *
+ * .. code-block:: c
+ *
+ *     #define CONFIGURE_MESSAGE_BUFFER_MEMORY ( \
+ *     CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( \       24, \       sizeof(
+ *     one_message_type ) \     ) \     + CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(
+ *     \       500, \       sizeof( other_message_type ) \     ) \   )
+ */
+#define CONFIGURE_MESSAGE_BUFFER_MEMORY
+
+/**
+ * @brief The value of this configuration option defines the length of time in
+ *   microseconds between clock ticks (clock tick quantum).
+ *
+ * @brief When the clock tick quantum value is too low, the system will spend
+ *   so much time processing clock ticks that it does not have processing time
+ *   available to perform application work. In this case, the system will
+ *   become unresponsive.
+ *
+ * @brief The lowest practical time quantum varies widely based upon the speed
+ *   of the target hardware and the architectural overhead associated with
+ *   interrupts. In general terms, you do not want to configure it lower than
+ *   is needed for the application.
+ *
+ * @brief The clock tick quantum should be selected such that it all blocking
+ *   and delay times in the application are evenly divisible by it. Otherwise,
+ *   rounding errors will be introduced which may negatively impact the
+ *   application.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 10000.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to a Clock Driver specific value.
+ *
+ * * It shall be less than or equal to a Clock Driver specific value.
+ *
+ * * The resulting clock ticks per second should be an integer.
+ *
+ * This configuration option has no impact if the Clock Driver is not
+ * configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
+ *
+ * There may be Clock Driver specific limits on the resolution or maximum value
+ * of a clock tick quantum.
+ */
+#define CONFIGURE_MICROSECONDS_PER_TICK
+
+/**
+ * @brief The value of this configuration option defines the minimum stack size
+ *   in bytes for every user task or thread in the system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is ``CPU_STACK_MINIMUM_SIZE``.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * Adjusting this parameter should be done with caution.  Examining the actual
+ * stack usage using the stack checker usage reporting facility is recommended
+ * (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED`).
+ *
+ * This parameter can be used to lower the minimum from that recommended. This
+ * can be used in low memory systems to reduce memory consumption for stacks.
+ * However, this shall be done with caution as it could increase the
+ * possibility of a blown task stack.
+ *
+ * This parameter can be used to increase the minimum from that recommended.
+ * This can be used in higher memory systems to reduce the risk of stack
+ * overflow without performing analysis on actual consumption.
+ *
+ * By default, this configuration parameter defines also the minimum stack size
+ * of POSIX threads.  This can be changed with the
+ * :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE` configuration option.
+ *
+ * In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was
+ * used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
+ */
+#define CONFIGURE_MINIMUM_TASK_STACK_SIZE
+
+/**
+ * @brief In case this configuration option is defined, then the stack checker
+ *   is enabled.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The stack checker performs run-time stack bounds checking.  This increases
+ * the time required to create tasks as well as adding overhead to each context
+ * switch.
+ *
+ * In 4.9 and older, this configuration option was named ``STACK_CHECKER_ON``.
+ */
+#define CONFIGURE_STACK_CHECKER_ENABLED
+
+/**
+ * @brief The value of this configuration option defines the length of the
+ *   timeslice quantum in ticks for each task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 50.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * This configuration option has no impact if the Clock Driver is not
+ * configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
+ */
+#define CONFIGURE_TICKS_PER_TIMESLICE
+
+/**
+ * @brief In case this configuration option is defined, then the RTEMS
+ *   Workspace and the C Program Heap will be one pool of memory.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then there will be separate memory
+ * pools for the RTEMS Workspace and C Program Heap.
+ *
+ * Having separate pools does have some advantages in the event a task blows a
+ * stack or writes outside its memory area. However, in low memory systems the
+ * overhead of the two pools plus the potential for unused memory in either
+ * pool is very undesirable.
+ *
+ * In high memory environments, this is desirable when you want to use the
+ * :ref:`ConfigUnlimitedObjects` option.  You will be able to create objects
+ * until you run out of all available memory rather then just until you run out
+ * of RTEMS Workspace.
+ */
+#define CONFIGURE_UNIFIED_WORK_AREAS
+
+/**
+ * @brief If :ref:`CONFIGURE_UNLIMITED_OBJECTS` is defined, then the value of
+ *   this configuration option defines the default objects maximum of all
+ *   object classes supporting :ref:`ConfigUnlimitedObjects` to
+ *   ``rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)``.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 8.
+ *
+ * The value of this configuration option shall meet the constraints of all object
+ * classes to which it is applied.
+ *
+ * By allowing users to declare all resources as being unlimited the user can
+ * avoid identifying and limiting the resources used.
+ *
+ * The object maximum of each class can be configured also individually using
+ * the :c:func:`rtems_resource_unlimited` macro.
+ */
+#define CONFIGURE_UNLIMITED_ALLOCATION_SIZE
+
+/**
+ * @brief In case this configuration option is defined, then unlimited objects
+ *   are used by default.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * When using unlimited objects, it is common practice to also specify
+ * :ref:`CONFIGURE_UNIFIED_WORK_AREAS` so the system operates with a single
+ * pool of memory for both RTEMS Workspace and C Program Heap.
+ *
+ * This option does not override an explicit configuration for a particular
+ * object class by the user.
+ *
+ * See also :ref:`CONFIGURE_UNLIMITED_ALLOCATION_SIZE`.
+ */
+#define CONFIGURE_UNLIMITED_OBJECTS
+
+/**
+ * @brief In case this configuration option is defined, then the system
+ *   initialization is verbose.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * You may use this feature to debug system initialization issues.  The
+ * :c:func:`printk` function is used to print the information.
+ */
+#define CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
+
+/**
+ * @brief In case this configuration option is defined, then the memory areas
+ *   used for the RTEMS Workspace and the C Program Heap are zeroed with a
+ *   ``0x00`` byte pattern during system initialization.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * Zeroing memory can add significantly to the system initialization time. It
+ * is not necessary for RTEMS but is often assumed by support libraries.  In
+ * case :ref:`CONFIGURE_DIRTY_MEMORY` is also defined, then the memory is first
+ * dirtied and then zeroed.
+ */
+#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
+
+/** @} */
+
+/**
+ * @defgroup Idle Task Configuration Idle Task Configuration
+ *
+ * This section describes configuration options related to the idle tasks.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option initializes the IDLE thread
+ *   body.
+ *
+ * This configuration option is an initializer define.
+ *
+ * If :ref:`BSP_IDLE_TASK_BODY` is defined, then this will be the default value,
+ * otherwise the default value is ``_CPU_Thread_Idle_body``.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void *( *idle_body )( uintptr_t )``.
+ *
+ * IDLE threads shall not block.  A blocking IDLE thread results in undefined
+ * system behaviour because the scheduler assume that at least one ready thread
+ * exists.
+ *
+ * IDLE threads can be used to initialize the application, see configuration
+ * option :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`.
+ */
+#define CONFIGURE_IDLE_TASK_BODY
+
+/**
+ * @brief This configuration option is defined to indicate that the user has
+ *   configured **no** user initialization tasks or threads and that the user
+ *   provided IDLE task will perform application initialization and then
+ *   transform itself into an IDLE task.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the user is assumed to provide
+ * one or more initialization tasks.
+ *
+ * If you use this option be careful, the user IDLE task **cannot** block at
+ * all during the initialization sequence.  Further, once application
+ * initialization is complete, it shall make itself preemptible and enter an
+ * idle body loop.
+ *
+ * The IDLE task shall run at the lowest priority of all tasks in the system.
+ *
+ * If this configuration option is defined, then it is mandatory to configure a
+ * user IDLE task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration
+ * option, otherwise a compile time error in the configuration file will occur.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
+ *
+ * * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
+ *
+ * * `CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
+ *
+ * otherwise a compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
+
+/**
+ * @brief The value of this configuration option defines the task stack size
+ *   for an IDLE task.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the IDLE task stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the IDLE task stack area calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``size_t``.
+ *
+ * In SMP configurations, there is one IDLE task per configured processor, see
+ * :ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
+ */
+#define CONFIGURE_IDLE_TASK_STACK_SIZE
+
+/** @} */
+
+/**
+ * @defgroup Multiprocessing Configuration Multiprocessing Configuration
+ *
+ * This section describes multiprocessing related configuration options.  The
+ * options are only used if RTEMS was built with the
+ * ``--enable-multiprocessing`` build configuration option.  Additionally, this
+ * class of configuration options are only applicable if the configuration
+ * option :ref:`CONFIGURE_MP_APPLICATION` is defined.  The multiprocessing
+ * (MPCI) support must not be confused with the SMP support.
+ *
+ * @{
+ */
+
+/**
+ * @brief This configuration option is defined to indicate that the application
+ *   intends to be part of a multiprocessing configuration.  Additional
+ *   configuration options are assumed to be provided.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the multiprocessing services
+ * are not initialized.
+ *
+ * This configuration option shall be undefined if the multiprocessing support
+ * is not enabled (e.g. RTEMS was built without the
+ * ``--enable-multiprocessing`` build configuration option).  Otherwise a
+ * compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_MP_APPLICATION
+
+/**
+ * @brief The value of this configuration option defines the number of bytes
+ *   the applications wishes to add to the MPCI task stack on top of
+ *   :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to ``UINT32_MAX``.
+ *
+ * * It shall be small enough so that the MPCI receive server stack area
+ *   calculation carried out by ``<rtems/confdefs.h>`` does not overflow an
+ *   integer of type ``size_t``.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   concurrently active global objects in a multiprocessor system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 32.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * This value corresponds to the total number of objects which can be created
+ * with the ``RTEMS_GLOBAL`` attribute.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   nodes in a multiprocessor system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 2.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_MP_MAXIMUM_NODES
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   concurrently active thread/task proxies on this node in a multiprocessor
+ *   system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 32.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * Since a proxy is used to represent a remote task/thread which is blocking on
+ * this node. This configuration parameter reflects the maximum number of
+ * remote tasks/threads which can be blocked on objects on this node, see
+ * :ref:`MPCIProxies`.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_MP_MAXIMUM_PROXIES
+
+/**
+ * @brief The value of this configuration option initializes the MPCI
+ *   Configuration Table.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``&MPCI_table``.
+ *
+ * The value of this configuration option shall be a pointer to
+ * :c:type:`rtems_mpci_table`.
+ *
+ * RTEMS provides a Shared Memory MPCI Device Driver which can be used on any
+ * Multiprocessor System assuming the BSP provides the proper set of supporting
+ * methods.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_MP_MPCI_TABLE_POINTER
+
+/**
+ * @brief The value of this configuration option defines the node number of
+ *   this node in a multiprocessor system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is ``NODE_NUMBER``.
+ *
+ * The value of this configuration option shall be greater than or equal to 0 and
+ * less than or equal to ``UINT32_MAX``.
+ *
+ * In the RTEMS Multiprocessing Test Suite, the node number is derived from the
+ * Makefile variable ``NODE_NUMBER``. The same code is compiled with the
+ * ``NODE_NUMBER`` set to different values. The test programs behave
+ * differently based upon their node number.
+ *
+ * This configuration option is only evaluated if
+ * :ref:`CONFIGURE_MP_APPLICATION` is defined.
+ */
+#define CONFIGURE_MP_NODE_NUMBER
+
+/** @} */
+
+/**
+ * @defgroup POSIX API Configuration POSIX API Configuration
+ *
+ * This section describes configuration options related to the POSIX API.  Most
+ * POSIX API objects are available by default since RTEMS 5.1.  The queued
+ * signals and timers are only available if RTEMS was built with the
+ * ``--enable-posix`` build configuration option.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Keys that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_KEYS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   key value pairs used by POSIX API Keys that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` *
+ * :ref:`CONFIGURE_MAXIMUM_TASKS` + :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * A key value pair is created by :c:func:`pthread_setspecific` if the value is
+ * not :c:macro:`NULL`, otherwise it is deleted.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Message Queues that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
+ * store the messages of each message queue, see
+ * :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Queued Signals that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
+ *   without the ``--enable-posix`` build configuration option).  Otherwise a
+ *   compile time error in the configuration file will occur.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
+ *   without the ``--enable-posix`` build configuration option).  Otherwise a
+ *   compile time error in the configuration file will occur.
+ *
+ * Unlimited objects are not available for queued signals.
+ *
+ * Queued signals are only available if RTEMS was built with the
+ * ``--enable-posix`` build configuration option.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Named Semaphores that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * Named semaphores are created with :c:func:`sem_open()`.  Semaphores
+ * initialized with :c:func:`sem_init()` are not affected by this configuration
+ * option since the storage space for these semaphores is user-provided.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Shared Memory objects that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the RTEMS Workspace size calculation carried
+ *   out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+ *   ``uintptr_t``.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_SHMS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Threads that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * This calculations for the required memory in the RTEMS Workspace for threads
+ * assume that each thread has a minimum stack size and has floating point
+ * support enabled.  The configuration option
+ * :ref:`CONFIGURE_EXTRA_TASK_STACKS` is used to specify thread stack
+ * requirements **above** the minimum size required.  See :ref:`Reserve
+ * Task/Thread Stack Memory Above Minimum` for more information about
+ * ``CONFIGURE_EXTRA_TASK_STACKS``.
+ *
+ * The maximum number of Classic API Tasks is specified by
+ * :ref:`CONFIGURE_MAXIMUM_TASKS`.
+ *
+ * All POSIX threads have floating point enabled.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_THREADS
+
+/**
+ * @brief The value of this configuration option defines the maximum number of
+ *   POSIX API Timers that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 0.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to 65535.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
+ *   without the ``--enable-posix`` build configuration option).  Otherwise a
+ *   compile time error in the configuration file will occur.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It may be defined through :c:func:`rtems_resource_unlimited` the enable
+ *   unlimited objects for this object class, if the value passed to
+ *   :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+ *   configuration option.
+ *
+ * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
+ *   without the ``--enable-posix`` build configuration option).  Otherwise a
+ *   compile time error in the configuration file will occur.
+ *
+ * This object class can be configured in unlimited allocation mode, see
+ * :ref:`ConfigUnlimitedObjects`.
+ *
+ * Timers are only available if RTEMS was built with the ``--enable-posix``
+ * build configuration option.
+ */
+#define CONFIGURE_MAXIMUM_POSIX_TIMERS
+
+/**
+ * @brief The value of this configuration option defines the minimum stack size
+ *   in bytes for every POSIX thread in the system.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is two times the value of
+ * :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be greater than or equal to a BSP-specific and application-specific
+ *   minimum value.
+ */
+#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
+
+/** @} */
+
+/**
+ * @defgroup POSIX Initialization Thread Configuration POSIX Initialization Thread Configuration
+ *
+ * This section describes configuration options related to the POSIX
+ * initialization thread.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option initializes the entry point of
+ *   the POSIX API initialization thread.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``POSIX_Init``.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void *( *entry_point )( void * )``.
+ *
+ * The application shall provide the function referenced by this configuration
+ * option.
+ */
+#define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
+
+/**
+ * @brief The value of this configuration option defines the thread stack size
+ *   of the POSIX API initialization thread.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to
+ *   :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ *
+ * * It shall be small enough so that the task stack space calculation carried out
+ *   by ``<rtems/confdefs.h>`` does not overflow an integer of type ``uintptr_t``.
+ */
+#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
+
+/**
+ * @brief In case this configuration option is defined, then exactly one POSIX
+ *   initialization thread is configured.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * The application shall define exactly one of the following configuration
+ * options
+ *
+ * * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
+ *
+ * * `CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
+ *
+ * * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
+ *
+ * otherwise a compile time error in the configuration file will occur.
+ */
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+/** @} */
+
+/**
+ * @defgroup General Scheduler Configuration General Scheduler Configuration
+ *
+ * This section describes configuration options related to selecting a
+ * scheduling algorithm for an application.  A scheduler configuration is
+ * optional and only necessary in very specific circumstances.  A normal
+ * application configuration does not need any of the configuration options
+ * described in this section.
+ *
+ * By default, the :ref:`Deterministic Priority Scheduler <SchedulerPriority>`
+ * algorithm is used in uniprocessor configurations.  In case SMP is enabled
+ * and the configured maximum processors (:ref:`CONFIGURE_MAXIMUM_PROCESSORS
+ * <CONFIGURE_MAXIMUM_PROCESSORS>`) is greater than one, then the
+ * :ref:`Earliest Deadline First (EDF) SMP Scheduler <SchedulerSMPEDF>` is
+ * selected as the default scheduler algorithm.
+ *
+ * For the :ref:`schedulers built into RTEMS <SchedulingConcepts>`, the
+ * configuration is straightforward.  All that is required is to define the
+ * configuration option which specifies which scheduler you want for in your
+ * application.
+ *
+ * The pluggable scheduler interface also enables the user to provide their own
+ * scheduling algorithm.  If you choose to do this, you must define multiple
+ * configuration option.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option defines the maximum number
+ *   Constant Bandwidth Servers that can be concurrently active.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is :ref:`CONFIGURE_MAXIMUM_TASKS`.
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be greater than or equal to 0.
+ *
+ * * It shall be less than or equal to ``SIZE_MAX``.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * * It shall be less than or equal to a BSP-specific and application-specific
+ *   value which depends on the size of the memory available to the application.
+ *
+ * This configuration option is only evaluated if the configuration option
+ * :ref:`CONFIGURE_SCHEDULER_CBS` is defined.
+ */
+#define CONFIGURE_CBS_MAXIMUM_SERVERS
+
+/**
+ * @brief For the following schedulers
+ *
+ * @brief * :ref:`SchedulerPriority`, which is the default in uniprocessor
+ *     configurations and can be configured through the
+ *     :ref:`CONFIGURE_SCHEDULER_PRIORITY` configuration option,
+ *
+ * @brief * :ref:`SchedulerSMPPriority` which can be configured through the
+ *     :ref:`CONFIGURE_SCHEDULER_PRIORITY_SMP` configuration option, and
+ *
+ * @brief * :ref:`SchedulerSMPPriorityAffinity` which can be configured through
+ *     the :ref:`CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP` configuration
+ *     option
+ *
+ * @brief this configuration option specifies the maximum numeric priority of
+ *   any task for these schedulers and one less that the number of priority
+ *   levels for these schedulers.  For all other schedulers provided by RTEMS,
+ *   this configuration option has no effect.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is 255.
+ *
+ * The value of this configuration option shall be an element of {3, 7, 31, 63,
+ * 127, 255}.
+ *
+ * The numerically greatest priority is the logically lowest priority in the
+ * system and will thus be used by the IDLE task.
+ *
+ * Priority zero is reserved for internal use by RTEMS and is not available to
+ * applications.
+ *
+ * Reducing the number of priorities through this configuration option reduces
+ * the amount of memory allocated by the schedulers listed above.  These
+ * schedulers use a chain control structure per priority and this structure
+ * consists of three pointers.  On a 32-bit architecture, the allocated memory
+ * is 12 bytes * (``CONFIGURE_MAXIMUM_PRIORITY`` + 1), e.g. 3072 bytes for 256
+ * priority levels (default), 48 bytes for 4 priority levels
+ * (``CONFIGURE_MAXIMUM_PRIORITY == 3``).
+ *
+ * The default value is 255, because RTEMS shall support 256 priority levels to
+ * be compliant with various standards.  These priorities range from 0 to 255.
+ */
+#define CONFIGURE_MAXIMUM_PRIORITY
+
+/**
+ * @brief The value of this configuration option is used to initialize the
+ *   initial scheduler to processor assignments.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value of this configuration option is computed so that the default
+ * scheduler is assigned to each configured processor (up to 32).
+ *
+ * The value of this configuration option shall satisfy all of the following
+ * constraints:
+ *
+ * * It shall be a list of the following macros:
+ *
+ *   * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``
+ *
+ *   * :c:macro:`RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER`
+ *
+ * * It shall be a list of exactly :ref:`CONFIGURE_MAXIMUM_PROCESSORS` elements.
+ *
+ * This configuration option is only evaluated in SMP configurations.
+ *
+ * This is an advanced configuration option, see
+ * :ref:`ConfigurationSchedulersClustered`.
+ */
+#define CONFIGURE_SCHEDULER_ASSIGNMENTS
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Constant
+ *   Bandwidth Server (CBS) Scheduler <SchedulerCBS>` algorithm is made
+ *   available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for exactly one processor.
+ */
+#define CONFIGURE_SCHEDULER_CBS
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Earliest
+ *   Deadline First (EDF) Scheduler <SchedulerEDF>` algorithm is made available
+ *   to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for exactly one processor.
+ */
+#define CONFIGURE_SCHEDULER_EDF
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Earliest
+ *   Deadline First (EDF) SMP Scheduler <SchedulerSMPEDF>` algorithm is made
+ *   available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * This scheduler algorithm is only available when RTEMS is built with SMP
+ * support enabled.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for up to 32 processors.
+ *
+ * This scheduler algorithm is the default in SMP configurations if
+ * :ref:`CONFIGURE_MAXIMUM_PROCESSORS` is greater than one.
+ */
+#define CONFIGURE_SCHEDULER_EDF_SMP
+
+/**
+ * @brief The value of this configuration option defines the name of the
+ *   default scheduler.
+ *
+ * This configuration option is an integer define.
+ *
+ * The default value is
+ *
+ * * ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
+ *
+ * * ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler
+ *   <SchedulerSMPPriorityAffinity>`,
+ *
+ * * ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler
+ *   <SchedulerSMPPriority>`,
+ *
+ * * ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler
+ *   <SchedulerSMPPrioritySimple>`,
+ *
+ * * ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
+ *
+ * * ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
+ *
+ * * ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler
+ *   <SchedulerPriority>`, and
+ *
+ * * ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler
+ *   <SchedulerPrioritySimple>`.
+ *
+ * The value of this configuration option shall be a valid integer of type
+ * ``rtems_name``.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * Schedulers can be identified via c:func:`rtems_scheduler_ident`.
+ *
+ * Use :c:func:`rtems_build_name` to define the scheduler name.
+ */
+#define CONFIGURE_SCHEDULER_NAME
+
+/**
+ * @brief In case this configuration option is defined, then
+ *   :ref:`Deterministic Priority Scheduler <SchedulerPriority>` algorithm is
+ *   made available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for exactly one processor.
+ *
+ * This scheduler algorithm is the default when
+ * :ref:`CONFIGURE_MAXIMUM_PROCESSORS` is exactly one.
+ *
+ * The memory allocated for this scheduler depends on the
+ * :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
+ */
+#define CONFIGURE_SCHEDULER_PRIORITY
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Arbitrary
+ *   Processor Affinity SMP Scheduler <SchedulerSMPPriorityAffinity>` algorithm
+ *   is made available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * This scheduler algorithm is only available when RTEMS is built with SMP
+ * support enabled.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for up to 32 processors.
+ *
+ * The memory allocated for this scheduler depends on the
+ * :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
+ */
+#define CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
+
+/**
+ * @brief In case this configuration option is defined, then
+ *   :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`
+ *   algorithm is made available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * This scheduler algorithm is only available when RTEMS is built with SMP
+ * support enabled.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for up to 32 processors.
+ *
+ * The memory allocated for this scheduler depends on the
+ * :ref:`CONFIGURE_MAXIMUM_PRIORITY` configuration option.
+ */
+#define CONFIGURE_SCHEDULER_PRIORITY_SMP
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Simple
+ *   Priority Scheduler <SchedulerPrioritySimple>` algorithm is made available
+ *   to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for exactly one processor.
+ */
+#define CONFIGURE_SCHEDULER_SIMPLE
+
+/**
+ * @brief In case this configuration option is defined, then :ref:`Simple
+ *   Priority SMP Scheduler <SchedulerSMPPrioritySimple>` algorithm is made
+ *   available to the application. application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * This scheduler algorithm is only available when RTEMS is built with SMP
+ * support enabled.
+ *
+ * In case no explicit :ref:`clustered scheduler configuration
+ * <ConfigurationSchedulersClustered>` is present, then it is used as the
+ * scheduler for up to 32 processors.
+ */
+#define CONFIGURE_SCHEDULER_SIMPLE_SMP
+
+/**
+ * @brief In case this configuration option is defined, then Strong APA
+ *   algorithm is made available to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * This scheduler algorithm is only available when RTEMS is built with SMP
+ * support enabled.
+ *
+ * This scheduler algorithm is not correctly implemented.  Do not use it.
+ */
+#define CONFIGURE_SCHEDULER_STRONG_APA
+
+/**
+ * @brief In case this configuration option is defined, then the user shall
+ *   provide a scheduler algorithm to the application.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This scheduler configuration option is an advanced configuration option.
+ * Think twice before you use it.
+ *
+ * RTEMS allows the application to provide its own task/thread scheduling
+ * algorithm. In order to do this, one shall define
+ * ``CONFIGURE_SCHEDULER_USER`` to indicate the application provides its own
+ * scheduling algorithm. If ``CONFIGURE_SCHEDULER_USER`` is defined then the
+ * following additional macros shall be defined:
+ *
+ * * ``CONFIGURE_SCHEDULER`` shall be defined to a static definition of the
+ *   scheduler data structures of the user scheduler.
+ *
+ * * ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` shall be defined to a scheduler
+ *   table entry initializer for the user scheduler.
+ *
+ * * ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` shall be defined to the type of
+ *   the per-thread information of the user scheduler.
+ *
+ * At this time, the mechanics and requirements for writing a new scheduler are
+ * evolving and not fully documented.  It is recommended that you look at the
+ * existing Deterministic Priority Scheduler in
+ * ``cpukit/score/src/schedulerpriority*.c`` for guidance.  For guidance on the
+ * configuration macros, please examine ``cpukit/sapi/include/confdefs.h`` for
+ * how these are defined for the Deterministic Priority Scheduler.
+ */
+#define CONFIGURE_SCHEDULER_USER
+
+/** @} */
+
+/**
+ * @defgroup Task Stack Allocator Configuration Task Stack Allocator Configuration
+ *
+ * This section describes configuration options related to the task stack
+ * allocator.  RTEMS allows the application or BSP to define its own allocation
+ * and deallocation methods for task stacks. This can be used to place task
+ * stacks in special areas of memory or to utilize a Memory Management Unit so
+ * that stack overflows are detected in hardware.
+ *
+ * @{
+ */
+
+/**
+ * @brief The value of this configuration option initializes the stack
+ *   allocator allocate handler.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``_Workspace_Allocate``, which indicates that task stacks
+ * will be allocated from the RTEMS Workspace.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void *( *allocate )( size_t )``.
+ *
+ * A correctly configured system shall configure the following to be
+ * consistent:
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
+ *
+ * * `CONFIGURE_TASK_STACK_ALLOCATOR`
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
+ */
+#define CONFIGURE_TASK_STACK_ALLOCATOR
+
+/**
+ * @brief The value of this configuration option initializes the stack
+ *   allocator initialization handler.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``NULL``.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void ( *initialize )( size_t )`` or to ``NULL``.
+ *
+ * A correctly configured system shall configure the following to be
+ * consistent:
+ *
+ * * `CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
+ */
+#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+
+/**
+ * @brief The value of this configuration option initializes the stack
+ *   allocator deallocate handler.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is ``_Workspace_Free``, which indicates that task stacks will
+ * be allocated from the RTEMS Workspace.
+ *
+ * The value of this configuration option shall be defined to a valid function
+ * pointer of the type ``void ( *deallocate )( void * )``.
+ *
+ * A correctly configured system shall configure the following to be
+ * consistent:
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
+ *
+ * * :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
+ *
+ * * `CONFIGURE_TASK_STACK_DEALLOCATOR`
+ */
+#define CONFIGURE_TASK_STACK_DEALLOCATOR
+
+/**
+ * @brief The value of this configuration option is used to calculate the task
+ *   stack space size.
+ *
+ * This configuration option is an initializer define.
+ *
+ * The default value is a macro which supports the system heap allocator.
+ *
+ * The value of this configuration option shall be defined to a macro which
+ * accepts exactly one parameter and returns an unsigned integer.  The parameter
+ * will be an allocation size and the macro shall return this size plus the
+ * overhead of the allocator to manage an allocation request for this size.
+ *
+ * This configuration option may be used if a custom task stack allocator is
+ * configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.
+ */
+#define CONFIGURE_TASK_STACK_FROM_ALLOCATOR
+
+/**
+ * @brief In case this configuration option is defined, then the system is
+ *   informed that the task stack allocator does not use the RTEMS Workspace.
+ *
+ * This configuration option is a boolean feature define.
+ *
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * This configuration option may be used if a custom task stack allocator is
+ * configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.
+ */
+#define CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+
+/** @} */
diff --git a/cpukit/include/rtems/test.h b/cpukit/include/rtems/simple-test.h
similarity index 100%
rename from cpukit/include/rtems/test.h
rename to cpukit/include/rtems/simple-test.h
diff --git a/cpukit/libtest/testbeginend.c b/cpukit/libtest/testbeginend.c
index 4a85673a91..c7772f15b1 100644
--- a/cpukit/libtest/testbeginend.c
+++ b/cpukit/libtest/testbeginend.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/bspIo.h>
 #include <rtems/version.h>
 
diff --git a/cpukit/libtest/testbusy.c b/cpukit/libtest/testbusy.c
index 4cc8aa01fe..4dd6f500a9 100644
--- a/cpukit/libtest/testbusy.c
+++ b/cpukit/libtest/testbusy.c
@@ -17,7 +17,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems.h>
 #include <rtems/score/threadimpl.h>
 
diff --git a/cpukit/libtest/testextension.c b/cpukit/libtest/testextension.c
index 56d97da3fb..4c6102fcb5 100644
--- a/cpukit/libtest/testextension.c
+++ b/cpukit/libtest/testextension.c
@@ -16,7 +16,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/profiling.h>
 #include <rtems/bspIo.h>
 
diff --git a/cpukit/libtest/testparallel.c b/cpukit/libtest/testparallel.c
index 3982dce034..eda2b9b5d4 100644
--- a/cpukit/libtest/testparallel.c
+++ b/cpukit/libtest/testparallel.c
@@ -17,7 +17,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/score/assert.h>
 #include <rtems.h>
 
diff --git a/cpukit/libtest/testwrappers.c b/cpukit/libtest/testwrappers.c
index 782beb9863..9bc293f55b 100644
--- a/cpukit/libtest/testwrappers.c
+++ b/cpukit/libtest/testwrappers.c
@@ -10,7 +10,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 int __wrap_printf(const char* format, ...);
 int __wrap_puts(const char *str);
diff --git a/testsuites/ada/support/initimpl.h b/testsuites/ada/support/initimpl.h
index 8076194ff1..c0ac94331d 100644
--- a/testsuites/ada/support/initimpl.h
+++ b/testsuites/ada/support/initimpl.h
@@ -10,7 +10,7 @@
 #include <stdlib.h>
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/score/threadimpl.h>
 
 /*
diff --git a/testsuites/libtests/block08/system.h b/testsuites/libtests/block08/system.h
index 646de6da48..917cf6621f 100644
--- a/testsuites/libtests/block08/system.h
+++ b/testsuites/libtests/block08/system.h
@@ -13,7 +13,7 @@
 
 #include <rtems.h>
 #include <rtems/blkdev.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <bsp.h>
 
diff --git a/testsuites/libtests/block09/init.c b/testsuites/libtests/block09/init.c
index 73bec67c3f..acd8a82d7c 100644
--- a/testsuites/libtests/block09/init.c
+++ b/testsuites/libtests/block09/init.c
@@ -35,7 +35,7 @@
 
 #include <rtems.h>
 #include <rtems/bdbuf.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <bsp.h>
 
diff --git a/testsuites/libtests/block10/init.c b/testsuites/libtests/block10/init.c
index 8e67c055d1..d198fd5097 100644
--- a/testsuites/libtests/block10/init.c
+++ b/testsuites/libtests/block10/init.c
@@ -35,7 +35,7 @@
 
 #include <rtems.h>
 #include <rtems/bdbuf.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 const char rtems_test_name[] = "BLOCK 10";
 
diff --git a/testsuites/libtests/capture01/system.h b/testsuites/libtests/capture01/system.h
index dc4a37a527..82b8b28248 100644
--- a/testsuites/libtests/capture01/system.h
+++ b/testsuites/libtests/capture01/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/libtests/dl01/dl01-o1.c b/testsuites/libtests/dl01/dl01-o1.c
index a47beb1d51..1a43cdb107 100644
--- a/testsuites/libtests/dl01/dl01-o1.c
+++ b/testsuites/libtests/dl01/dl01-o1.c
@@ -10,7 +10,7 @@
  * Hello World as a loadable module.
  */
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl02/dl02-o1.c b/testsuites/libtests/dl02/dl02-o1.c
index 2afb618800..4d6f052e56 100644
--- a/testsuites/libtests/dl02/dl02-o1.c
+++ b/testsuites/libtests/dl02/dl02-o1.c
@@ -10,7 +10,7 @@
 
 #include <dlfcn.h>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl02/dl02-o2.c b/testsuites/libtests/dl02/dl02-o2.c
index 507333535b..6b62879e95 100644
--- a/testsuites/libtests/dl02/dl02-o2.c
+++ b/testsuites/libtests/dl02/dl02-o2.c
@@ -8,7 +8,7 @@
 
 #include "dl-o2.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__)
 
diff --git a/testsuites/libtests/dl05/dl05-o5.cc b/testsuites/libtests/dl05/dl05-o5.cc
index b70790ea7b..3aafcd7df5 100644
--- a/testsuites/libtests/dl05/dl05-o5.cc
+++ b/testsuites/libtests/dl05/dl05-o5.cc
@@ -2,7 +2,7 @@
 
 #include <stdexcept>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl06/dl06-o1.c b/testsuites/libtests/dl06/dl06-o1.c
index 32e9a4acd9..217843a6b2 100644
--- a/testsuites/libtests/dl06/dl06-o1.c
+++ b/testsuites/libtests/dl06/dl06-o1.c
@@ -11,7 +11,7 @@
 #include <dlfcn.h>
 #include <math.h>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl06/dl06-o2.c b/testsuites/libtests/dl06/dl06-o2.c
index 7d6f6c8d57..8d3d0da531 100644
--- a/testsuites/libtests/dl06/dl06-o2.c
+++ b/testsuites/libtests/dl06/dl06-o2.c
@@ -11,7 +11,7 @@
 #include <stdlib.h>
 #include <math.h>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl07/dl07-o1.c b/testsuites/libtests/dl07/dl07-o1.c
index e3a9cec6cf..c96969a56a 100644
--- a/testsuites/libtests/dl07/dl07-o1.c
+++ b/testsuites/libtests/dl07/dl07-o1.c
@@ -9,7 +9,7 @@
 
 #include "dl-o1.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include "dl-load.h"
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
diff --git a/testsuites/libtests/dl07/dl07-o2.c b/testsuites/libtests/dl07/dl07-o2.c
index bbb493ef21..d7d0ea3215 100644
--- a/testsuites/libtests/dl07/dl07-o2.c
+++ b/testsuites/libtests/dl07/dl07-o2.c
@@ -10,7 +10,7 @@
 #include "dl-o1.h"
 #include "dl-o2.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl07/dl07-o3.c b/testsuites/libtests/dl07/dl07-o3.c
index c499f6cab7..3e889385b1 100644
--- a/testsuites/libtests/dl07/dl07-o3.c
+++ b/testsuites/libtests/dl07/dl07-o3.c
@@ -13,7 +13,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl07/dl07-o4.c b/testsuites/libtests/dl07/dl07-o4.c
index c9028ae808..a10e3cff24 100644
--- a/testsuites/libtests/dl07/dl07-o4.c
+++ b/testsuites/libtests/dl07/dl07-o4.c
@@ -10,7 +10,7 @@
 #include "dl-o1.h"
 #include "dl-o4.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl07/dl07-o5.c b/testsuites/libtests/dl07/dl07-o5.c
index fc56fd31a2..ca0ddb0dee 100644
--- a/testsuites/libtests/dl07/dl07-o5.c
+++ b/testsuites/libtests/dl07/dl07-o5.c
@@ -11,7 +11,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl08/dl08-o1.c b/testsuites/libtests/dl08/dl08-o1.c
index e6173f3a78..6bcf90c1b2 100644
--- a/testsuites/libtests/dl08/dl08-o1.c
+++ b/testsuites/libtests/dl08/dl08-o1.c
@@ -9,7 +9,7 @@
 
 #include "dl-o1.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include "dl-load.h"
 #include "dl-o1.h"
 #include "dl-o2.h"
diff --git a/testsuites/libtests/dl08/dl08-o2.c b/testsuites/libtests/dl08/dl08-o2.c
index e58c8750e9..e26177723a 100644
--- a/testsuites/libtests/dl08/dl08-o2.c
+++ b/testsuites/libtests/dl08/dl08-o2.c
@@ -10,7 +10,7 @@
 #include "dl-o2.h"
 #include "dl-o3.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl08/dl08-o3.c b/testsuites/libtests/dl08/dl08-o3.c
index c84b3d72ad..e4331e43a7 100644
--- a/testsuites/libtests/dl08/dl08-o3.c
+++ b/testsuites/libtests/dl08/dl08-o3.c
@@ -12,7 +12,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl08/dl08-o4.c b/testsuites/libtests/dl08/dl08-o4.c
index 72dfbc6850..2e4f938128 100644
--- a/testsuites/libtests/dl08/dl08-o4.c
+++ b/testsuites/libtests/dl08/dl08-o4.c
@@ -10,7 +10,7 @@
 #include "dl-o4.h"
 #include "dl-o5.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl08/dl08-o5.c b/testsuites/libtests/dl08/dl08-o5.c
index 9257a684d7..ec48c6012a 100644
--- a/testsuites/libtests/dl08/dl08-o5.c
+++ b/testsuites/libtests/dl08/dl08-o5.c
@@ -11,7 +11,7 @@
 #include "dl-o6.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl08/dl08-o6-123456789-123456789.c b/testsuites/libtests/dl08/dl08-o6-123456789-123456789.c
index 4aee277a3d..73bc11a164 100644
--- a/testsuites/libtests/dl08/dl08-o6-123456789-123456789.c
+++ b/testsuites/libtests/dl08/dl08-o6-123456789-123456789.c
@@ -10,7 +10,7 @@
 #include "dl-o6.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl09/dl09-o1.c b/testsuites/libtests/dl09/dl09-o1.c
index 9404a45732..d83d82eda0 100644
--- a/testsuites/libtests/dl09/dl09-o1.c
+++ b/testsuites/libtests/dl09/dl09-o1.c
@@ -9,7 +9,7 @@
 
 #include "dl-o1.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include "dl-load.h"
 #include "dl-o1.h"
 #include "dl-o2.h"
diff --git a/testsuites/libtests/dl09/dl09-o2.c b/testsuites/libtests/dl09/dl09-o2.c
index 4b9f15cd28..7528391b25 100644
--- a/testsuites/libtests/dl09/dl09-o2.c
+++ b/testsuites/libtests/dl09/dl09-o2.c
@@ -10,7 +10,7 @@
 #include "dl-o2.h"
 #include "dl-o3.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl09/dl09-o3.c b/testsuites/libtests/dl09/dl09-o3.c
index 7f8f419bb1..a4d5892220 100644
--- a/testsuites/libtests/dl09/dl09-o3.c
+++ b/testsuites/libtests/dl09/dl09-o3.c
@@ -12,7 +12,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl09/dl09-o4.c b/testsuites/libtests/dl09/dl09-o4.c
index 9fea2e5d5c..dfb3f3c5e9 100644
--- a/testsuites/libtests/dl09/dl09-o4.c
+++ b/testsuites/libtests/dl09/dl09-o4.c
@@ -10,7 +10,7 @@
 #include "dl-o4.h"
 #include "dl-o5.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl09/dl09-o5.c b/testsuites/libtests/dl09/dl09-o5.c
index fb1169256c..ec57b91d94 100644
--- a/testsuites/libtests/dl09/dl09-o5.c
+++ b/testsuites/libtests/dl09/dl09-o5.c
@@ -11,7 +11,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl10/dl10-o1.c b/testsuites/libtests/dl10/dl10-o1.c
index e6173f3a78..6bcf90c1b2 100644
--- a/testsuites/libtests/dl10/dl10-o1.c
+++ b/testsuites/libtests/dl10/dl10-o1.c
@@ -9,7 +9,7 @@
 
 #include "dl-o1.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include "dl-load.h"
 #include "dl-o1.h"
 #include "dl-o2.h"
diff --git a/testsuites/libtests/dl10/dl10-o2.c b/testsuites/libtests/dl10/dl10-o2.c
index e58c8750e9..e26177723a 100644
--- a/testsuites/libtests/dl10/dl10-o2.c
+++ b/testsuites/libtests/dl10/dl10-o2.c
@@ -10,7 +10,7 @@
 #include "dl-o2.h"
 #include "dl-o3.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl10/dl10-o3.c b/testsuites/libtests/dl10/dl10-o3.c
index c84b3d72ad..e4331e43a7 100644
--- a/testsuites/libtests/dl10/dl10-o3.c
+++ b/testsuites/libtests/dl10/dl10-o3.c
@@ -12,7 +12,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl10/dl10-o4.c b/testsuites/libtests/dl10/dl10-o4.c
index 72dfbc6850..2e4f938128 100644
--- a/testsuites/libtests/dl10/dl10-o4.c
+++ b/testsuites/libtests/dl10/dl10-o4.c
@@ -10,7 +10,7 @@
 #include "dl-o4.h"
 #include "dl-o5.h"
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl10/dl10-o5.c b/testsuites/libtests/dl10/dl10-o5.c
index be496392c9..a16f65a98b 100644
--- a/testsuites/libtests/dl10/dl10-o5.c
+++ b/testsuites/libtests/dl10/dl10-o5.c
@@ -10,7 +10,7 @@
 #include "dl-o5.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
 
diff --git a/testsuites/libtests/dl10/dl10-o6.c b/testsuites/libtests/dl10/dl10-o6.c
index 5e03a30773..358e9bb242 100644
--- a/testsuites/libtests/dl10/dl10-o6.c
+++ b/testsuites/libtests/dl10/dl10-o6.c
@@ -9,7 +9,7 @@
 #include "dl-load.h"
 
 #include <inttypes.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 int rtems_main_o5 (void)
 {
diff --git a/testsuites/libtests/mathl/init.c b/testsuites/libtests/mathl/init.c
index af5eb9b4a5..2dbc6f7089 100644
--- a/testsuites/libtests/mathl/init.c
+++ b/testsuites/libtests/mathl/init.c
@@ -24,7 +24,7 @@
 
 #if __rtems__
 #include <bsp.h> /* for device driver prototypes */
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 const char rtems_test_name[] = "MATHL";
 #endif
diff --git a/testsuites/psxtests/psxbarrier01/main.c b/testsuites/psxtests/psxbarrier01/main.c
index 93aa9f788b..8721dc8283 100644
--- a/testsuites/psxtests/psxbarrier01/main.c
+++ b/testsuites/psxtests/psxbarrier01/main.c
@@ -12,7 +12,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <bsp.h>
 #include <pmacros.h>
 
diff --git a/testsuites/psxtests/psxconfig01/init.c b/testsuites/psxtests/psxconfig01/init.c
index 038bbec43c..f90848bdbf 100644
--- a/testsuites/psxtests/psxconfig01/init.c
+++ b/testsuites/psxtests/psxconfig01/init.c
@@ -27,7 +27,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <tmacros.h>
 
 #include <sys/stat.h>
diff --git a/testsuites/psxtests/psxfenv01/init.c b/testsuites/psxtests/psxfenv01/init.c
index b2718b6f0d..37b97b5d61 100644
--- a/testsuites/psxtests/psxfenv01/init.c
+++ b/testsuites/psxtests/psxfenv01/init.c
@@ -45,7 +45,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <tmacros.h>
 #include <float.h>
 
diff --git a/testsuites/psxtests/psxinttypes01/init.c b/testsuites/psxtests/psxinttypes01/init.c
index 615b9d9ab4..2b76d0106a 100644
--- a/testsuites/psxtests/psxinttypes01/init.c
+++ b/testsuites/psxtests/psxinttypes01/init.c
@@ -35,7 +35,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <inttypes.h>
 #include <stdio.h>
 #include <errno.h>
diff --git a/testsuites/psxtests/psxndbm01/init.c b/testsuites/psxtests/psxndbm01/init.c
index d696abf282..8b39ee1633 100644
--- a/testsuites/psxtests/psxndbm01/init.c
+++ b/testsuites/psxtests/psxndbm01/init.c
@@ -45,7 +45,7 @@
 #include <stdio.h>
 #include <sys/stat.h>   /* contains definitions of 'file_mode' */
 #include <string.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <tmacros.h>
 
 const char rtems_test_name[] = "PSXNDBM 01";
diff --git a/testsuites/psxtests/psxrwlock01/main.c b/testsuites/psxtests/psxrwlock01/main.c
index 2984ce965a..2bf6d26bdf 100644
--- a/testsuites/psxtests/psxrwlock01/main.c
+++ b/testsuites/psxtests/psxrwlock01/main.c
@@ -12,7 +12,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <bsp.h>
 #include <pmacros.h>
 
diff --git a/testsuites/samples/base_mp/system.h b/testsuites/samples/base_mp/system.h
index 3c434397b5..14e78e5ef0 100644
--- a/testsuites/samples/base_mp/system.h
+++ b/testsuites/samples/base_mp/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/samples/base_sp/system.h b/testsuites/samples/base_sp/system.h
index 174496ecbf..5551643a6a 100644
--- a/testsuites/samples/base_sp/system.h
+++ b/testsuites/samples/base_sp/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/samples/capture/system.h b/testsuites/samples/capture/system.h
index 99c15ec740..90045487b6 100644
--- a/testsuites/samples/capture/system.h
+++ b/testsuites/samples/capture/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/samples/cdtest/main.cc b/testsuites/samples/cdtest/main.cc
index 010bc221f0..05f6bc0d87 100644
--- a/testsuites/samples/cdtest/main.cc
+++ b/testsuites/samples/cdtest/main.cc
@@ -24,7 +24,7 @@
 
 #include <rtems.h>
 #include <rtems/bspIo.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <cstdio>
 #include <cstdlib>
diff --git a/testsuites/samples/cdtest/system.h b/testsuites/samples/cdtest/system.h
index 6530682a93..7ed33c0e81 100644
--- a/testsuites/samples/cdtest/system.h
+++ b/testsuites/samples/cdtest/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/samples/fileio/system.h b/testsuites/samples/fileio/system.h
index 743acf8406..7e0802211b 100644
--- a/testsuites/samples/fileio/system.h
+++ b/testsuites/samples/fileio/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include "tmacros.h"
 
 /* functions */
diff --git a/testsuites/samples/iostream/system.h b/testsuites/samples/iostream/system.h
index fbcc56e063..ca0d97c323 100644
--- a/testsuites/samples/iostream/system.h
+++ b/testsuites/samples/iostream/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* configuration information */
 
diff --git a/testsuites/samples/nsecs/system.h b/testsuites/samples/nsecs/system.h
index 29627e49db..2d5b724ef3 100644
--- a/testsuites/samples/nsecs/system.h
+++ b/testsuites/samples/nsecs/system.h
@@ -1,7 +1,7 @@
 #ifndef SYSTEM_H
 #define SYSTEM_H
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <bsp.h> /* for device driver prototypes */
 
diff --git a/testsuites/samples/paranoia/system.h b/testsuites/samples/paranoia/system.h
index 6726f81873..9b96f60ac1 100644
--- a/testsuites/samples/paranoia/system.h
+++ b/testsuites/samples/paranoia/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 /* functions */
 
diff --git a/testsuites/samples/pppd/system.h b/testsuites/samples/pppd/system.h
index f83212ed5a..af15eca46b 100644
--- a/testsuites/samples/pppd/system.h
+++ b/testsuites/samples/pppd/system.h
@@ -2,7 +2,7 @@
 #define SYSTEM_H
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/console.h>
 #include <rtems/clockdrv.h>
 
diff --git a/testsuites/samples/ticker/system.h b/testsuites/samples/ticker/system.h
index 05261341f7..2a6114ac64 100644
--- a/testsuites/samples/ticker/system.h
+++ b/testsuites/samples/ticker/system.h
@@ -12,7 +12,7 @@
  */
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <inttypes.h>
 #include "tmacros.h"
 
diff --git a/testsuites/smptests/smpatomic01/init.c b/testsuites/smptests/smpatomic01/init.c
index a3b9e1dc45..1defa3a13b 100644
--- a/testsuites/smptests/smpatomic01/init.c
+++ b/testsuites/smptests/smpatomic01/init.c
@@ -22,7 +22,7 @@
 #include <rtems/score/smpbarrier.h>
 #include <rtems.h>
 #include <rtems/bsd.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <limits.h>
 #include <string.h>
 
diff --git a/testsuites/smptests/smplock01/init.c b/testsuites/smptests/smplock01/init.c
index bfaa755150..067dabe176 100644
--- a/testsuites/smptests/smplock01/init.c
+++ b/testsuites/smptests/smplock01/init.c
@@ -19,7 +19,7 @@
 #include <rtems/score/smplock.h>
 #include <rtems/score/smplockmcs.h>
 #include <rtems/score/smplockseq.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems.h>
 
 #include "tmacros.h"
diff --git a/testsuites/smptests/smpscheduler03/init.c b/testsuites/smptests/smpscheduler03/init.c
index 024e3cdd48..9f1710a222 100644
--- a/testsuites/smptests/smpscheduler03/init.c
+++ b/testsuites/smptests/smpscheduler03/init.c
@@ -17,7 +17,7 @@
 #endif
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 void Init(rtems_task_argument arg);
 
diff --git a/testsuites/smptests/smpscheduler05/init.c b/testsuites/smptests/smpscheduler05/init.c
index 4a1d0b6db3..039b562ea8 100644
--- a/testsuites/smptests/smpscheduler05/init.c
+++ b/testsuites/smptests/smpscheduler05/init.c
@@ -17,7 +17,7 @@
 #endif
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 void Init(rtems_task_argument arg);
 
diff --git a/testsuites/smptests/smpscheduler06/init.c b/testsuites/smptests/smpscheduler06/init.c
index 1559e04d43..9b23524dd6 100644
--- a/testsuites/smptests/smpscheduler06/init.c
+++ b/testsuites/smptests/smpscheduler06/init.c
@@ -17,7 +17,7 @@
 #endif
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 void Init(rtems_task_argument arg);
 
diff --git a/testsuites/smptests/smpscheduler07/init.c b/testsuites/smptests/smpscheduler07/init.c
index 4583a5eb2a..2e9bb540f6 100644
--- a/testsuites/smptests/smpscheduler07/init.c
+++ b/testsuites/smptests/smpscheduler07/init.c
@@ -17,7 +17,7 @@
 #endif
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 void Init(rtems_task_argument arg);
 
diff --git a/testsuites/sptests/spheapprot/init.c b/testsuites/sptests/spheapprot/init.c
index 8046100091..04678b2165 100644
--- a/testsuites/sptests/spheapprot/init.c
+++ b/testsuites/sptests/spheapprot/init.c
@@ -22,7 +22,7 @@
 
 #include <bsp.h>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/score/heapimpl.h>
 
 #include <tmacros.h>
diff --git a/testsuites/sptests/sptimecounter02/init.c b/testsuites/sptests/sptimecounter02/init.c
index fafbaf8af1..44127e0165 100644
--- a/testsuites/sptests/sptimecounter02/init.c
+++ b/testsuites/sptests/sptimecounter02/init.c
@@ -30,7 +30,7 @@
 
 #include <rtems.h>
 #include <rtems/counter.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <rtems/score/timecounterimpl.h>
 #include <rtems/timecounter.h>
diff --git a/testsuites/sptests/sptimecounter03/init.c b/testsuites/sptests/sptimecounter03/init.c
index 4ef084d3d2..779c9f0951 100644
--- a/testsuites/sptests/sptimecounter03/init.c
+++ b/testsuites/sptests/sptimecounter03/init.c
@@ -16,7 +16,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #include <rtems/bsd.h>
 
diff --git a/testsuites/sptests/sptimecounter04/init.c b/testsuites/sptests/sptimecounter04/init.c
index 42c31277b9..d008f39b0b 100644
--- a/testsuites/sptests/sptimecounter04/init.c
+++ b/testsuites/sptests/sptimecounter04/init.c
@@ -18,7 +18,7 @@
 
 #include <time.h>
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/timespec.h>
 
 #include "tmacros.h"
diff --git a/testsuites/support/include/buffer_test_io.h b/testsuites/support/include/buffer_test_io.h
index ea68fea0d8..aad369ddf3 100644
--- a/testsuites/support/include/buffer_test_io.h
+++ b/testsuites/support/include/buffer_test_io.h
@@ -5,7 +5,7 @@
 #ifndef __BUFFER_TEST_IO_h
 #define __BUFFER_TEST_IO_h
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/testsuites/support/include/tmacros.h b/testsuites/support/include/tmacros.h
index 2c885c6ecc..f72115c3c7 100644
--- a/testsuites/support/include/tmacros.h
+++ b/testsuites/support/include/tmacros.h
@@ -26,7 +26,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <rtems/error.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/score/threaddispatch.h>
 
 #include <buffer_test_io.h>
diff --git a/testsuites/tmtests/tmfine01/init.c b/testsuites/tmtests/tmfine01/init.c
index bf24ca138f..7ba02fbba6 100644
--- a/testsuites/tmtests/tmfine01/init.c
+++ b/testsuites/tmtests/tmfine01/init.c
@@ -24,7 +24,7 @@
 #include <sched.h>
 #include <stdio.h>
 
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 
 const char rtems_test_name[] = "TMFINE 1";
 
diff --git a/testsuites/tmtests/tmonetoone/init.c b/testsuites/tmtests/tmonetoone/init.c
index b721a8c531..97ed64cedc 100644
--- a/testsuites/tmtests/tmonetoone/init.c
+++ b/testsuites/tmtests/tmonetoone/init.c
@@ -19,7 +19,7 @@
 #include <sched.h>
 
 #include <rtems.h>
-#include <rtems/test.h>
+#include <rtems/simple-test.h>
 #include <rtems/thread.h>
 
 #include <tmacros.h>
-- 
2.26.2



More information about the devel mailing list