summaryrefslogtreecommitdiffstats
path: root/cpukit/doxygen/appl-config.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/doxygen/appl-config.h')
-rw-r--r--cpukit/doxygen/appl-config.h2594
1 files changed, 1554 insertions, 1040 deletions
diff --git a/cpukit/doxygen/appl-config.h b/cpukit/doxygen/appl-config.h
index bbeb438bec..de93acbaa7 100644
--- a/cpukit/doxygen/appl-config.h
+++ b/cpukit/doxygen/appl-config.h
@@ -1,9 +1,17 @@
/* SPDX-License-Identifier: BSD-2-Clause */
+/**
+ * @file
+ *
+ * @ingroup RTEMSImplDoxygen
+ *
+ * @brief This header file documents the application configuration options.
+ */
+
/*
- * Copyright (C) 2019, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+ * Copyright (C) 2019, 2023 embedded brains GmbH & Co. KG
* Copyright (C) 2010 Gedare Bloom
- * Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+ * Copyright (C) 1988, 2023 On-Line Applications Research Corporation (OAR)
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -69,6 +77,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+ *
* In case this configuration option is defined, then the Block Device Cache is
* initialized during system initialization.
*
@@ -88,20 +98,23 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+ *
* The value of this configuration option defines the maximum size of a buffer
* in bytes.
*
* @par Default Value
* The default value is 4096.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be an integral multiple of #CONFIGURE_BDBUF_BUFFER_MIN_SIZE.
+ * * The value of the configuration option shall be an integral multiple of
+ * @ref CONFIGURE_BDBUF_BUFFER_MIN_SIZE.
* @endparblock
*/
#define CONFIGURE_BDBUF_BUFFER_MAX_SIZE
@@ -111,20 +124,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+ *
* The value of this configuration option defines the minimum size of a buffer
* in bytes.
*
* @par Default Value
* The default value is 512.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*/
@@ -135,20 +150,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
+ *
* The value of this configuration option defines the size of the cache memory
* in bytes.
*
* @par Default Value
* The default value is 32768.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
* @endparblock
*/
@@ -159,20 +176,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+ *
* The value of this configuration option defines the maximum blocks per
* read-ahead request.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
@@ -188,20 +207,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+ *
* The value of this configuration option defines the maximum blocks per write
* request.
*
* @par Default Value
* The default value is 16.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*/
@@ -212,13 +233,15 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+ *
* The value of this configuration option defines the read-ahead task priority.
*
* @par Default Value
* The default value is 15.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid Classic API task
+ * @par Constraints
+ * The value of the configuration option shall be a valid Classic API task
* priority. The set of valid task priorities depends on the scheduler
* configuration.
*/
@@ -229,25 +252,28 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_BDBUF_TASK_STACK_SIZE
+ *
* The value of this configuration option defines the task stack size of the
* Block Device Cache tasks in bytes.
*
* @par Default Value
* The default value is #RTEMS_MINIMUM_STACK_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*/
@@ -258,20 +284,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SWAPOUT_BLOCK_HOLD
+ *
* The value of this configuration option defines the swapout task maximum
* block hold time in milliseconds.
*
* @par Default Value
* The default value is 1000.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*/
@@ -282,20 +310,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SWAPOUT_SWAP_PERIOD
+ *
* The value of this configuration option defines the swapout task swap period
* in milliseconds.
*
* @par Default Value
* The default value is 250.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*/
@@ -306,13 +336,15 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SWAPOUT_TASK_PRIORITY
+ *
* The value of this configuration option defines the swapout task priority.
*
* @par Default Value
* The default value is 15.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid Classic API task
+ * @par Constraints
+ * The value of the configuration option shall be a valid Classic API task
* priority. The set of valid task priorities depends on the scheduler
* configuration.
*/
@@ -323,20 +355,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SWAPOUT_WORKER_TASKS
+ *
* The value of this configuration option defines the swapout worker task
* count.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*/
@@ -347,14 +381,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+ *
* The value of this configuration option defines the swapout worker task
* priority.
*
* @par Default Value
* The default value is 15.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid Classic API task
+ * @par Constraints
+ * The value of the configuration option shall be a valid Classic API task
* priority. The set of valid task priorities depends on the scheduler
* configuration.
*/
@@ -362,225 +398,6 @@
/** @} */
-/* Generated from spec:/acfg/if/group-bsp */
-
-/**
- * @defgroup RTEMSApplConfigBSPRelatedConfigurationOptions \
- * BSP Related Configuration Options
- *
- * @ingroup RTEMSApplConfig
- *
- * 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
- * #CONFIGURE_DISABLE_BSP_SETTINGS configuration option.
- *
- * @{
- */
-
-/* Generated from spec:/acfg/if/bsp-idle-task-body */
-
-/**
- * @brief This configuration option is an initializer define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then the value of this configuration option defines the default value of
- * #CONFIGURE_IDLE_TASK_BODY.
- *
- * @par Default Value
- * The default value is BSP-specific.
- *
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
- * pointer of the type ``void *( *idle_body )( uintptr_t )``.
- *
- * @par Notes
- * 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
-
-/* Generated from spec:/acfg/if/bsp-idle-task-stack-size */
-
-/**
- * @brief This configuration option is an integer define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then the value of this configuration option defines the default value of
- * #CONFIGURE_IDLE_TASK_STACK_SIZE.
- *
- * @par Default Value
- * The default value is BSP-specific.
- *
- * @par Value Constraints
- * @parblock
- * 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
- * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
- * @endparblock
- */
-#define BSP_IDLE_TASK_STACK_SIZE
-
-/* Generated from spec:/acfg/if/bsp-initial-extension */
-
-/**
- * @brief This configuration option is an initializer define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then the value of this configuration option is used to initialize the table
- * of initial user extensions.
- *
- * @par Default Value
- * The default value is BSP-specific.
- *
- * @par Value Constraints
- * The value of this configuration option shall be a list of initializers for
- * structures of type ::rtems_extensions_table.
- *
- * @par Notes
- * The value of this configuration option is placed after the entries of all
- * other initial user extensions.
- */
-#define BSP_INITIAL_EXTENSION
-
-/* Generated from spec:/acfg/if/bsp-interrupt-stack-size */
-
-/**
- * @brief This configuration option is an integer define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then the value of this configuration option defines the default value of
- * #CONFIGURE_INTERRUPT_STACK_SIZE.
- *
- * @par Default Value
- * The default value is BSP-specific.
- *
- * @par Value Constraints
- * @parblock
- * 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
- * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
- *
- * * It shall be aligned according to #CPU_INTERRUPT_STACK_ALIGNMENT.
- * @endparblock
- */
-#define BSP_INTERRUPT_STACK_SIZE
-
-/* Generated from spec:/acfg/if/bsp-prerequisite-drivers */
-
-/**
- * @brief This configuration option is an initializer define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then the value of this configuration option is used to add BSP-provided
- * prerequisite drivers to the Device Driver Table.
- *
- * @par Default Value
- * The default value is BSP-specific.
- *
- * @par Value Constraints
- * The value of this configuration option shall be a list of initializers for
- * structures of type ::rtems_extensions_table.
- *
- * @par Notes
- * The value of this configuration option is placed before the entries of all
- * other initial user extensions (including
- * #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS).
- */
-#define CONFIGURE_BSP_PREREQUISITE_DRIVERS
-
-/* Generated from spec:/acfg/if/disable-bsp-settings */
-
-/**
- * @brief This configuration option is a boolean feature define.
- *
- * In case this configuration option is defined, then the following BSP related
- * configuration options are undefined:
- *
- * * #BSP_IDLE_TASK_BODY
- *
- * * #BSP_IDLE_TASK_STACK_SIZE
- *
- * * #BSP_INITIAL_EXTENSION
- *
- * * #BSP_INTERRUPT_STACK_SIZE
- *
- * * #CONFIGURE_BSP_PREREQUISITE_DRIVERS
- *
- * * #CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
- *
- * @par Default Configuration
- * If this configuration option is undefined, then the described feature is not
- * enabled.
- */
-#define CONFIGURE_DISABLE_BSP_SETTINGS
-
-/* Generated from spec:/acfg/if/malloc-bsp-supports-sbrk */
-
-/**
- * @brief This configuration option is a boolean feature define.
- *
- * If
- *
- * * this configuration option is defined by the BSP
- *
- * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined,
- *
- * then not all memory is made available to the C Program Heap immediately at
- * system initialization time. When malloc() or other standard memory
- * allocation functions are unable to allocate memory, they will call the BSP
- * supplied sbrk() function to obtain more memory.
- *
- * @par Default Configuration
- * If this configuration option is undefined, then the described feature is not
- * enabled.
- *
- * @par Notes
- * 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
-
-/** @} */
-
/* Generated from spec:/acfg/if/group-classic */
/**
@@ -598,34 +415,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_BARRIERS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Barriers that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_BARRIERS
@@ -635,36 +455,39 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+ *
* The value of this configuration option defines the maximum number of Classic
* API Message Queues that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>. You have to account for the memory used to store the messages
- * of each message queue, see #CONFIGURE_MESSAGE_BUFFER_MEMORY.
+ * of each message queue, see @ref CONFIGURE_MESSAGE_BUFFER_MEMORY.
*/
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES
@@ -673,34 +496,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_PARTITIONS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Partitions that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_PARTITIONS
@@ -710,34 +536,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_PERIODS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Periods that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_PERIODS
@@ -747,34 +576,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_PORTS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Ports that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_PORTS
@@ -784,34 +616,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_REGIONS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Regions that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_REGIONS
@@ -821,42 +656,45 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_SEMAPHORES
+ *
* The value of this configuration option defines the maximum number of Classic
* API Semaphore that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
* In SMP configurations, the size of a Semaphore Control Block depends on the
* scheduler count (see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html#configuration-step-3-scheduler-table>Configuration
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html#configuration-step-3-scheduler-table">Configuration
* Step 3 - Scheduler Table</a>). The semaphores using the <a
- * href=https://docs.rtems.org/branches/master/c-user/key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp>Multiprocessor
+ * href="https://docs.rtems.org/branches/master/c-user/key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp">Multiprocessor
* Resource Sharing Protocol (MrsP)</a> need a ceiling priority per scheduler.
* @endparblock
*/
@@ -867,48 +705,53 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_TASKS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Tasks that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It may be defined through rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
* 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 option #CONFIGURE_EXTRA_TASK_STACKS is
- * used to specify task stack requirements *above* the minimum size required.
+ * support enabled. The configuration option @ref CONFIGURE_EXTRA_TASK_STACKS
+ * is used to specify task stack requirements *above* the minimum size
+ * required.
*
- * The maximum number of POSIX threads is specified by
- * #CONFIGURE_MAXIMUM_POSIX_THREADS.
+ * 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
@@ -918,86 +761,42 @@
*/
#define CONFIGURE_MAXIMUM_TASKS
-/* Generated from spec:/acfg/if/max-thread-local-storage-size */
-
-/**
- * @brief This configuration option is an integer define.
- *
- * If the value of this configuration option is greater than zero, then it
- * defines the maximum thread-local storage size, otherwise the thread-local
- * storage size is defined by the linker depending on the thread-local storage
- * objects used by the application in the statically-linked executable.
- *
- * @par Default Value
- * The default value is 0.
- *
- * @par Value Constraints
- * @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
- *
- * * It shall be greater than or equal to zero.
- *
- * * It shall be less than or equal to <a
- * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
- *
- * * It shall be an integral multiple of #RTEMS_TASK_STORAGE_ALIGNMENT.
- * @endparblock
- *
- * @par Notes
- * @parblock
- * This configuration option can be used to reserve space for the dynamic
- * linking of modules with thread-local storage objects.
- *
- * If the thread-local storage size defined by the thread-local storage objects
- * used by the application in the statically-linked executable is greater than
- * a non-zero value of this configuration option, then a fatal error will occur
- * during system initialization.
- *
- * Use RTEMS_ALIGN_UP() and #RTEMS_TASK_STORAGE_ALIGNMENT to adjust the size to
- * meet the minimum alignment requirement of a thread-local storage area.
- *
- * The actual thread-local storage size is determined when the application
- * executable is linked. The ``rtems-exeinfo`` command line tool included in
- * the RTEMS Tools can be used to obtain the thread-local storage size and
- * alignment of an application executable.
- * @endparblock
- */
-#define CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
-
/* Generated from spec:/acfg/if/max-timers */
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_TIMERS
+ *
* The value of this configuration option defines the maximum number of Classic
* API Timers that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_TIMERS
@@ -1007,24 +806,27 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_USER_EXTENSIONS
+ *
* The value of this configuration option defines the maximum number of Classic
* API User Extensions that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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.
* @endparblock
*
* @par Notes
@@ -1037,20 +839,23 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE
+ *
* The value of this configuration option defines the minimum count of Classic
* API Tasks which are constructed by rtems_task_construct().
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to #CONFIGURE_MAXIMUM_TASKS.
+ * * The value of the configuration option shall be less than or equal to @ref
+ * CONFIGURE_MAXIMUM_TASKS.
* @endparblock
*
* @par Notes
@@ -1083,14 +888,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_ARGUMENTS
+ *
* The value of this configuration option defines task argument of the Classic
* API initialization task.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
- * The value of this configuration option shall be convertible to an integer of
+ * @par Constraints
+ * The value of the configuration option shall be convertible to an integer of
* type ::rtems_task_argument.
*/
#define CONFIGURE_INIT_TASK_ARGUMENTS
@@ -1100,14 +907,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_ATTRIBUTES
+ *
* The value of this configuration option defines the task attributes of the
* Classic API initialization task.
*
* @par Default Value
* The default value is #RTEMS_DEFAULT_ATTRIBUTES.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid task attribute set.
+ * @par Constraints
+ * The value of the configuration option shall be a valid task attribute set.
*/
#define CONFIGURE_INIT_TASK_ATTRIBUTES
@@ -1116,22 +925,25 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
+ *
* The value of this configuration option defines the task storage size of the
* Classic API initialization task.
*
* @par Default Value
* This configuration option has no default value. If it is not specified,
* then the Classic API initialization task will be created with the stack size
- * defined by the #CONFIGURE_INIT_TASK_STACK_SIZE configuration option.
+ * defined by the @ref CONFIGURE_INIT_TASK_STACK_SIZE configuration option.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * * The value of the configuration option shall be greater than or equal to
+ * @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE.
*
- * * It shall be defined using RTEMS_TASK_STORAGE_SIZE().
+ * * The value of the configuration option shall be defined using
+ * RTEMS_TASK_STORAGE_SIZE().
* @endparblock
*
* @par Notes
@@ -1144,19 +956,19 @@
* * the Classic API initialization task is constructed by
* rtems_task_construct() instead of using rtems_task_create(),
*
- * * the maximum thread-local storage size defined by
- * #CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE is used for the Classic API
+ * * the maximum thread-local storage size defined by @ref
+ * CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE is used for the Classic API
* initialization task,
*
- * * the Classic API initialization task should be accounted for in
- * #CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE, and
+ * * the Classic API initialization task should be accounted for in @ref
+ * CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE, and
*
* * the task storage area used for the Classic API initialization task is not
* reclaimed by the system if the task is deleted.
*
* The
*
- * * #CONFIGURE_INIT_TASK_STACK_SIZE and
+ * * @ref CONFIGURE_INIT_TASK_STACK_SIZE and
*
* * ``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE``
*
@@ -1170,14 +982,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_INIT_TASK_ENTRY_POINT
+ *
* The value of this configuration option initializes the entry point of the
* Classic API initialization task.
*
* @par Default Value
* The default value is ``Init``.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
*
* @par Notes
@@ -1191,6 +1005,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_INITIAL_MODES
+ *
* The value of this configuration option defines the initial execution mode of
* the Classic API initialization task.
*
@@ -1198,8 +1014,8 @@
* In SMP configurations, the default value is #RTEMS_DEFAULT_MODES otherwise
* the default value is #RTEMS_NO_PREEMPT.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid task mode set.
+ * @par Constraints
+ * The value of the configuration option shall be a valid task mode set.
*/
#define CONFIGURE_INIT_TASK_INITIAL_MODES
@@ -1208,14 +1024,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_NAME
+ *
* The value of this configuration option defines the name of the Classic API
* initialization task.
*
* @par Default Value
* The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
*
- * @par Value Constraints
- * The value of this configuration option shall be convertible to an integer of
+ * @par Constraints
+ * The value of the configuration option shall be convertible to an integer of
* type ::rtems_name.
*
* @par Notes
@@ -1228,14 +1046,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_PRIORITY
+ *
* The value of this configuration option defines the initial priority of the
* Classic API initialization task.
*
* @par Default Value
* The default value is 1.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid Classic API task
+ * @par Constraints
+ * The value of the configuration option shall be a valid Classic API task
* priority. The set of valid task priorities depends on the scheduler
* configuration.
*/
@@ -1246,21 +1066,24 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INIT_TASK_STACK_SIZE
+ *
* The value of this configuration option defines the task stack size of the
* Classic API initialization task.
*
* @par Default Value
- * The default value is #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * The default value is @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * * The value of the configuration option 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*
@@ -1270,7 +1093,7 @@
*
* * ``CONFIGURE_INIT_TASK_STACK_SIZE`` and
*
- * * #CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
+ * * @ref CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
*
* configuration options are mutually exclusive.
* @endparblock
@@ -1282,6 +1105,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_RTEMS_INIT_TASKS_TABLE
+ *
* In case this configuration option is defined, then exactly one Classic API
* initialization task is configured.
*
@@ -1291,16 +1116,20 @@
*
* @par Notes
* @parblock
- * The application shall define exactly one of the following configuration
+ * The application shall define at least one of the following configuration
* options
*
* * ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``,
*
- * * #CONFIGURE_POSIX_INIT_THREAD_TABLE, or
+ * * @ref CONFIGURE_POSIX_INIT_THREAD_TABLE, or
*
- * * #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
+ * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
*
* otherwise a compile time error in the configuration file will occur.
+ *
+ * The Classic API initialization task performs the <a
+ * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global
+ * Construction</a>.
* @endparblock
*/
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
@@ -1326,6 +1155,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+ *
* In case this configuration option is defined, then **no** Clock Driver is
* initialized during system initialization.
*
@@ -1342,11 +1173,11 @@
* The application shall define exactly one of the following configuration
* options
*
- * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER,
*
* * ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``, or
*
- * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER,
*
* otherwise a compile time error in the configuration file will occur.
* @endparblock
@@ -1358,14 +1189,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_APPLICATION_EXTRA_DRIVERS
+ *
* The value of this configuration option is used to initialize the Device
* Driver Table.
*
* @par Default Value
* The default value is the empty list.
*
- * @par Value Constraints
- * The value of this configuration option shall be a list of initializers for
+ * @par Constraints
+ * The value of the configuration option shall be a list of initializers for
* structures of type ::rtems_driver_address_table.
*
* @par Notes
@@ -1373,8 +1206,8 @@
* The value of this configuration option is placed after the entries of other
* device driver configuration options.
*
- * See #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS for an alternative placement
- * of application device driver initializers.
+ * See @ref CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS for an alternative
+ * placement of application device driver initializers.
* @endparblock
*/
#define CONFIGURE_APPLICATION_EXTRA_DRIVERS
@@ -1384,6 +1217,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+ *
* In case this configuration option is defined, then the ATA Driver is
* initialized during system initialization.
*
@@ -1406,6 +1241,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+ *
* In case this configuration option is defined, then the Clock Driver is
* initialized during system initialization.
*
@@ -1423,9 +1260,9 @@
*
* * ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``,
*
- * * #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or
+ * * @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or
*
- * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER,
*
* otherwise a compile time error in the configuration file will occur.
* @endparblock
@@ -1437,6 +1274,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+ *
* In case this configuration option is defined, then the Console Driver is
* initialized during system initialization.
*
@@ -1457,9 +1296,9 @@
*
* * ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``,
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
*
* configuration options are mutually exclusive.
* @endparblock
@@ -1471,6 +1310,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+ *
* In case this configuration option is defined, then the Frame Buffer Driver
* is initialized during system initialization.
*
@@ -1494,6 +1335,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+ *
* In case this configuration option is defined, then the IDE Driver is
* initialized during system initialization.
*
@@ -1516,6 +1359,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+ *
* In case this configuration option is defined, then the ``/dev/null`` Driver
* is initialized during system initialization.
*
@@ -1533,6 +1378,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+ *
* In case this configuration option is defined, then the Real-Time Clock
* Driver is initialized during system initialization.
*
@@ -1556,6 +1403,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+ *
* In case this configuration option is defined, then the Simple Console Driver
* is initialized during system initialization.
*
@@ -1578,11 +1427,11 @@
*
* The
*
- * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER,
*
* * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
*
* configuration options are mutually exclusive.
* @endparblock
@@ -1594,6 +1443,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+ *
* In case this configuration option is defined, then the Simple Task Console
* Driver is initialized during system initialization.
*
@@ -1625,9 +1476,9 @@
*
* The
*
- * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER,
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and
*
* * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``
*
@@ -1641,6 +1492,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+ *
* In case this configuration option is defined, then the Stub Driver is
* initialized during system initialization.
*
@@ -1659,6 +1512,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+ *
* In case this configuration option is defined, then the Benchmark Timer
* Driver is initialized during system initialization.
*
@@ -1674,9 +1529,9 @@
* The application shall define exactly one of the following configuration
* options
*
- * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER,
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER,
*
- * * #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or
+ * * @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or
*
* * ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``,
*
@@ -1690,6 +1545,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+ *
* In case this configuration option is defined, then the Watchdog Driver is
* initialized during system initialization.
*
@@ -1713,6 +1570,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+ *
* In case this configuration option is defined, then the ``/dev/zero`` Driver
* is initialized during system initialization.
*
@@ -1730,14 +1589,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
+ *
* The value of this configuration option is used to initialize the Device
* Driver Table.
*
* @par Default Value
* The default value is the empty list.
*
- * @par Value Constraints
- * The value of this configuration option shall be a list of initializers for
+ * @par Constraints
+ * The value of the configuration option shall be a list of initializers for
* structures of type ::rtems_driver_address_table.
*
* @par Notes
@@ -1746,7 +1607,7 @@
* by #CONFIGURE_BSP_PREREQUISITE_DRIVERS and before all other device driver
* configuration options.
*
- * See #CONFIGURE_APPLICATION_EXTRA_DRIVERS for an alternative placement of
+ * See @ref CONFIGURE_APPLICATION_EXTRA_DRIVERS for an alternative placement of
* application device driver initializers.
* @endparblock
*/
@@ -1757,27 +1618,56 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+ *
* The value of this configuration option defines the ATA task priority.
*
* @par Default Value
* The default value is 140.
*
- * @par Value Constraints
- * The value of this configuration option shall be a valid Classic API task
+ * @par Constraints
+ * The value of the configuration option shall be a valid Classic API task
* priority. The set of valid task priorities depends on the scheduler
* configuration.
*
* @par Notes
- * This configuration option is only evaluated if the configuration option
- * #CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER is defined.
+ * This configuration option is only evaluated if the configuration option @ref
+ * CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER is defined.
*/
#define CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+/* Generated from spec:/acfg/if/exception-to-signal-mapping */
+
+/**
+ * @brief This configuration option is a boolean feature define.
+ *
+ * @anchor CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING
+ *
+ * In case this configuration option is defined, then the machine exception to
+ * POSIX signal mapping is configured during system initialization.
+ *
+ * @par Default Configuration
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * @par Notes
+ * @parblock
+ * This device driver is responsible for setting up a mapping from machine
+ * exceptions to POSIX signals so that applications may consume them and alter
+ * task execution as necessary.
+ *
+ * This is especially useful for applications written in Ada or C++.
+ * @endparblock
+ */
+#define CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING
+
/* Generated from spec:/acfg/if/max-drivers */
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_DRIVERS
+ *
* The value of this configuration option defines the number of device drivers.
*
* @par Default Value
@@ -1786,55 +1676,56 @@
* configured device drivers configured using the following configuration
* options:
*
- * * #CONFIGURE_APPLICATION_EXTRA_DRIVERS
+ * * @ref CONFIGURE_APPLICATION_EXTRA_DRIVERS
*
- * * #CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+ * * @ref CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
*
- * * #CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
*
- * * #CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+ * * @ref CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
*
- * * #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
+ * * @ref CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
*
- * * #CONFIGURE_BSP_PREREQUISITE_DRIVERS
+ * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not
+ * defined and the BSP provides #CONFIGURE_BSP_PREREQUISITE_DRIVERS, then the
+ * BSP-provided prerequisite device drivers are also taken into account.
* @endparblock
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
*
- * * It shall be greater than or equal than the number of statically configured
- * device drivers.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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.
* @endparblock
*
* @par Notes
@@ -1864,11 +1755,13 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_RECORD_EXTENSIONS_ENABLED
+ *
* In case
*
* * this configuration option is defined
*
- * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
+ * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
*
* then the event record extensions are enabled.
*
@@ -1887,17 +1780,19 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_RECORD_FATAL_DUMP_BASE64
+ *
* In case
*
* * this configuration option is defined
*
- * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
+ * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
*
- * * and #CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB is undefined,
+ * * and @ref CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB is undefined,
*
* then the event records are dumped in Base64 encoding in a fatal error
* extension (see <a
- * href=https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error>Announcing
+ * href="https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error">Announcing
* a Fatal Error</a>).
*
* @par Default Configuration
@@ -1914,15 +1809,17 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
+ *
* In case
*
* * this configuration option is defined
*
- * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
+ * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
*
* then the event records are compressed by zlib and dumped in Base64 encoding
* in a fatal error extension (see <a
- * href=https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error>Announcing
+ * href="https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error">Announcing
* a Fatal Error</a>).
*
* @par Default Configuration
@@ -1935,43 +1832,121 @@
*/
#define CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
+/* Generated from spec:/acfg/if/record-interrupts-enabled */
+
+/**
+ * @brief This configuration option is a boolean feature define.
+ *
+ * @anchor CONFIGURE_RECORD_INTERRUPTS_ENABLED
+ *
+ * In case
+ *
+ * * this configuration option is defined
+ *
+ * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
+ *
+ * then the interrupt event recording is enabled.
+ *
+ * @par Default Configuration
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ *
+ * @par Notes
+ * The interrupt event recording generates interrupt entry and exit events when
+ * interrupt entries are dispatched.
+ */
+#define CONFIGURE_RECORD_INTERRUPTS_ENABLED
+
/* Generated from spec:/acfg/if/record-per-processor-items */
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+ *
* The value of this configuration option defines the event record item count
* per processor.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to 16.
+ * * The value of the configuration option shall be greater than or equal to
+ * 16.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
*
- * * It shall be a power of two.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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.
* @endparblock
*
* @par Notes
* The event record buffers are statically allocated for each configured
- * processor (#CONFIGURE_MAXIMUM_PROCESSORS). If the value of this
+ * processor (@ref CONFIGURE_MAXIMUM_PROCESSORS). If the value of this
* configuration option is zero, then nothing is allocated.
*/
#define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
/** @} */
+/* Generated from spec:/acfg/if/group-face */
+
+/**
+ * @defgroup RTEMSApplConfigFACETechnicalStandardRelatedConfiguration \
+ * FACE Technical Standard Related Configuration
+ *
+ * @ingroup RTEMSApplConfig
+ *
+ * This section describes configuration options related to adapting RTEMS
+ * behavior to be aligned with the FACE Technical Standard. The FACE Technical
+ * Standard is a product of the FACE Consortium which operates under the Open
+ * Group. The FACE Consortium was founded by avionics organizations to improve
+ * the portability of cockpit software across various platforms. It addresses
+ * technical and business concerns.
+ *
+ * Most important from an RTEMS perspective, the FACE Technical Standard
+ * defines four POSIX profiles: Security, Safety Base, Safety Extended, and the
+ * General Purpose Profile. Each has an increasingly larger subset of POSIX
+ * APIs. In the Security and Safety profiles, ARINC 653 is required. It is
+ * optional in the General Purpose Profile.
+ *
+ * The RTEMS Project has been tracking alignment with the FACE POSIX profiles
+ * and they are included in the "RTEMS POSIX 1003.1 Compliance Guide."
+ *
+ * @{
+ */
+
+/* Generated from spec:/acfg/if/posix-timer-face-behavior */
+
+/**
+ * @brief This configuration option is a boolean feature define.
+ *
+ * @anchor CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
+ *
+ * If this configuration option is defined, then POSIX timers may not be
+ * created to use the CLOCK_REALTIME. Per POSIX, this is allowed behavior but
+ * per the FACE Technical Standard, it is not. Using POSIX timers based on
+ * CLOCK_REALTIME (e.g., time of day) is unsafe for real-time safety systems as
+ * setting CLOCK_REALTIME will perturb any active timers.
+ *
+ * If this option is not defined, POSIX timers may be created to use the
+ * CLOCK_REALTIME in compliance with the POSIX specification.
+ *
+ * @par Default Configuration
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
+
+/** @} */
+
/* Generated from spec:/acfg/if/group-filesystem */
/**
@@ -1982,44 +1957,44 @@
* 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
- * #CONFIGURE_APPLICATION_DISABLE_FILESYSTEM configuration option.
+ * 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 #CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM and
- * #CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM configuration options. These three
+ * 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:
*
- * * #CONFIGURE_IMFS_DISABLE_CHMOD
+ * * @ref CONFIGURE_IMFS_DISABLE_CHMOD
*
- * * #CONFIGURE_IMFS_DISABLE_CHOWN
+ * * @ref CONFIGURE_IMFS_DISABLE_CHOWN
*
- * * #CONFIGURE_IMFS_DISABLE_LINK
+ * * @ref CONFIGURE_IMFS_DISABLE_LINK
*
- * * #CONFIGURE_IMFS_DISABLE_MKNOD
+ * * @ref CONFIGURE_IMFS_DISABLE_MKNOD
*
- * * #CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+ * * @ref CONFIGURE_IMFS_DISABLE_MKNOD_FILE
*
- * * #CONFIGURE_IMFS_DISABLE_MOUNT
+ * * @ref CONFIGURE_IMFS_DISABLE_MOUNT
*
- * * #CONFIGURE_IMFS_DISABLE_READDIR
+ * * @ref CONFIGURE_IMFS_DISABLE_READDIR
*
- * * #CONFIGURE_IMFS_DISABLE_READLINK
+ * * @ref CONFIGURE_IMFS_DISABLE_READLINK
*
- * * #CONFIGURE_IMFS_DISABLE_RENAME
+ * * @ref CONFIGURE_IMFS_DISABLE_RENAME
*
- * * #CONFIGURE_IMFS_DISABLE_RMNOD
+ * * @ref CONFIGURE_IMFS_DISABLE_RMNOD
*
- * * #CONFIGURE_IMFS_DISABLE_SYMLINK
+ * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK
*
- * * #CONFIGURE_IMFS_DISABLE_UNMOUNT
+ * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT
*
- * * #CONFIGURE_IMFS_DISABLE_UTIME
+ * * @ref CONFIGURE_IMFS_DISABLE_UTIME
*
- * * #CONFIGURE_IMFS_ENABLE_MKFIFO
+ * * @ref CONFIGURE_IMFS_ENABLE_MKFIFO
*
* @{
*/
@@ -2029,6 +2004,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
+ *
* In case this configuration option is defined, then **no base filesystem** is
* initialized during system initialization and **no filesystems** are
* configured.
@@ -2049,22 +2026,24 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_ALL
+ *
* In case this configuration option is defined, then the following
* configuration options will be defined as well
*
- * * #CONFIGURE_FILESYSTEM_DOSFS,
+ * * @ref CONFIGURE_FILESYSTEM_DOSFS,
*
- * * #CONFIGURE_FILESYSTEM_FTPFS,
+ * * @ref CONFIGURE_FILESYSTEM_FTPFS,
*
- * * #CONFIGURE_FILESYSTEM_IMFS,
+ * * @ref CONFIGURE_FILESYSTEM_IMFS,
*
- * * #CONFIGURE_FILESYSTEM_JFFS2,
+ * * @ref CONFIGURE_FILESYSTEM_JFFS2,
*
- * * #CONFIGURE_FILESYSTEM_NFS,
+ * * @ref CONFIGURE_FILESYSTEM_NFS,
*
- * * #CONFIGURE_FILESYSTEM_RFS, and
+ * * @ref CONFIGURE_FILESYSTEM_RFS, and
*
- * * #CONFIGURE_FILESYSTEM_TFTPFS.
+ * * @ref CONFIGURE_FILESYSTEM_TFTPFS.
*
* @par Default Configuration
* If this configuration option is undefined, then the described feature is not
@@ -2077,6 +2056,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_DOSFS
+ *
* 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.
@@ -2086,8 +2067,8 @@
* enabled.
*
* @par Notes
- * This filesystem requires a Block Device Cache configuration, see
- * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK.
+ * This filesystem requires a Block Device Cache configuration, see @ref
+ * CONFIGURE_APPLICATION_NEEDS_LIBBLOCK.
*/
#define CONFIGURE_FILESYSTEM_DOSFS
@@ -2096,6 +2077,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_FTPFS
+ *
* 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.
@@ -2111,6 +2094,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_IMFS
+ *
* 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.
@@ -2132,6 +2117,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_JFFS2
+ *
* 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.
@@ -2147,6 +2134,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_NFS
+ *
* 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.
@@ -2162,6 +2151,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_RFS
+ *
* 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.
@@ -2171,8 +2162,8 @@
* enabled.
*
* @par Notes
- * This filesystem requires a Block Device Cache configuration, see
- * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK.
+ * This filesystem requires a Block Device Cache configuration, see @ref
+ * CONFIGURE_APPLICATION_NEEDS_LIBBLOCK.
*/
#define CONFIGURE_FILESYSTEM_RFS
@@ -2181,6 +2172,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_FILESYSTEM_TFTPFS
+ *
* 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.
@@ -2196,6 +2189,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_CHMOD
+ *
* In case this configuration option is defined, then the root IMFS does not
* support changing the mode of files (no support for chmod()).
*
@@ -2210,6 +2205,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_CHOWN
+ *
* In case this configuration option is defined, then the root IMFS does not
* support changing the ownership of files (no support for chown()).
*
@@ -2224,6 +2221,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_LINK
+ *
* In case this configuration option is defined, then the root IMFS does not
* support hard links (no support for link()).
*
@@ -2238,6 +2237,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_MKNOD
+ *
* In case this configuration option is defined, then the root IMFS does not
* support making files (no support for mknod()).
*
@@ -2252,6 +2253,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
+ *
* In case this configuration option is defined, then the root IMFS does not
* support making device files.
*
@@ -2266,6 +2269,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+ *
* In case this configuration option is defined, then the root IMFS does not
* support making regular files.
*
@@ -2280,6 +2285,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_MOUNT
+ *
* In case this configuration option is defined, then the root IMFS does not
* support mounting other filesystems (no support for mount()).
*
@@ -2294,6 +2301,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_READDIR
+ *
* In case this configuration option is defined, then the root IMFS does not
* support reading directories (no support for readdir()). It is still
* possible to open files in a directory.
@@ -2309,6 +2318,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_READLINK
+ *
* In case this configuration option is defined, then the root IMFS does not
* support reading symbolic links (no support for readlink()).
*
@@ -2323,6 +2334,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_RENAME
+ *
* In case this configuration option is defined, then the root IMFS does not
* support renaming files (no support for rename()).
*
@@ -2337,6 +2350,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_RMNOD
+ *
* In case this configuration option is defined, then the root IMFS does not
* support removing files (no support for rmnod()).
*
@@ -2351,6 +2366,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_SYMLINK
+ *
* In case this configuration option is defined, then the root IMFS does not
* support creating symbolic links (no support for symlink()).
*
@@ -2365,6 +2382,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_UNMOUNT
+ *
* In case this configuration option is defined, then the root IMFS does not
* support unmounting other filesystems (no support for unmount()).
*
@@ -2379,6 +2398,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_DISABLE_UTIME
+ *
* In case this configuration option is defined, then the root IMFS does not
* support changing file times (no support for utime()).
*
@@ -2393,6 +2414,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IMFS_ENABLE_MKFIFO
+ *
* In case this configuration option is defined, then the root IMFS supports
* making FIFOs.
*
@@ -2407,14 +2430,16 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+ *
* The value of this configuration option defines the block size for in-memory
* files managed by the IMFS.
*
* @par Default Value
* The default value is 128.
*
- * @par Value Constraints
- * The value of this configuration option shall be equal to 16, 32, 64, 128,
+ * @par Constraints
+ * The value of the configuration option shall be equal to 16, 32, 64, 128,
* 256, or 512.
*
* @par Notes
@@ -2450,11 +2475,41 @@
*/
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+/* Generated from spec:/acfg/if/jffs2-delayed-write-task-priority */
+
+/**
+ * @brief This configuration option is an integer define.
+ *
+ * @anchor CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY
+ *
+ * The value of this configuration option defines the JFFS2 delayed write task
+ * priority.
+ *
+ * @par Default Value
+ * The default value is 15.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this configuration option:
+ *
+ * * The configuration option is not included in the pre-qualified feature set
+ * of RTEMS. Applications which are restricted to only use interfaces of the
+ * pre-qualified feature set of RTEMS shall not use the configuration option.
+ *
+ * * The value of the configuration option shall be a valid Classic API task
+ * priority. The set of valid task priorities depends on the scheduler
+ * configuration.
+ * @endparblock
+ */
+#define CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY
+
/* Generated from spec:/acfg/if/use-devfs-as-base-filesystem */
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
+ *
* 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).
*
@@ -2467,29 +2522,29 @@
* In case this configuration option is defined, then the following
* configuration options will be defined as well
*
- * * #CONFIGURE_IMFS_DISABLE_CHMOD,
+ * * @ref CONFIGURE_IMFS_DISABLE_CHMOD,
*
- * * #CONFIGURE_IMFS_DISABLE_CHOWN,
+ * * @ref CONFIGURE_IMFS_DISABLE_CHOWN,
*
- * * #CONFIGURE_IMFS_DISABLE_LINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_LINK,
*
- * * #CONFIGURE_IMFS_DISABLE_MKNOD_FILE,
+ * * @ref CONFIGURE_IMFS_DISABLE_MKNOD_FILE,
*
- * * #CONFIGURE_IMFS_DISABLE_MOUNT,
+ * * @ref CONFIGURE_IMFS_DISABLE_MOUNT,
*
- * * #CONFIGURE_IMFS_DISABLE_READDIR,
+ * * @ref CONFIGURE_IMFS_DISABLE_READDIR,
*
- * * #CONFIGURE_IMFS_DISABLE_READLINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_READLINK,
*
- * * #CONFIGURE_IMFS_DISABLE_RENAME,
+ * * @ref CONFIGURE_IMFS_DISABLE_RENAME,
*
- * * #CONFIGURE_IMFS_DISABLE_RMNOD,
+ * * @ref CONFIGURE_IMFS_DISABLE_RMNOD,
*
- * * #CONFIGURE_IMFS_DISABLE_SYMLINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK,
*
- * * #CONFIGURE_IMFS_DISABLE_UTIME, and
+ * * @ref CONFIGURE_IMFS_DISABLE_UTIME, and
*
- * * #CONFIGURE_IMFS_DISABLE_UNMOUNT.
+ * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT.
*
* In addition, a simplified path evaluation is enabled. It allows only a look
* up of absolute paths.
@@ -2506,6 +2561,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+ *
* 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).
*
@@ -2518,21 +2575,21 @@
* In case this configuration option is defined, then the following
* configuration options will be defined as well
*
- * * #CONFIGURE_IMFS_DISABLE_CHMOD,
+ * * @ref CONFIGURE_IMFS_DISABLE_CHMOD,
*
- * * #CONFIGURE_IMFS_DISABLE_CHOWN,
+ * * @ref CONFIGURE_IMFS_DISABLE_CHOWN,
*
- * * #CONFIGURE_IMFS_DISABLE_LINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_LINK,
*
- * * #CONFIGURE_IMFS_DISABLE_READLINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_READLINK,
*
- * * #CONFIGURE_IMFS_DISABLE_RENAME,
+ * * @ref CONFIGURE_IMFS_DISABLE_RENAME,
*
- * * #CONFIGURE_IMFS_DISABLE_SYMLINK,
+ * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK,
*
- * * #CONFIGURE_IMFS_DISABLE_UTIME, and
+ * * @ref CONFIGURE_IMFS_DISABLE_UTIME, and
*
- * * #CONFIGURE_IMFS_DISABLE_UNMOUNT.
+ * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT.
* @endparblock
*/
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
@@ -2557,6 +2614,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_DIRTY_MEMORY
+ *
* 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.
@@ -2569,20 +2628,55 @@
* @parblock
* 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
- * #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is also defined, then the memory is
+ * 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 #CONFIGURE_MALLOC_DIRTY.
+ * See also @ref CONFIGURE_MALLOC_DIRTY.
* @endparblock
*/
#define CONFIGURE_DIRTY_MEMORY
+/* Generated from spec:/acfg/if/disable-bsp-settings */
+
+/**
+ * @brief This configuration option is a boolean feature define.
+ *
+ * @anchor CONFIGURE_DISABLE_BSP_SETTINGS
+ *
+ * In case this configuration option is defined, then the optional BSP provided
+ * settings listed below are disabled.
+ *
+ * The optional BSP provided default values for the following application
+ * configuration options are disabled:
+ *
+ * * @ref CONFIGURE_IDLE_TASK_BODY
+ *
+ * * @ref CONFIGURE_IDLE_TASK_STACK_SIZE
+ *
+ * * @ref CONFIGURE_INTERRUPT_STACK_SIZE
+ *
+ * The optional BSP provided initial extension set is disabled (see initial
+ * extension sets). The optional BSP provided prerequisite IO device drivers
+ * are disabled (see Device Driver Configuration). The optional BSP provided
+ * support for sbrk() is disabled.
+ *
+ * This configuration option provides an all or nothing choice with respect to
+ * the optional BSP provided settings.
+ *
+ * @par Default Configuration
+ * If this configuration option is undefined, then the described feature is not
+ * enabled.
+ */
+#define CONFIGURE_DISABLE_BSP_SETTINGS
+
/* Generated from spec:/acfg/if/disable-newlib-reentrancy */
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+ *
* In case this configuration option is defined, then the Newlib reentrancy
* support per thread is disabled and a global reentrancy structure is used.
*
@@ -2603,6 +2697,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_EXECUTIVE_RAM_SIZE
+ *
* The value of this configuration option defines the RTEMS Workspace size in
* bytes.
*
@@ -2611,19 +2707,19 @@
* stack space size is calculated by ``<rtems/confdefs.h>`` based on the values
* configuration options.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINTPTR_MAX</a>.
*
- * * 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 value of the configuration option 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.
* @endparblock
*
* @par Notes
@@ -2637,6 +2733,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_EXTRA_TASK_STACKS
+ *
* 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>``.
@@ -2644,15 +2742,16 @@
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*
@@ -2663,19 +2762,42 @@
*/
#define CONFIGURE_EXTRA_TASK_STACKS
+/* Generated from spec:/acfg/if/init */
+
+/**
+ * @brief This configuration option is a boolean feature define.
+ *
+ * @anchor CONFIGURE_INIT
+ *
+ * While this configuration option is defined, when the ``<rtems/confdefs.h>``
+ * is included, the system settings defined by present application
+ * configuration options are statically allocated and initialized. All user
+ * provided application configuration options defined before the include of
+ * ``<rtems/confdefs.h>`` are evaluated. They define the actual system
+ * settings.
+ *
+ * @par Default Configuration
+ * There is no default configuration associated with this configuration option.
+ * If ``<rtems/confdefs.h>`` is included and this configuration option is not
+ * defined, then only white space is included.
+ */
+#define CONFIGURE_INIT
+
/* Generated from spec:/acfg/if/initial-extensions */
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_INITIAL_EXTENSIONS
+ *
* The value of this configuration option is used to initialize the table of
* initial user extensions.
*
* @par Default Value
* The default value is the empty list.
*
- * @par Value Constraints
- * The value of this configuration option shall be a list of initializers for
+ * @par Constraints
+ * The value of the configuration option shall be a list of initializers for
* structures of type ::rtems_extensions_table.
*
* @par Notes
@@ -2690,32 +2812,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_INTERRUPT_STACK_SIZE
+ *
* The value of this configuration option defines the size of an interrupt
* stack in bytes.
*
* @par Default Value
- * The default value is #BSP_INTERRUPT_STACK_SIZE in case it is defined,
- * otherwise the default value is #CPU_STACK_MINIMUM_SIZE.
+ * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not
+ * defined and #BSP_INTERRUPT_STACK_SIZE is provided by the BSP, then the
+ * default value is defined by #BSP_INTERRUPT_STACK_SIZE, otherwise the default
+ * value is #CPU_STACK_MINIMUM_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to a BSP-specific and
- * application-specific minimum value.
+ * * The value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * interrupt stack area calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
*
- * * It shall be aligned according to #CPU_INTERRUPT_STACK_ALIGNMENT.
+ * * The value of the configuration option shall be aligned according to
+ * #CPU_INTERRUPT_STACK_ALIGNMENT.
* @endparblock
*
* @par Notes
* @parblock
- * There is one interrupt stack available for each configured processor
- * (#CONFIGURE_MAXIMUM_PROCESSORS). The interrupt stack areas are statically
+ * 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.
*
@@ -2723,12 +2850,12 @@
* to perform the sequential system initialization before the multithreading is
* started.
*
- * The interrupt stacks are covered by the stack checker, see
- * #CONFIGURE_STACK_CHECKER_ENABLED. However, using a too small interrupt
- * stack size may still result in undefined behaviour.
+ * The interrupt stacks are covered by the stack checker, see @ref
+ * 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
- * #CONFIGURE_MINIMUM_TASK_STACK_SIZE instead of #CPU_STACK_MINIMUM_SIZE.
+ * In releases before RTEMS 5.1 the default value was @ref
+ * CONFIGURE_MINIMUM_TASK_STACK_SIZE instead of #CPU_STACK_MINIMUM_SIZE.
* @endparblock
*/
#define CONFIGURE_INTERRUPT_STACK_SIZE
@@ -2738,6 +2865,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_MALLOC_DIRTY
+ *
* In case this configuration option is defined, then each memory area returned
* by C Program Heap allocator functions such as malloc() is dirtied with a
* ``0xCF`` byte pattern before it is handed over to the application.
@@ -2748,8 +2877,8 @@
*
* @par Notes
* The dirtying performed by this option is carried out for each successful
- * memory allocation from the C Program Heap in contrast to
- * #CONFIGURE_DIRTY_MEMORY which dirties the memory only once during the system
+ * 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
@@ -2759,25 +2888,27 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
+ *
* The value of this configuration option defines the maximum number of file
* like objects that can be concurrently open.
*
* @par Default Value
* The default value is 3.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
*
- * * 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 value of the configuration option 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.
* @endparblock
*
* @par Notes
@@ -2791,6 +2922,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_PROCESSORS
+ *
* 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
@@ -2800,14 +2933,15 @@
* @par Default Value
* The default value is 1.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to one.
+ * * The value of the configuration option shall be greater than or equal to
+ * one.
*
- * * It shall be less than or equal to #CPU_MAXIMUM_PROCESSORS.
+ * * The value of the configuration option shall be less than or equal to
+ * #CPU_MAXIMUM_PROCESSORS.
* @endparblock
*
* @par Notes
@@ -2815,43 +2949,95 @@
* 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
+ * This configuration option is only evaluated in SMP configurations of RTEMS
+ * (e.g. RTEMS was built with the SMP build configuration option enabled). In
* all other configurations it has no effect.
* @endparblock
*/
#define CONFIGURE_MAXIMUM_PROCESSORS
+/* Generated from spec:/acfg/if/max-thread-local-storage-size */
+
+/**
+ * @brief This configuration option is an integer define.
+ *
+ * @anchor CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
+ *
+ * If the value of this configuration option is greater than zero, then it
+ * defines the maximum thread-local storage size, otherwise the thread-local
+ * storage size is defined by the linker depending on the thread-local storage
+ * objects used by the application in the statically-linked executable.
+ *
+ * @par Default Value
+ * The default value is 0.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this configuration option:
+ *
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
+ *
+ * * The value of the configuration option shall be less than or equal to <a
+ * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
+ *
+ * * The value of the configuration option shall be an integral multiple of
+ * #RTEMS_TASK_STORAGE_ALIGNMENT.
+ * @endparblock
+ *
+ * @par Notes
+ * @parblock
+ * This configuration option can be used to reserve space for the dynamic
+ * linking of modules with thread-local storage objects.
+ *
+ * If the thread-local storage size defined by the thread-local storage objects
+ * used by the application in the statically-linked executable is greater than
+ * a non-zero value of this configuration option, then a fatal error will occur
+ * during system initialization.
+ *
+ * Use RTEMS_ALIGN_UP() and #RTEMS_TASK_STORAGE_ALIGNMENT to adjust the size to
+ * meet the minimum alignment requirement of a thread-local storage area.
+ *
+ * The actual thread-local storage size is determined when the application
+ * executable is linked. The ``rtems-exeinfo`` command line tool included in
+ * the RTEMS Tools can be used to obtain the thread-local storage size and
+ * alignment of an application executable.
+ * @endparblock
+ */
+#define CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
+
/* Generated from spec:/acfg/if/max-thread-name-size */
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
+ *
* The value of this configuration option defines the maximum thread name size
* including the terminating ``NUL`` character.
*
* @par Default Value
* The default value is 16.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
*
- * * 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 value of the configuration option 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.
* @endparblock
*
* @par Notes
* @parblock
* The default value was chosen for Linux compatibility, see <a
- * href=http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>PTHREAD_SETNAME_NP(3)</a>.
+ * href="http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html">pthread_setname_np()</a>.
*
* The size of the thread control block is increased by the maximum thread name
* size.
@@ -2866,6 +3052,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MEMORY_OVERHEAD
+ *
* 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>``.
@@ -2873,28 +3061,29 @@
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * 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 value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*
* @par Notes
* 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
- * #CONFIGURE_MESSAGE_BUFFER_MEMORY.
+ * for all message queue buffers or task stacks, see @ref
+ * CONFIGURE_MESSAGE_BUFFER_MEMORY.
*/
#define CONFIGURE_MEMORY_OVERHEAD
@@ -2903,32 +3092,35 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MESSAGE_BUFFER_MEMORY
+ *
* The value of this configuration option defines the number of bytes reserved
* for message queue buffers in the RTEMS Workspace.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * 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 value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*
* @par Notes
* @parblock
- * The configuration options #CONFIGURE_MAXIMUM_MESSAGE_QUEUES and
- * #CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES define only how many message queues
+ * 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 depends on the maximum number of
@@ -2980,6 +3172,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MICROSECONDS_PER_TICK
+ *
* The value of this configuration option defines the length of time in
* microseconds between clock ticks (clock tick quantum).
*
@@ -3001,14 +3195,15 @@
* @par Default Value
* The default value is 10000.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to a value defined by the Clock Driver.
+ * * The value of the configuration option shall be greater than or equal to a
+ * value defined by the Clock Driver.
*
- * * It shall be less than or equal to a value defined by the Clock Driver.
+ * * The value of the configuration option shall be less than or equal to a
+ * value defined by the Clock Driver.
*
* * The resulting clock ticks per second should be an integer.
* @endparblock
@@ -3016,7 +3211,7 @@
* @par Notes
* @parblock
* This configuration option has no impact if the Clock Driver is not
- * configured, see #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER.
+ * 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.
@@ -3029,30 +3224,32 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MINIMUM_TASK_STACK_SIZE
+ *
* The value of this configuration option defines the minimum stack size in
* bytes for every user task or thread in the system.
*
* @par Default Value
* The default value is #CPU_STACK_MINIMUM_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It shall be greater than or equal to a BSP-specific and
- * application-specific minimum value.
+ * * The value of the configuration option shall be greater than or equal to a
+ * BSP-specific and application-specific minimum value.
* @endparblock
*
* @par Notes
* @parblock
* Adjusting this parameter should be done with caution. Examining the actual
* stack usage using the stack checker usage reporting facility is recommended
- * (see also #CONFIGURE_STACK_CHECKER_ENABLED).
+ * (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.
@@ -3064,11 +3261,11 @@
* 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
- * #CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE configuration option.
+ * 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 #CONFIGURE_INTERRUPT_STACK_SIZE.
+ * used to define the default value of @ref CONFIGURE_INTERRUPT_STACK_SIZE.
* @endparblock
*/
#define CONFIGURE_MINIMUM_TASK_STACK_SIZE
@@ -3078,6 +3275,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_STACK_CHECKER_ENABLED
+ *
* In case this configuration option is defined, then the stack checker is
* enabled.
*
@@ -3101,26 +3300,28 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_TICKS_PER_TIMESLICE
+ *
* The value of this configuration option defines the length of the timeslice
* quantum in ticks for each task.
*
* @par Default Value
* The default value is 50.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * one.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
* @par Notes
* This configuration option has no impact if the Clock Driver is not
- * configured, see #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER.
+ * configured, see @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER.
*/
#define CONFIGURE_TICKS_PER_TIMESLICE
@@ -3129,6 +3330,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_UNIFIED_WORK_AREAS
+ *
* In case this configuration option is defined, then the RTEMS Workspace and
* the C Program Heap will be one pool of memory.
*
@@ -3144,7 +3347,7 @@
* pool is very undesirable.
*
* In high memory environments, this is desirable when you want to use the <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a> 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.
* @endparblock
@@ -3156,18 +3359,20 @@
/**
* @brief This configuration option is an integer define.
*
- * If #CONFIGURE_UNLIMITED_OBJECTS is defined, then the value of this
+ * @anchor CONFIGURE_UNLIMITED_ALLOCATION_SIZE
+ *
+ * If @ref CONFIGURE_UNLIMITED_OBJECTS is defined, then the value of this
* configuration option defines the default objects maximum of all object
* classes supporting <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a> to ``rtems_resource_unlimited(
* CONFIGURE_UNLIMITED_ALLOCATION_SIZE )``.
*
* @par Default Value
* The default value is 8.
*
- * @par Value Constraints
- * The value of this configuration option shall meet the constraints of all
+ * @par Constraints
+ * The value of the configuration option shall meet the constraints of all
* object classes to which it is applied.
*
* @par Notes
@@ -3186,6 +3391,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_UNLIMITED_OBJECTS
+ *
* In case this configuration option is defined, then unlimited objects are
* used by default.
*
@@ -3195,14 +3402,14 @@
*
* @par Notes
* @parblock
- * When using unlimited objects, it is common practice to also specify
- * #CONFIGURE_UNIFIED_WORK_AREAS so the system operates with a single pool of
+ * 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 #CONFIGURE_UNLIMITED_ALLOCATION_SIZE.
+ * See also @ref CONFIGURE_UNLIMITED_ALLOCATION_SIZE.
* @endparblock
*/
#define CONFIGURE_UNLIMITED_OBJECTS
@@ -3212,6 +3419,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
+ *
* In case this configuration option is defined, then the system initialization
* is verbose.
*
@@ -3230,6 +3439,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
+ *
* 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.
@@ -3241,7 +3452,7 @@
* @par Notes
* 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 #CONFIGURE_DIRTY_MEMORY is also defined, then the memory is first
+ * case @ref CONFIGURE_DIRTY_MEMORY is also defined, then the memory is first
* dirtied and then zeroed.
*/
#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
@@ -3265,14 +3476,18 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_IDLE_TASK_BODY
+ *
* The value of this configuration option initializes the IDLE thread body.
*
* @par Default Value
- * If #BSP_IDLE_TASK_BODY is defined, then this will be the default value,
- * otherwise the default value is ``_CPU_Thread_Idle_body``.
+ * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not
+ * defined and #BSP_IDLE_TASK_BODY is provided by the BSP, then the default
+ * value is defined by #BSP_IDLE_TASK_BODY, otherwise the default value is
+ * ``_CPU_Thread_Idle_body``.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void *( *idle_body )( uintptr_t )``.
*
* @par Notes
@@ -3282,7 +3497,12 @@
* exists.
*
* IDLE threads can be used to initialize the application, see configuration
- * option #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION.
+ * option @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION.
+ *
+ * The BSP may have knowledge of the specific CPU model, system controller
+ * logic, and peripheral buses, so a BSP-specific IDLE task may be capable of
+ * turning components off to save power during extended periods of no task
+ * activity.
* @endparblock
*/
#define CONFIGURE_IDLE_TASK_BODY
@@ -3292,6 +3512,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
+ *
* 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
@@ -3311,19 +3533,24 @@
* 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 #CONFIGURE_IDLE_TASK_BODY configuration option,
+ * 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
+ * The application shall define at least one of the following configuration
* options
*
- * * #CONFIGURE_RTEMS_INIT_TASKS_TABLE,
+ * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE,
*
- * * #CONFIGURE_POSIX_INIT_THREAD_TABLE, or
+ * * @ref CONFIGURE_POSIX_INIT_THREAD_TABLE, or
*
* * ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION``
*
* otherwise a compile time error in the configuration file will occur.
+ *
+ * If no Classic API initialization task and no POSIX API initialization thread
+ * is configured, then no <a
+ * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global
+ * Construction</a> is performed.
* @endparblock
*/
#define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
@@ -3333,31 +3560,92 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_IDLE_TASK_STACK_SIZE
+ *
* The value of this configuration option defines the task stack size for an
* IDLE task.
*
* @par Default Value
- * The default value is #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not
+ * defined and #BSP_IDLE_TASK_STACK_SIZE is provided by the BSP, then the
+ * default value is defined by #BSP_IDLE_TASK_STACK_SIZE, otherwise the default
+ * value is defined by the @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE configuration
+ * option.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to a BSP-specific and
- * application-specific minimum value.
+ * * The value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
+ * * The value of the configuration option 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 <a
+ * href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
* @endparblock
*
* @par Notes
* In SMP configurations, there is one IDLE task per configured processor, see
- * #CONFIGURE_MAXIMUM_PROCESSORS.
+ * @ref CONFIGURE_MAXIMUM_PROCESSORS.
*/
#define CONFIGURE_IDLE_TASK_STACK_SIZE
+/* Generated from spec:/acfg/if/idle-task-storage-size */
+
+/**
+ * @brief This configuration option is an integer define.
+ *
+ * @anchor CONFIGURE_IDLE_TASK_STORAGE_SIZE
+ *
+ * If this configuration option is specified, then the task storage areas for
+ * the IDLE tasks are statically allocated by ``<rtems/confdefs.h>``. The
+ * value of this configuration option defines the size in bytes of the task
+ * storage area of each IDLE task in the system.
+ *
+ * @par Default Value
+ * This configuration option has no default value. If it is not specified,
+ * then the task storage area for each IDLE task will allocated from the RTEMS
+ * Workspace or through a custom IDLE task stack allocator.
+ *
+ * @par Constraints
+ * The value of the configuration option shall be greater than or equal to @ref
+ * CONFIGURE_IDLE_TASK_STACK_SIZE.
+ *
+ * @par Notes
+ * @parblock
+ * By default, the IDLE task storage areas are allocated from the RTEMS
+ * Workspace. Applications which do not want to use a heap allocator can use
+ * this configuration option to use statically allocated memory for the IDLE
+ * task storage areas. The task storage area contains the task stack, the
+ * thread-local storage, and the floating-point context on architectures with a
+ * separate floating-point context. The size of the thread-local storage area
+ * is defined at link time or by the @ref
+ * CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE configuration option. You have
+ * to estimate the actual thread-local storage size if you want to use this
+ * configuration option. If the IDLE task stack size would be less than the
+ * value defined by the @ref CONFIGURE_IDLE_TASK_STACK_SIZE configuration
+ * option, for example because the thread-local storage size is larger than
+ * expected, then the system terminates with the INTERNAL_ERROR_CORE fatal
+ * source and the INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL fatal code during
+ * system initialization.
+ *
+ * The value of this configuration option is passed to
+ * RTEMS_TASK_STORAGE_SIZE() by ``<rtems/confdefs.h>`` to determine the actual
+ * size of the statically allocated area to take architecture-specific
+ * overheads into account.
+ *
+ * The
+ *
+ * * ``CONFIGURE_IDLE_TASK_STORAGE_SIZE``, and
+ *
+ * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+ *
+ * configuration options are mutually exclusive.
+ * @endparblock
+ */
+#define CONFIGURE_IDLE_TASK_STORAGE_SIZE
+
/** @} */
/* Generated from spec:/acfg/if/group-mpci */
@@ -3368,12 +3656,13 @@
*
* @ingroup RTEMSApplConfig
*
- * 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 #CONFIGURE_MP_APPLICATION is defined. The multiprocessing (MPCI)
- * support must not be confused with the SMP support.
+ * This section describes multiprocessing related configuration options. The
+ * options are only used if RTEMS was built when the multiprocessing build
+ * configuration option is enabled. The multiprocessing configuration is
+ * distinct from the SMP configuration. 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.
*
* @{
*/
@@ -3383,32 +3672,34 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
+ *
* The value of this configuration option defines the number of bytes the
- * applications wishes to add to the MPCI task stack on top of
- * #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * applications wishes to add to the MPCI task stack on top of @ref
+ * CONFIGURE_MINIMUM_TASK_STACK_SIZE.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
*
- * * 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 <a
+ * * The value of the configuration option 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 <a
* href="https://en.cppreference.com/w/c/types/size_t">size_t</a>.
* @endparblock
*
* @par Notes
- * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
*/
#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
@@ -3417,6 +3708,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_MP_APPLICATION
+ *
* 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.
@@ -3427,9 +3720,9 @@
*
* @par Notes
* 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.
+ * is not enabled (e.g. RTEMS was built without the multiprocessing build
+ * configuration option enabled). Otherwise a compile time error in the
+ * configuration file will occur.
*/
#define CONFIGURE_MP_APPLICATION
@@ -3438,20 +3731,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+ *
* The value of this configuration option defines the maximum number of
* concurrently active global objects in a multiprocessor system.
*
* @par Default Value
* The default value is 32.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
@@ -3460,8 +3755,8 @@
* 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 #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
* @endparblock
*/
#define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
@@ -3471,26 +3766,28 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MP_MAXIMUM_NODES
+ *
* The value of this configuration option defines the maximum number of nodes
* in a multiprocessor system.
*
* @par Default Value
* The default value is 2.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
* @par Notes
- * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
*/
#define CONFIGURE_MP_MAXIMUM_NODES
@@ -3499,6 +3796,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MP_MAXIMUM_PROXIES
+ *
* The value of this configuration option defines the maximum number of
* concurrently active thread/task proxies on this node in a multiprocessor
* system.
@@ -3506,14 +3805,14 @@
* @par Default Value
* The default value is 32.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
@@ -3522,10 +3821,10 @@
* 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 <a
- * href=https://docs.rtems.org/branches/master/c-user/multiprocessing.html#proxies>Proxies</a>.
+ * href="https://docs.rtems.org/branches/master/c-user/multiprocessing.html#proxies">Proxies</a>.
*
- * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
* @endparblock
*/
#define CONFIGURE_MP_MAXIMUM_PROXIES
@@ -3535,14 +3834,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_MP_MPCI_TABLE_POINTER
+ *
* The value of this configuration option initializes the MPCI Configuration
* Table.
*
* @par Default Value
* The default value is ``&MPCI_table``.
*
- * @par Value Constraints
- * The value of this configuration option shall be a pointer to
+ * @par Constraints
+ * The value of the configuration option shall be a pointer to
* ::rtems_mpci_table.
*
* @par Notes
@@ -3551,8 +3852,8 @@
* Multiprocessor System assuming the BSP provides the proper set of supporting
* methods.
*
- * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
* @endparblock
*/
#define CONFIGURE_MP_MPCI_TABLE_POINTER
@@ -3562,20 +3863,22 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MP_NODE_NUMBER
+ *
* The value of this configuration option defines the node number of this node
* in a multiprocessor system.
*
* @par Default Value
* The default value is ``NODE_NUMBER``.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>.
* @endparblock
*
@@ -3586,8 +3889,8 @@
* ``NODE_NUMBER`` set to different values. The test programs behave
* differently based upon their node number.
*
- * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is
- * defined.
+ * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION
+ * is defined.
* @endparblock
*/
#define CONFIGURE_MP_NODE_NUMBER
@@ -3603,8 +3906,8 @@
*
* 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.
+ * signals and timers are only available if RTEMS was built with the enable
+ * POSIX build configuration option.
*
* @{
*/
@@ -3614,34 +3917,37 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_KEYS
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Keys that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_POSIX_KEYS
@@ -3651,36 +3957,39 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
+ *
* The value of this configuration option defines the maximum number of key
* value pairs used by POSIX API Keys that can be concurrently active.
*
* @par Default Value
- * The default value is #CONFIGURE_MAXIMUM_POSIX_KEYS *
- * #CONFIGURE_MAXIMUM_TASKS + #CONFIGURE_MAXIMUM_POSIX_THREADS.
+ * The default value is @ref CONFIGURE_MAXIMUM_POSIX_KEYS * ( @ref
+ * CONFIGURE_MAXIMUM_TASKS + @ref CONFIGURE_MAXIMUM_POSIX_THREADS ).
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
* A key value pair is created by pthread_setspecific() if the value is not <a
@@ -3695,40 +4004,44 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Message Queues that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It may be defined through rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>. You have to account for the memory used to store the messages
- * of each message queue, see #CONFIGURE_MESSAGE_BUFFER_MEMORY.
+ * of each message queue, see @ref CONFIGURE_MESSAGE_BUFFER_MEMORY.
*/
#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
@@ -3737,38 +4050,42 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Queued Signals that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * 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 value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
- * without the ``RTEMS_POSIX_API = True`` build configuration option).
- * Otherwise a compile time error in the configuration file will occur.
+ * * The value of the configuration option shall be zero if the POSIX API is
+ * not enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True``
+ * build configuration option). Otherwise a compile time error in the
+ * configuration file will occur.
* @endparblock
*
* @par Notes
* @parblock
* Unlimited objects are not available for queued signals.
*
- * Queued signals are only available if RTEMS was built with the
- * ``--enable-posix`` build configuration option.
+ * Queued signals are only available if RTEMS was built with the POSIX API
+ * build configuration option enabled.
* @endparblock
*/
#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
@@ -3778,39 +4095,43 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Named Semaphores that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It may be defined through rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
* Named semaphores are created with sem_open(). Semaphores initialized with
@@ -3825,38 +4146,42 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_SHMS
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Shared Memory objects that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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
- * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
+ * * The value of the configuration option shall be small enough so that the
+ * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>``
+ * does not overflow an integer of type <a
+ * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It may be defined through rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
* @endparblock
*
* @par Notes
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*/
#define CONFIGURE_MAXIMUM_POSIX_SHMS
@@ -3866,44 +4191,48 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_THREADS
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Threads that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
* 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 #CONFIGURE_EXTRA_TASK_STACKS is
- * used to specify thread stack requirements **above** the minimum size
+ * support enabled. The configuration option @ref CONFIGURE_EXTRA_TASK_STACKS
+ * is used to specify thread stack requirements **above** the minimum size
* required.
*
- * The maximum number of Classic API Tasks is specified by
- * #CONFIGURE_MAXIMUM_TASKS.
+ * The maximum number of Classic API Tasks is specified by @ref
+ * CONFIGURE_MAXIMUM_TASKS.
*
* All POSIX threads have floating point enabled.
* @endparblock
@@ -3915,43 +4244,47 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_POSIX_TIMERS
+ *
* The value of this configuration option defines the maximum number of POSIX
* API Timers that can be concurrently active.
*
* @par Default Value
* The default value is 0.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to 65535.
+ * * The value of the configuration option 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.
+ * * The value of the configuration option 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 rtems_resource_unlimited() the enable unlimited
- * objects for the object class, if the value passed to
- * rtems_resource_unlimited() satisfies all other constraints of the
- * configuration option.
+ * * The value of the configuration option may be defined through
+ * rtems_resource_unlimited() the enable unlimited objects for the object
+ * class, if the value passed to rtems_resource_unlimited() satisfies all
+ * other constraints of the configuration option.
*
- * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built
- * without the ``RTEMS_POSIX_API = True`` build configuration option).
- * Otherwise a compile time error in the configuration file will occur.
+ * * The value of the configuration option shall be zero if the POSIX API is
+ * not enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True``
+ * build configuration option). Otherwise a compile time error in the
+ * configuration file will occur.
* @endparblock
*
* @par Notes
* @parblock
* This object class can be configured in unlimited allocation mode, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited
+ * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited
* Objects</a>.
*
- * Timers are only available if RTEMS was built with the ``--enable-posix``
- * build configuration option.
+ * Timers are only available if RTEMS was built with the POSIX API build
+ * configuration option enabled.
* @endparblock
*/
#define CONFIGURE_MAXIMUM_POSIX_TIMERS
@@ -3961,24 +4294,26 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
+ *
* The value of this configuration option defines the minimum stack size in
* bytes for every POSIX thread in the system.
*
* @par Default Value
- * The default value is two times the value of
- * #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * The default value is two times the value of @ref
+ * CONFIGURE_MINIMUM_TASK_STACK_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
*
- * * It shall be greater than or equal to a BSP-specific and
- * application-specific minimum value.
+ * * The value of the configuration option shall be greater than or equal to a
+ * BSP-specific and application-specific minimum value.
* @endparblock
*/
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
@@ -4004,14 +4339,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
+ *
* The value of this configuration option initializes the entry point of the
* POSIX API initialization thread.
*
* @par Default Value
* The default value is ``POSIX_Init``.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void *( *entry_point )( void * )``.
*
* @par Notes
@@ -4025,21 +4362,24 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
+ *
* The value of this configuration option defines the thread stack size of the
* POSIX API initialization thread.
*
* @par Default Value
- * The default value is #CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE.
+ * The default value is @ref CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
+ * * The value of the configuration option 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 <a
+ * * The value of the configuration option shall be small enough so that the
+ * task stack space calculation carried out by ``<rtems/confdefs.h>`` does
+ * not overflow an integer of type <a
* href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>.
* @endparblock
*/
@@ -4050,6 +4390,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_POSIX_INIT_THREAD_TABLE
+ *
* In case this configuration option is defined, then exactly one POSIX
* initialization thread is configured.
*
@@ -4059,16 +4401,21 @@
*
* @par Notes
* @parblock
- * The application shall define exactly one of the following configuration
+ * The application shall define at least one of the following configuration
* options
*
- * * #CONFIGURE_RTEMS_INIT_TASKS_TABLE,
+ * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE,
*
* * ``CONFIGURE_POSIX_INIT_THREAD_TABLE``, or
*
- * * #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
+ * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
*
* otherwise a compile time error in the configuration file will occur.
+ *
+ * If no Classic API initialization task is configured, then the POSIX API
+ * initialization thread performs the <a
+ * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global
+ * Construction</a>.
* @endparblock
*/
#define CONFIGURE_POSIX_INIT_THREAD_TABLE
@@ -4090,16 +4437,16 @@
* described in this section.
*
* By default, the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic
* Priority Scheduler</a> algorithm is used in uniprocessor configurations. In
- * case SMP is enabled and the configured maximum processors
- * (#CONFIGURE_MAXIMUM_PROCESSORS) is greater than one, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest
+ * case SMP is enabled and the configured maximum processors (@ref
+ * CONFIGURE_MAXIMUM_PROCESSORS) is greater than one, then the <a
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest
* Deadline First SMP Scheduler</a> is selected as the default scheduler
* algorithm.
*
* For the schedulers provided by RTEMS (see <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html>Scheduling
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/index.html">Scheduling
* Concepts</a>), the configuration is straightforward. All that is required
* is to define the configuration option which specifies which scheduler you
* want for in your application.
@@ -4116,30 +4463,32 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_CBS_MAXIMUM_SERVERS
+ *
* The value of this configuration option defines the maximum number Constant
* Bandwidth Servers that can be concurrently active.
*
* @par Default Value
- * The default value is #CONFIGURE_MAXIMUM_TASKS.
+ * The default value is @ref CONFIGURE_MAXIMUM_TASKS.
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be greater than or equal to zero.
+ * * The value of the configuration option shall be greater than or equal to
+ * zero.
*
- * * It shall be less than or equal to <a
+ * * The value of the configuration option shall be less than or equal to <a
* href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>.
*
- * * 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 value of the configuration option 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.
* @endparblock
*
* @par Notes
- * This configuration option is only evaluated if the configuration option
- * #CONFIGURE_SCHEDULER_CBS is defined.
+ * This configuration option is only evaluated if the configuration option @ref
+ * CONFIGURE_SCHEDULER_CBS is defined.
*/
#define CONFIGURE_CBS_MAXIMUM_SERVERS
@@ -4148,23 +4497,25 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_MAXIMUM_PRIORITY
+ *
* For the following schedulers
*
* * <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic
* Priority Scheduler</a>, which is the default in uniprocessor
- * configurations and can be configured through the
- * #CONFIGURE_SCHEDULER_PRIORITY configuration option,
+ * configurations and can be configured through the @ref
+ * CONFIGURE_SCHEDULER_PRIORITY configuration option,
*
* * <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic
- * Priority SMP Scheduler</a> which can be configured through the
- * #CONFIGURE_SCHEDULER_PRIORITY_SMP configuration option, and
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic
+ * Priority SMP Scheduler</a> which can be configured through the @ref
+ * CONFIGURE_SCHEDULER_PRIORITY_SMP configuration option, and
*
* * <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary
* Processor Affinity Priority SMP Scheduler</a> which can be configured
- * through the #CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP configuration
+ * through the @ref CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP configuration
* option
*
* this configuration option specifies the maximum numeric priority of any task
@@ -4175,8 +4526,8 @@
* @par Default Value
* The default value is 255.
*
- * @par Value Constraints
- * The value of this configuration option shall be equal to 3, 7, 31, 63, 127,
+ * @par Constraints
+ * The value of the configuration option shall be equal to 3, 7, 31, 63, 127,
* or 255.
*
* @par Notes
@@ -4206,6 +4557,8 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_SCHEDULER_ASSIGNMENTS
+ *
* The value of this configuration option is used to initialize the initial
* scheduler to processor assignments.
*
@@ -4213,26 +4566,39 @@
* The default value of this configuration option is computed so that the
* default scheduler is assigned to each configured processor (up to 32).
*
- * @par Value Constraints
+ * @par Constraints
* @parblock
- * The value of this configuration option shall satisfy all of the following
- * constraints:
+ * The following constraints apply to this configuration option:
*
- * * It shall be a list of the following macros:
+ * * The value of the configuration option shall be a list of the following
+ * macros:
*
- * * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``
+ * * ``RTEMS_SCHEDULER_ASSIGN( scheduler_index, attributes )``
*
* * ``RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER``
*
- * * It shall be a list of exactly #CONFIGURE_MAXIMUM_PROCESSORS elements.
+ * The ``scheduler_index`` macro parameter shall be a valid index of the
+ * scheduler table defined by the @ref CONFIGURE_SCHEDULER_TABLE_ENTRIES
+ * configuration option.
+ *
+ * The ``attributes`` macro parameter shall be set to exactly one of the
+ * following constants:
+ *
+ * * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY``
+ *
+ * * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL``
+ *
+ * * The value of the configuration option shall be a list of exactly @ref
+ * CONFIGURE_MAXIMUM_PROCESSORS elements.
* @endparblock
*
* @par Notes
* @parblock
- * This configuration option is only evaluated in SMP configurations.
+ * Where the system was built with SMP support enabled, this configuration
+ * option is evaluated, otherwise it is ignored.
*
* This is an advanced configuration option, see <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a>.
* @endparblock
*/
@@ -4243,8 +4609,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_CBS
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#constant-bandwidth-server-scheduling-cbs>Constant
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#constant-bandwidth-server-scheduling-cbs">Constant
* Bandwidth Server Scheduling (CBS)</a> algorithm is made available to the
* application.
*
@@ -4258,7 +4626,7 @@
* Think twice before you use it.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* exactly one processor.
* @endparblock
@@ -4270,8 +4638,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_EDF
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-scheduler>Earliest
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#earliest-deadline-first-scheduler">Earliest
* Deadline First Scheduler</a> algorithm is made available to the application.
*
* @par Default Configuration
@@ -4284,7 +4654,7 @@
* Think twice before you use it.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* exactly one processor.
* @endparblock
@@ -4296,8 +4666,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_EDF_SMP
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest
* Deadline First SMP Scheduler</a> algorithm is made available to the
* application.
*
@@ -4314,12 +4686,12 @@
* support enabled.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* up to 32 processors.
*
- * This scheduler algorithm is the default in SMP configurations if
- * #CONFIGURE_MAXIMUM_PROCESSORS is greater than one.
+ * This scheduler algorithm is the default in SMP configurations if @ref
+ * CONFIGURE_MAXIMUM_PROCESSORS is greater than one.
* @endparblock
*/
#define CONFIGURE_SCHEDULER_EDF_SMP
@@ -4329,6 +4701,8 @@
/**
* @brief This configuration option is an integer define.
*
+ * @anchor CONFIGURE_SCHEDULER_NAME
+ *
* The value of this configuration option defines the name of the default
* scheduler.
*
@@ -4337,40 +4711,40 @@
* The default value is
*
* * ``"MEDF"`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest
* Deadline First SMP Scheduler</a>,
*
* * ``"MPA "`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary
* Processor Affinity Priority SMP Scheduler</a>,
*
* * ``"MPD "`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic
* Priority SMP Scheduler</a>,
*
* * ``"MPS "`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-smp-scheduler>Simple
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#simple-priority-smp-scheduler">Simple
* Priority SMP Scheduler</a>,
*
* * ``"UCBS"`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#constant-bandwidth-server-scheduling-cbs>Constant
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#constant-bandwidth-server-scheduling-cbs">Constant
* Bandwidth Server Scheduling (CBS)</a>,
*
* * ``"UEDF"`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-scheduler>Earliest
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#earliest-deadline-first-scheduler">Earliest
* Deadline First Scheduler</a>,
*
* * ``"UPD "`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic
* Priority Scheduler</a>, and
*
* * ``"UPS "`` for the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-scheduler>Simple
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#simple-priority-scheduler">Simple
* Priority Scheduler</a>.
* @endparblock
*
- * @par Value Constraints
- * The value of this configuration option shall be convertible to an integer of
+ * @par Constraints
+ * The value of the configuration option shall be convertible to an integer of
* type ::rtems_name.
*
* @par Notes
@@ -4390,8 +4764,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_PRIORITY
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic
* Priority Scheduler</a> algorithm is made available to the application.
*
* @par Default Configuration
@@ -4404,15 +4780,15 @@
* Think twice before you use it.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* exactly one processor.
*
- * This scheduler algorithm is the default when #CONFIGURE_MAXIMUM_PROCESSORS
- * is exactly one.
+ * This scheduler algorithm is the default when @ref
+ * CONFIGURE_MAXIMUM_PROCESSORS is exactly one.
*
- * The memory allocated for this scheduler depends on the
- * #CONFIGURE_MAXIMUM_PRIORITY configuration option.
+ * The memory allocated for this scheduler depends on the @ref
+ * CONFIGURE_MAXIMUM_PRIORITY configuration option.
* @endparblock
*/
#define CONFIGURE_SCHEDULER_PRIORITY
@@ -4422,8 +4798,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary
* Processor Affinity Priority SMP Scheduler</a> algorithm is made available to
* the application.
*
@@ -4440,12 +4818,12 @@
* support enabled.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* up to 32 processors.
*
- * The memory allocated for this scheduler depends on the
- * #CONFIGURE_MAXIMUM_PRIORITY configuration option.
+ * The memory allocated for this scheduler depends on the @ref
+ * CONFIGURE_MAXIMUM_PRIORITY configuration option.
* @endparblock
*/
#define CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
@@ -4455,8 +4833,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_PRIORITY_SMP
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic
* Priority SMP Scheduler</a> algorithm is made available to the application.
*
* @par Default Configuration
@@ -4472,12 +4852,12 @@
* support enabled.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* up to 32 processors.
*
- * The memory allocated for this scheduler depends on the
- * #CONFIGURE_MAXIMUM_PRIORITY configuration option.
+ * The memory allocated for this scheduler depends on the @ref
+ * CONFIGURE_MAXIMUM_PRIORITY configuration option.
* @endparblock
*/
#define CONFIGURE_SCHEDULER_PRIORITY_SMP
@@ -4487,8 +4867,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_SIMPLE
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-scheduler>Simple
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#simple-priority-scheduler">Simple
* Priority Scheduler</a> algorithm is made available to the application.
*
* @par Default Configuration
@@ -4501,7 +4883,7 @@
* Think twice before you use it.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* exactly one processor.
* @endparblock
@@ -4513,8 +4895,10 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_SIMPLE_SMP
+ *
* In case this configuration option is defined, then the <a
- * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-smp-scheduler>Simple
+ * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#simple-priority-smp-scheduler">Simple
* Priority SMP Scheduler</a> algorithm is made available to the application.
*
* @par Default Configuration
@@ -4530,7 +4914,7 @@
* support enabled.
*
* In case no explicit <a
- * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
* Scheduler Configuration</a> is present, then it is used as the scheduler for
* up to 32 processors.
* @endparblock
@@ -4542,6 +4926,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_STRONG_APA
+ *
* In case this configuration option is defined, then the Strong APA algorithm
* is made available to the application.
*
@@ -4562,11 +4948,78 @@
*/
#define CONFIGURE_SCHEDULER_STRONG_APA
+/* Generated from spec:/acfg/if/scheduler-table-entries */
+
+/**
+ * @brief This configuration option is an initializer define.
+ *
+ * @anchor CONFIGURE_SCHEDULER_TABLE_ENTRIES
+ *
+ * The value of this configuration option is used to initialize the table of
+ * configured schedulers.
+ *
+ * @par Default Value
+ * The default value of this configuration option is the definition of exactly
+ * one table entry for the configured scheduler.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this configuration option:
+ *
+ * * The value of the configuration option shall be a list of the following
+ * macros:
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_CBS( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_EDF( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_EDF_SMP( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_PRIORITY_AFFINITY_SMP( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_PRIORITY( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_SIMPLE( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_SIMPLE_SMP( name, obj_name )``
+ *
+ * * ``RTEMS_SCHEDULER_TABLE_STRONG_APA( name, obj_name )``
+ *
+ * The ``name`` macro parameter shall be the name associated with the
+ * scheduler data structures, see <a
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
+ * Scheduler Configuration</a>.
+ *
+ * The ``obj_name`` macro parameter shall be the scheduler object name. It
+ * is recommended to define the scheduler object name through
+ * rtems_build_name().
+ *
+ * * Where the system was build with SMP support enabled, the table shall have
+ * one or more entries, otherwise it shall have exactly one entry.
+ * @endparblock
+ *
+ * @par Notes
+ * @parblock
+ * Schedulers registered in the scheduler table by this configuration option
+ * are available to the application. The scheduler table entry index defines
+ * the index of the scheduler.
+ *
+ * This is an advanced configuration option, see <a
+ * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered
+ * Scheduler Configuration</a>.
+ * @endparblock
+ */
+#define CONFIGURE_SCHEDULER_TABLE_ENTRIES
+
/* Generated from spec:/acfg/if/scheduler-user */
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_SCHEDULER_USER
+ *
* In case this configuration option is defined, then the user shall provide a
* scheduler algorithm to the application.
*
@@ -4598,8 +5051,9 @@
* 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.
+ * configuration macros, please examine
+ * ``cpukit/include/rtems/confdefs/scheduler.h`` for how these are defined for
+ * the Deterministic Priority Scheduler.
* @endparblock
*/
#define CONFIGURE_SCHEDULER_USER
@@ -4628,6 +5082,8 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_TASK_STACK_ALLOCATOR
+ *
* The value of this configuration option initializes the stack allocator
* allocate handler.
*
@@ -4635,8 +5091,8 @@
* The default value is ``_Workspace_Allocate``, which indicates that task
* stacks will be allocated from the RTEMS Workspace.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void *( *allocate )( size_t )``.
*
* @par Notes
@@ -4644,11 +5100,11 @@
* A correctly configured system shall configure the following to be
* consistent:
*
- * * #CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+ * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT
*
* * ``CONFIGURE_TASK_STACK_ALLOCATOR``
*
- * * #CONFIGURE_TASK_STACK_DEALLOCATOR
+ * * @ref CONFIGURE_TASK_STACK_DEALLOCATOR
* @endparblock
*/
#define CONFIGURE_TASK_STACK_ALLOCATOR
@@ -4658,6 +5114,8 @@
/**
* @brief This configuration option is a boolean feature define.
*
+ * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+ *
* In case this configuration option is defined, then the system is informed
* that the task stack allocator does not use the RTEMS Workspace.
*
@@ -4667,15 +5125,67 @@
*
* @par Notes
* This configuration option may be used if a custom task stack allocator is
- * configured, see #CONFIGURE_TASK_STACK_ALLOCATOR.
+ * configured, see @ref CONFIGURE_TASK_STACK_ALLOCATOR.
*/
#define CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+/* Generated from spec:/acfg/if/task-stack-allocator-for-idle */
+
+/**
+ * @brief This configuration option is an initializer define.
+ *
+ * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+ *
+ * The value of this configuration option is the address for the stack
+ * allocator allocate handler used to allocate the task storage area of each
+ * IDLE task.
+ *
+ * @par Default Value
+ * By default, the IDLE task storage area will be allocated from the RTEMS
+ * Workspace.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this configuration option:
+ *
+ * * The value of the configuration option shall be defined to a valid function
+ * pointer of the type ``void *( *allocate )( uint32_t, size_t * )``.
+ *
+ * * The IDLE task stack allocator shall return a pointer to the allocated
+ * memory area or terminate the system with a fatal error if the allocation
+ * request cannot be satisfied.
+ *
+ * * The IDLE task stack allocator may increase the size of the allocated
+ * memory area.
+ * @endparblock
+ *
+ * @par Notes
+ * @parblock
+ * This configuration option is independent of the other thread stack allocator
+ * configuration options. It is assumed that any memory allocated for the task
+ * storage area of an IDLE task will not be from the RTEMS Workspace.
+ *
+ * The IDLE task stack allocator may increase the size of the allocated memory
+ * area to account for the actually allocated memory area.
+ *
+ * The
+ *
+ * * @ref CONFIGURE_IDLE_TASK_STORAGE_SIZE, and
+ *
+ * * ``CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE``
+ *
+ * configuration options are mutually exclusive.
+ * @endparblock
+ */
+#define CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
+
/* Generated from spec:/acfg/if/task-stack-allocator-init */
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+ *
* The value of this configuration option initializes the stack allocator
* initialization handler.
*
@@ -4683,8 +5193,8 @@
* The default value is <a
* href="https://en.cppreference.com/w/c/types/NULL">NULL</a>.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void ( *initialize )( size_t )`` or to <a
* href="https://en.cppreference.com/w/c/types/NULL">NULL</a>.
*
@@ -4695,9 +5205,9 @@
*
* * ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
*
- * * #CONFIGURE_TASK_STACK_ALLOCATOR
+ * * @ref CONFIGURE_TASK_STACK_ALLOCATOR
*
- * * #CONFIGURE_TASK_STACK_DEALLOCATOR
+ * * @ref CONFIGURE_TASK_STACK_DEALLOCATOR
* @endparblock
*/
#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT
@@ -4707,6 +5217,8 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_TASK_STACK_DEALLOCATOR
+ *
* The value of this configuration option initializes the stack allocator
* deallocate handler.
*
@@ -4714,8 +5226,8 @@
* The default value is ``_Workspace_Free``, which indicates that task stacks
* will be allocated from the RTEMS Workspace.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a valid function
+ * @par Constraints
+ * The value of the configuration option shall be defined to a valid function
* pointer of the type ``void ( *deallocate )( void * )``.
*
* @par Notes
@@ -4723,9 +5235,9 @@
* A correctly configured system shall configure the following to be
* consistent:
*
- * * #CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+ * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT
*
- * * #CONFIGURE_TASK_STACK_ALLOCATOR
+ * * @ref CONFIGURE_TASK_STACK_ALLOCATOR
*
* * ``CONFIGURE_TASK_STACK_DEALLOCATOR``
* @endparblock
@@ -4737,14 +5249,16 @@
/**
* @brief This configuration option is an initializer define.
*
+ * @anchor CONFIGURE_TASK_STACK_FROM_ALLOCATOR
+ *
* The value of this configuration option is used to calculate the task stack
* space size.
*
* @par Default Value
* The default value is a macro which supports the system heap allocator.
*
- * @par Value Constraints
- * The value of this configuration option shall be defined to a macro which
+ * @par Constraints
+ * The value of the 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
@@ -4752,7 +5266,7 @@
*
* @par Notes
* This configuration option may be used if a custom task stack allocator is
- * configured, see #CONFIGURE_TASK_STACK_ALLOCATOR.
+ * configured, see @ref CONFIGURE_TASK_STACK_ALLOCATOR.
*/
#define CONFIGURE_TASK_STACK_FROM_ALLOCATOR