diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/doxygen/appl-config.h | 2265 |
1 files changed, 1253 insertions, 1012 deletions
diff --git a/cpukit/doxygen/appl-config.h b/cpukit/doxygen/appl-config.h index 964f8d0616..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, 2022 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, 2021 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 @@ -923,34 +766,37 @@ /** * @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 @@ -960,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 @@ -990,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 @@ -1036,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 @@ -1053,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 @@ -1069,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 @@ -1097,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`` * @@ -1123,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 @@ -1144,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. * @@ -1151,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 @@ -1161,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 @@ -1181,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. */ @@ -1199,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 * @@ -1223,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 @@ -1235,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. * @@ -1244,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 @@ -1279,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. * @@ -1295,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 @@ -1311,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 @@ -1326,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 @@ -1337,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. * @@ -1359,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. * @@ -1376,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 @@ -1390,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. * @@ -1410,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 @@ -1424,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. * @@ -1447,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. * @@ -1469,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. * @@ -1486,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. * @@ -1509,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. * @@ -1531,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 @@ -1547,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. * @@ -1578,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`` * @@ -1594,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. * @@ -1612,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. * @@ -1627,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``, * @@ -1643,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. * @@ -1666,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. * @@ -1683,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 @@ -1699,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 */ @@ -1710,19 +1618,21 @@ /** * @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 @@ -1731,6 +1641,8 @@ /** * @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. * @@ -1754,6 +1666,8 @@ /** * @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 @@ -1762,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 @@ -1840,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. * @@ -1863,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 @@ -1890,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 @@ -1916,11 +1837,13 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_RECORD_INTERRUPTS_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 interrupt event recording is enabled. * @@ -1939,32 +1862,34 @@ /** * @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 @@ -2003,6 +1928,8 @@ /** * @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 @@ -2030,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 * * @{ */ @@ -2077,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. @@ -2097,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 @@ -2125,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. @@ -2134,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 @@ -2144,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. @@ -2159,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. @@ -2180,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. @@ -2195,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. @@ -2210,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. @@ -2219,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 @@ -2229,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. @@ -2244,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()). * @@ -2258,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()). * @@ -2272,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()). * @@ -2286,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()). * @@ -2300,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. * @@ -2314,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. * @@ -2328,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()). * @@ -2342,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. @@ -2357,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()). * @@ -2371,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()). * @@ -2385,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()). * @@ -2399,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()). * @@ -2413,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()). * @@ -2427,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()). * @@ -2441,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. * @@ -2455,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 @@ -2498,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). * @@ -2515,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. @@ -2554,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). * @@ -2566,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 @@ -2605,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. @@ -2617,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. * @@ -2651,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. * @@ -2659,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 @@ -2685,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>``. @@ -2692,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 * @@ -2711,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 @@ -2738,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. * @@ -2771,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 @@ -2786,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. @@ -2796,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 @@ -2807,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 @@ -2839,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 @@ -2848,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 @@ -2863,8 +2949,8 @@ * 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 */ @@ -2875,6 +2961,8 @@ /** * @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 @@ -2923,31 +3011,33 @@ /** * @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. @@ -2962,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>``. @@ -2969,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 @@ -2999,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 @@ -3076,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). * @@ -3097,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 @@ -3112,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. @@ -3125,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. @@ -3160,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 @@ -3174,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. * @@ -3197,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 @@ -3225,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. * @@ -3240,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 @@ -3252,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 @@ -3282,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. * @@ -3291,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 @@ -3308,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. * @@ -3326,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. @@ -3337,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 @@ -3361,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 @@ -3378,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 @@ -3388,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 @@ -3407,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 @@ -3429,28 +3560,34 @@ /** * @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 @@ -3459,10 +3596,12 @@ /** * @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. + * 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, @@ -3470,8 +3609,8 @@ * Workspace or through a custom IDLE task stack allocator. * * @par Constraints - * The value of the configuration option shall be greater than or equal to - * #CONFIGURE_IDLE_TASK_STACK_SIZE. + * The value of the configuration option shall be greater than or equal to @ref + * CONFIGURE_IDLE_TASK_STACK_SIZE. * * @par Notes * @parblock @@ -3481,26 +3620,26 @@ * 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 - * #CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE configuration option. You have + * 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 #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. + * 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. + * 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 * - * * #CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE * * configuration options are mutually exclusive. * @endparblock @@ -3517,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. * * @{ */ @@ -3532,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 @@ -3566,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. @@ -3576,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 @@ -3587,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 * @@ -3609,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 @@ -3620,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 @@ -3648,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. @@ -3655,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 * @@ -3671,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 @@ -3684,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 @@ -3700,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 @@ -3711,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 * @@ -3735,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 @@ -3752,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. * * @{ */ @@ -3763,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 @@ -3800,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 @@ -3844,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 @@ -3886,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 @@ -3927,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 @@ -3974,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 @@ -4015,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 @@ -4064,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 @@ -4110,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 @@ -4153,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 @@ -4174,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 */ @@ -4199,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. * @@ -4208,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 @@ -4239,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. @@ -4265,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 @@ -4297,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 @@ -4324,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 @@ -4355,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. * @@ -4362,19 +4566,19 @@ * 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( scheduler_index, attributes )`` * * * ``RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER`` * * The ``scheduler_index`` macro parameter shall be a valid index of the - * scheduler table defined by the #CONFIGURE_SCHEDULER_TABLE_ENTRIES + * scheduler table defined by the @ref CONFIGURE_SCHEDULER_TABLE_ENTRIES * configuration option. * * The ``attributes`` macro parameter shall be set to exactly one of the @@ -4384,8 +4588,8 @@ * * * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL`` * - * * The value of the configuration option shall be a list of exactly - * #CONFIGURE_MAXIMUM_PROCESSORS elements. + * * The value of the configuration option shall be a list of exactly @ref + * CONFIGURE_MAXIMUM_PROCESSORS elements. * @endparblock * * @par Notes @@ -4394,7 +4598,7 @@ * 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 */ @@ -4405,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. * @@ -4420,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 @@ -4432,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 @@ -4446,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 @@ -4458,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. * @@ -4476,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 @@ -4491,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. * @@ -4499,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 @@ -4552,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 @@ -4566,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 @@ -4584,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. * @@ -4602,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 @@ -4617,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 @@ -4634,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 @@ -4649,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 @@ -4663,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 @@ -4675,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 @@ -4692,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 @@ -4704,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. * @@ -4729,6 +4953,8 @@ /** * @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. * @@ -4792,6 +5018,8 @@ /** * @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. * @@ -4823,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 @@ -4853,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. * @@ -4860,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 @@ -4869,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 @@ -4883,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. * @@ -4892,7 +5125,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_ALLOCATOR_AVOIDS_WORK_SPACE @@ -4901,6 +5134,8 @@ /** * @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. @@ -4909,7 +5144,7 @@ * By default, the IDLE task storage area will be allocated from the RTEMS * Workspace. * - * @par Value Constraints + * @par Constraints * @parblock * The following constraints apply to this configuration option: * @@ -4935,7 +5170,7 @@ * * The * - * * #CONFIGURE_IDLE_TASK_STORAGE_SIZE, and + * * @ref CONFIGURE_IDLE_TASK_STORAGE_SIZE, and * * * ``CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE`` * @@ -4949,6 +5184,8 @@ /** * @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. * @@ -4956,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>. * @@ -4968,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 @@ -4980,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. * @@ -4987,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 @@ -4996,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 @@ -5010,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 @@ -5025,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 |