diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/doxygen.h | 33 | ||||
-rw-r--r-- | cpukit/doxygen/appl-config.h | 2594 | ||||
-rw-r--r-- | cpukit/doxygen/build.h | 82 | ||||
-rw-r--r-- | cpukit/doxygen/hash-algorithms.h | 149 | ||||
-rw-r--r-- | cpukit/doxygen/mainpage.h | 206 | ||||
-rw-r--r-- | cpukit/doxygen/top-level-groups.h | 57 |
6 files changed, 2079 insertions, 1042 deletions
diff --git a/cpukit/doxygen.h b/cpukit/doxygen.h index a60d138c03..a1ba3ece4a 100644 --- a/cpukit/doxygen.h +++ b/cpukit/doxygen.h @@ -1,4 +1,12 @@ /** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file defines some Doxygen groups. + */ + +/** * @defgroup RTEMSAPIIO IO * * @ingroup RTEMSAPI @@ -35,7 +43,30 @@ * * @ingroup RTEMSDeviceDrivers * - * @brief Time Test 27 Support + * @brief The Time Test 27 (TM27) support is used to measure the timing of + * the interrupt processing. + * + * The TMS27 support should provide two software generated interrupt requests, + * one low priority request raised by Cause_tm27_intr() and one higher priority + * request raised by Lower_tm27_intr(). Both requests should be cleared by + * Clear_tm27_intr(). A handler provided by the test should be installed + * through Install_tm27_vector(). This function should initialize the system + * so that the software generated interrupt requests can be raised and cleared. + * + * If the raise functions Cause_tm27_intr() and Lower_tm27_intr() do not + * trigger the interrupt immediately, then the TM27 support shall define + * MUST_WAIT_FOR_INTERRUPT to one, otherwise MUST_WAIT_FOR_INTERRUPT shall be + * defined to zero. + * + * The TM27 support may define TM27_INTERRUPT_VECTOR_DEFAULT to indicate the + * interrupt vector of the interrupt request raised by Cause_tm27_intr(). + * + * The TM27 support may define TM27_INTERRUPT_VECTOR_ALTERNATIVE to provide an + * alternative software generated interrupt request which is raised by + * _TM27_Raise_alternative() and cleared by _TM27_Clear_alternative(). Both + * functions shall return an RTEMS status code. This interrupt vector may be + * used to test the interrupt controller support on targets which do not + * provide generic software generated interrupts. */ /** diff --git a/cpukit/doxygen/appl-config.h b/cpukit/doxygen/appl-config.h index bbeb438bec..de93acbaa7 100644 --- a/cpukit/doxygen/appl-config.h +++ b/cpukit/doxygen/appl-config.h @@ -1,9 +1,17 @@ /* SPDX-License-Identifier: BSD-2-Clause */ +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file documents the application configuration options. + */ + /* - * Copyright (C) 2019, 2021 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 2019, 2023 embedded brains GmbH & Co. KG * Copyright (C) 2010 Gedare Bloom - * Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) + * Copyright (C) 1988, 2023 On-Line Applications Research Corporation (OAR) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -69,6 +77,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_LIBBLOCK + * * In case this configuration option is defined, then the Block Device Cache is * initialized during system initialization. * @@ -88,20 +98,23 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_BUFFER_MAX_SIZE + * * The value of this configuration option defines the maximum size of a buffer * in bytes. * * @par Default Value * The default value is 4096. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be an integral multiple of #CONFIGURE_BDBUF_BUFFER_MIN_SIZE. + * * The value of the configuration option shall be an integral multiple of + * @ref CONFIGURE_BDBUF_BUFFER_MIN_SIZE. * @endparblock */ #define CONFIGURE_BDBUF_BUFFER_MAX_SIZE @@ -111,20 +124,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_BUFFER_MIN_SIZE + * * The value of this configuration option defines the minimum size of a buffer * in bytes. * * @par Default Value * The default value is 512. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock */ @@ -135,20 +150,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_CACHE_MEMORY_SIZE + * * The value of this configuration option defines the size of the cache memory * in bytes. * * @par Default Value * The default value is 32768. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * @endparblock */ @@ -159,20 +176,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS + * * The value of this configuration option defines the maximum blocks per * read-ahead request. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * @@ -188,20 +207,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_MAX_WRITE_BLOCKS + * * The value of this configuration option defines the maximum blocks per write * request. * * @par Default Value * The default value is 16. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock */ @@ -212,13 +233,15 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY + * * The value of this configuration option defines the read-ahead task priority. * * @par Default Value * The default value is 15. * - * @par Value Constraints - * The value of this configuration option shall be a valid Classic API task + * @par Constraints + * The value of the configuration option shall be a valid Classic API task * priority. The set of valid task priorities depends on the scheduler * configuration. */ @@ -229,25 +252,28 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_BDBUF_TASK_STACK_SIZE + * * The value of this configuration option defines the task stack size of the * Block Device Cache tasks in bytes. * * @par Default Value * The default value is #RTEMS_MINIMUM_STACK_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * * The value of the configuration option shall be greater than or equal to + * @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock */ @@ -258,20 +284,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SWAPOUT_BLOCK_HOLD + * * The value of this configuration option defines the swapout task maximum * block hold time in milliseconds. * * @par Default Value * The default value is 1000. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock */ @@ -282,20 +310,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SWAPOUT_SWAP_PERIOD + * * The value of this configuration option defines the swapout task swap period * in milliseconds. * * @par Default Value * The default value is 250. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock */ @@ -306,13 +336,15 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SWAPOUT_TASK_PRIORITY + * * The value of this configuration option defines the swapout task priority. * * @par Default Value * The default value is 15. * - * @par Value Constraints - * The value of this configuration option shall be a valid Classic API task + * @par Constraints + * The value of the configuration option shall be a valid Classic API task * priority. The set of valid task priorities depends on the scheduler * configuration. */ @@ -323,20 +355,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SWAPOUT_WORKER_TASKS + * * The value of this configuration option defines the swapout worker task * count. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock */ @@ -347,14 +381,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY + * * The value of this configuration option defines the swapout worker task * priority. * * @par Default Value * The default value is 15. * - * @par Value Constraints - * The value of this configuration option shall be a valid Classic API task + * @par Constraints + * The value of the configuration option shall be a valid Classic API task * priority. The set of valid task priorities depends on the scheduler * configuration. */ @@ -362,225 +398,6 @@ /** @} */ -/* Generated from spec:/acfg/if/group-bsp */ - -/** - * @defgroup RTEMSApplConfigBSPRelatedConfigurationOptions \ - * BSP Related Configuration Options - * - * @ingroup RTEMSApplConfig - * - * This section describes configuration options related to the BSP. Some - * configuration options may have a BSP-specific setting which is defined by - * ``<bsp.h>``. The BSP-specific settings can be disabled by the - * #CONFIGURE_DISABLE_BSP_SETTINGS configuration option. - * - * @{ - */ - -/* Generated from spec:/acfg/if/bsp-idle-task-body */ - -/** - * @brief This configuration option is an initializer define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then the value of this configuration option defines the default value of - * #CONFIGURE_IDLE_TASK_BODY. - * - * @par Default Value - * The default value is BSP-specific. - * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function - * pointer of the type ``void *( *idle_body )( uintptr_t )``. - * - * @par Notes - * As it has knowledge of the specific CPU model, system controller logic, and - * peripheral buses, a BSP-specific IDLE task may be capable of turning - * components off to save power during extended periods of no task activity. - */ -#define BSP_IDLE_TASK_BODY - -/* Generated from spec:/acfg/if/bsp-idle-task-stack-size */ - -/** - * @brief This configuration option is an integer define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then the value of this configuration option defines the default value of - * #CONFIGURE_IDLE_TASK_STACK_SIZE. - * - * @par Default Value - * The default value is BSP-specific. - * - * @par Value Constraints - * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: - * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. - * - * * It shall be small enough so that the IDLE task stack area calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. - * @endparblock - */ -#define BSP_IDLE_TASK_STACK_SIZE - -/* Generated from spec:/acfg/if/bsp-initial-extension */ - -/** - * @brief This configuration option is an initializer define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then the value of this configuration option is used to initialize the table - * of initial user extensions. - * - * @par Default Value - * The default value is BSP-specific. - * - * @par Value Constraints - * The value of this configuration option shall be a list of initializers for - * structures of type ::rtems_extensions_table. - * - * @par Notes - * The value of this configuration option is placed after the entries of all - * other initial user extensions. - */ -#define BSP_INITIAL_EXTENSION - -/* Generated from spec:/acfg/if/bsp-interrupt-stack-size */ - -/** - * @brief This configuration option is an integer define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then the value of this configuration option defines the default value of - * #CONFIGURE_INTERRUPT_STACK_SIZE. - * - * @par Default Value - * The default value is BSP-specific. - * - * @par Value Constraints - * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: - * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. - * - * * It shall be small enough so that the interrupt stack area calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. - * - * * It shall be aligned according to #CPU_INTERRUPT_STACK_ALIGNMENT. - * @endparblock - */ -#define BSP_INTERRUPT_STACK_SIZE - -/* Generated from spec:/acfg/if/bsp-prerequisite-drivers */ - -/** - * @brief This configuration option is an initializer define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then the value of this configuration option is used to add BSP-provided - * prerequisite drivers to the Device Driver Table. - * - * @par Default Value - * The default value is BSP-specific. - * - * @par Value Constraints - * The value of this configuration option shall be a list of initializers for - * structures of type ::rtems_extensions_table. - * - * @par Notes - * The value of this configuration option is placed before the entries of all - * other initial user extensions (including - * #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS). - */ -#define CONFIGURE_BSP_PREREQUISITE_DRIVERS - -/* Generated from spec:/acfg/if/disable-bsp-settings */ - -/** - * @brief This configuration option is a boolean feature define. - * - * In case this configuration option is defined, then the following BSP related - * configuration options are undefined: - * - * * #BSP_IDLE_TASK_BODY - * - * * #BSP_IDLE_TASK_STACK_SIZE - * - * * #BSP_INITIAL_EXTENSION - * - * * #BSP_INTERRUPT_STACK_SIZE - * - * * #CONFIGURE_BSP_PREREQUISITE_DRIVERS - * - * * #CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK - * - * @par Default Configuration - * If this configuration option is undefined, then the described feature is not - * enabled. - */ -#define CONFIGURE_DISABLE_BSP_SETTINGS - -/* Generated from spec:/acfg/if/malloc-bsp-supports-sbrk */ - -/** - * @brief This configuration option is a boolean feature define. - * - * If - * - * * this configuration option is defined by the BSP - * - * * and #CONFIGURE_DISABLE_BSP_SETTINGS is undefined, - * - * then not all memory is made available to the C Program Heap immediately at - * system initialization time. When malloc() or other standard memory - * allocation functions are unable to allocate memory, they will call the BSP - * supplied sbrk() function to obtain more memory. - * - * @par Default Configuration - * If this configuration option is undefined, then the described feature is not - * enabled. - * - * @par Notes - * This option should not be defined by the application. Only the BSP knows how - * it allocates memory to the C Program Heap. - */ -#define CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK - -/** @} */ - /* Generated from spec:/acfg/if/group-classic */ /** @@ -598,34 +415,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_BARRIERS + * * The value of this configuration option defines the maximum number of Classic * API Barriers that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_BARRIERS @@ -635,36 +455,39 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_MESSAGE_QUEUES + * * The value of this configuration option defines the maximum number of Classic * API Message Queues that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. You have to account for the memory used to store the messages - * of each message queue, see #CONFIGURE_MESSAGE_BUFFER_MEMORY. + * of each message queue, see @ref CONFIGURE_MESSAGE_BUFFER_MEMORY. */ #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES @@ -673,34 +496,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_PARTITIONS + * * The value of this configuration option defines the maximum number of Classic * API Partitions that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_PARTITIONS @@ -710,34 +536,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_PERIODS + * * The value of this configuration option defines the maximum number of Classic * API Periods that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_PERIODS @@ -747,34 +576,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_PORTS + * * The value of this configuration option defines the maximum number of Classic * API Ports that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_PORTS @@ -784,34 +616,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_REGIONS + * * The value of this configuration option defines the maximum number of Classic * API Regions that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_REGIONS @@ -821,42 +656,45 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_SEMAPHORES + * * The value of this configuration option defines the maximum number of Classic * API Semaphore that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * * In SMP configurations, the size of a Semaphore Control Block depends on the * scheduler count (see <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html#configuration-step-3-scheduler-table>Configuration + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html#configuration-step-3-scheduler-table">Configuration * Step 3 - Scheduler Table</a>). The semaphores using the <a - * href=https://docs.rtems.org/branches/master/c-user/key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp>Multiprocessor + * href="https://docs.rtems.org/branches/master/c-user/key_concepts.html#multiprocessor-resource-sharing-protocol-mrsp">Multiprocessor * Resource Sharing Protocol (MrsP)</a> need a ceiling priority per scheduler. * @endparblock */ @@ -867,48 +705,53 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_TASKS + * * The value of this configuration option defines the maximum number of Classic * API Tasks that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * * The calculations for the required memory in the RTEMS Workspace for tasks * assume that each task has a minimum stack size and has floating point - * support enabled. The configuration option #CONFIGURE_EXTRA_TASK_STACKS is - * used to specify task stack requirements *above* the minimum size required. + * support enabled. The configuration option @ref CONFIGURE_EXTRA_TASK_STACKS + * is used to specify task stack requirements *above* the minimum size + * required. * - * The maximum number of POSIX threads is specified by - * #CONFIGURE_MAXIMUM_POSIX_THREADS. + * The maximum number of POSIX threads is specified by @ref + * CONFIGURE_MAXIMUM_POSIX_THREADS. * * A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the * assumption that all tasks have floating point enabled. This would require @@ -918,86 +761,42 @@ */ #define CONFIGURE_MAXIMUM_TASKS -/* Generated from spec:/acfg/if/max-thread-local-storage-size */ - -/** - * @brief This configuration option is an integer define. - * - * If the value of this configuration option is greater than zero, then it - * defines the maximum thread-local storage size, otherwise the thread-local - * storage size is defined by the linker depending on the thread-local storage - * objects used by the application in the statically-linked executable. - * - * @par Default Value - * The default value is 0. - * - * @par Value Constraints - * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: - * - * * It shall be greater than or equal to zero. - * - * * It shall be less than or equal to <a - * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. - * - * * It shall be an integral multiple of #RTEMS_TASK_STORAGE_ALIGNMENT. - * @endparblock - * - * @par Notes - * @parblock - * This configuration option can be used to reserve space for the dynamic - * linking of modules with thread-local storage objects. - * - * If the thread-local storage size defined by the thread-local storage objects - * used by the application in the statically-linked executable is greater than - * a non-zero value of this configuration option, then a fatal error will occur - * during system initialization. - * - * Use RTEMS_ALIGN_UP() and #RTEMS_TASK_STORAGE_ALIGNMENT to adjust the size to - * meet the minimum alignment requirement of a thread-local storage area. - * - * The actual thread-local storage size is determined when the application - * executable is linked. The ``rtems-exeinfo`` command line tool included in - * the RTEMS Tools can be used to obtain the thread-local storage size and - * alignment of an application executable. - * @endparblock - */ -#define CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE - /* Generated from spec:/acfg/if/max-timers */ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_TIMERS + * * The value of this configuration option defines the maximum number of Classic * API Timers that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_TIMERS @@ -1007,24 +806,27 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_USER_EXTENSIONS + * * The value of this configuration option defines the maximum number of Classic * API User Extensions that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes @@ -1037,20 +839,23 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE + * * The value of this configuration option defines the minimum count of Classic * API Tasks which are constructed by rtems_task_construct(). * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to #CONFIGURE_MAXIMUM_TASKS. + * * The value of the configuration option shall be less than or equal to @ref + * CONFIGURE_MAXIMUM_TASKS. * @endparblock * * @par Notes @@ -1083,14 +888,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_ARGUMENTS + * * The value of this configuration option defines task argument of the Classic * API initialization task. * * @par Default Value * The default value is 0. * - * @par Value Constraints - * The value of this configuration option shall be convertible to an integer of + * @par Constraints + * The value of the configuration option shall be convertible to an integer of * type ::rtems_task_argument. */ #define CONFIGURE_INIT_TASK_ARGUMENTS @@ -1100,14 +907,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_ATTRIBUTES + * * The value of this configuration option defines the task attributes of the * Classic API initialization task. * * @par Default Value * The default value is #RTEMS_DEFAULT_ATTRIBUTES. * - * @par Value Constraints - * The value of this configuration option shall be a valid task attribute set. + * @par Constraints + * The value of the configuration option shall be a valid task attribute set. */ #define CONFIGURE_INIT_TASK_ATTRIBUTES @@ -1116,22 +925,25 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE + * * The value of this configuration option defines the task storage size of the * Classic API initialization task. * * @par Default Value * This configuration option has no default value. If it is not specified, * then the Classic API initialization task will be created with the stack size - * defined by the #CONFIGURE_INIT_TASK_STACK_SIZE configuration option. + * defined by the @ref CONFIGURE_INIT_TASK_STACK_SIZE configuration option. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * * The value of the configuration option shall be greater than or equal to + * @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * * It shall be defined using RTEMS_TASK_STORAGE_SIZE(). + * * The value of the configuration option shall be defined using + * RTEMS_TASK_STORAGE_SIZE(). * @endparblock * * @par Notes @@ -1144,19 +956,19 @@ * * the Classic API initialization task is constructed by * rtems_task_construct() instead of using rtems_task_create(), * - * * the maximum thread-local storage size defined by - * #CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE is used for the Classic API + * * the maximum thread-local storage size defined by @ref + * CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE is used for the Classic API * initialization task, * - * * the Classic API initialization task should be accounted for in - * #CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE, and + * * the Classic API initialization task should be accounted for in @ref + * CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE, and * * * the task storage area used for the Classic API initialization task is not * reclaimed by the system if the task is deleted. * * The * - * * #CONFIGURE_INIT_TASK_STACK_SIZE and + * * @ref CONFIGURE_INIT_TASK_STACK_SIZE and * * * ``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE`` * @@ -1170,14 +982,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_INIT_TASK_ENTRY_POINT + * * The value of this configuration option initializes the entry point of the * Classic API initialization task. * * @par Default Value * The default value is ``Init``. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void ( *entry_point )( rtems_task_argument )``. * * @par Notes @@ -1191,6 +1005,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_INITIAL_MODES + * * The value of this configuration option defines the initial execution mode of * the Classic API initialization task. * @@ -1198,8 +1014,8 @@ * In SMP configurations, the default value is #RTEMS_DEFAULT_MODES otherwise * the default value is #RTEMS_NO_PREEMPT. * - * @par Value Constraints - * The value of this configuration option shall be a valid task mode set. + * @par Constraints + * The value of the configuration option shall be a valid task mode set. */ #define CONFIGURE_INIT_TASK_INITIAL_MODES @@ -1208,14 +1024,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_NAME + * * The value of this configuration option defines the name of the Classic API * initialization task. * * @par Default Value * The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``. * - * @par Value Constraints - * The value of this configuration option shall be convertible to an integer of + * @par Constraints + * The value of the configuration option shall be convertible to an integer of * type ::rtems_name. * * @par Notes @@ -1228,14 +1046,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_PRIORITY + * * The value of this configuration option defines the initial priority of the * Classic API initialization task. * * @par Default Value * The default value is 1. * - * @par Value Constraints - * The value of this configuration option shall be a valid Classic API task + * @par Constraints + * The value of the configuration option shall be a valid Classic API task * priority. The set of valid task priorities depends on the scheduler * configuration. */ @@ -1246,21 +1066,24 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INIT_TASK_STACK_SIZE + * * The value of this configuration option defines the task stack size of the * Classic API initialization task. * * @par Default Value - * The default value is #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * The default value is @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * * The value of the configuration option shall be greater than or equal to + * @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock * @@ -1270,7 +1093,7 @@ * * * ``CONFIGURE_INIT_TASK_STACK_SIZE`` and * - * * #CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE + * * @ref CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE * * configuration options are mutually exclusive. * @endparblock @@ -1282,6 +1105,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_RTEMS_INIT_TASKS_TABLE + * * In case this configuration option is defined, then exactly one Classic API * initialization task is configured. * @@ -1291,16 +1116,20 @@ * * @par Notes * @parblock - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * * * ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``, * - * * #CONFIGURE_POSIX_INIT_THREAD_TABLE, or + * * @ref CONFIGURE_POSIX_INIT_THREAD_TABLE, or * - * * #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION + * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION * * otherwise a compile time error in the configuration file will occur. + * + * The Classic API initialization task performs the <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a>. * @endparblock */ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE @@ -1326,6 +1155,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER + * * In case this configuration option is defined, then **no** Clock Driver is * initialized during system initialization. * @@ -1342,11 +1173,11 @@ * The application shall define exactly one of the following configuration * options * - * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, * * * ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``, or * - * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER, * * otherwise a compile time error in the configuration file will occur. * @endparblock @@ -1358,14 +1189,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_APPLICATION_EXTRA_DRIVERS + * * The value of this configuration option is used to initialize the Device * Driver Table. * * @par Default Value * The default value is the empty list. * - * @par Value Constraints - * The value of this configuration option shall be a list of initializers for + * @par Constraints + * The value of the configuration option shall be a list of initializers for * structures of type ::rtems_driver_address_table. * * @par Notes @@ -1373,8 +1206,8 @@ * The value of this configuration option is placed after the entries of other * device driver configuration options. * - * See #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS for an alternative placement - * of application device driver initializers. + * See @ref CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS for an alternative + * placement of application device driver initializers. * @endparblock */ #define CONFIGURE_APPLICATION_EXTRA_DRIVERS @@ -1384,6 +1217,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER + * * In case this configuration option is defined, then the ATA Driver is * initialized during system initialization. * @@ -1406,6 +1241,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER + * * In case this configuration option is defined, then the Clock Driver is * initialized during system initialization. * @@ -1423,9 +1260,9 @@ * * * ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``, * - * * #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or + * * @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or * - * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER, * * otherwise a compile time error in the configuration file will occur. * @endparblock @@ -1437,6 +1274,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER + * * In case this configuration option is defined, then the Console Driver is * initialized during system initialization. * @@ -1457,9 +1296,9 @@ * * * ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``, * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER * * configuration options are mutually exclusive. * @endparblock @@ -1471,6 +1310,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER + * * In case this configuration option is defined, then the Frame Buffer Driver * is initialized during system initialization. * @@ -1494,6 +1335,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER + * * In case this configuration option is defined, then the IDE Driver is * initialized during system initialization. * @@ -1516,6 +1359,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER + * * In case this configuration option is defined, then the ``/dev/null`` Driver * is initialized during system initialization. * @@ -1533,6 +1378,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER + * * In case this configuration option is defined, then the Real-Time Clock * Driver is initialized during system initialization. * @@ -1556,6 +1403,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER + * * In case this configuration option is defined, then the Simple Console Driver * is initialized during system initialization. * @@ -1578,11 +1427,11 @@ * * The * - * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, * * * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER * * configuration options are mutually exclusive. * @endparblock @@ -1594,6 +1443,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER + * * In case this configuration option is defined, then the Simple Task Console * Driver is initialized during system initialization. * @@ -1625,9 +1476,9 @@ * * The * - * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and * * * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` * @@ -1641,6 +1492,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER + * * In case this configuration option is defined, then the Stub Driver is * initialized during system initialization. * @@ -1659,6 +1512,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER + * * In case this configuration option is defined, then the Benchmark Timer * Driver is initialized during system initialization. * @@ -1674,9 +1529,9 @@ * The application shall define exactly one of the following configuration * options * - * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, + * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, * - * * #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or + * * @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, or * * * ``CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER``, * @@ -1690,6 +1545,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER + * * In case this configuration option is defined, then the Watchdog Driver is * initialized during system initialization. * @@ -1713,6 +1570,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER + * * In case this configuration option is defined, then the ``/dev/zero`` Driver * is initialized during system initialization. * @@ -1730,14 +1589,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS + * * The value of this configuration option is used to initialize the Device * Driver Table. * * @par Default Value * The default value is the empty list. * - * @par Value Constraints - * The value of this configuration option shall be a list of initializers for + * @par Constraints + * The value of the configuration option shall be a list of initializers for * structures of type ::rtems_driver_address_table. * * @par Notes @@ -1746,7 +1607,7 @@ * by #CONFIGURE_BSP_PREREQUISITE_DRIVERS and before all other device driver * configuration options. * - * See #CONFIGURE_APPLICATION_EXTRA_DRIVERS for an alternative placement of + * See @ref CONFIGURE_APPLICATION_EXTRA_DRIVERS for an alternative placement of * application device driver initializers. * @endparblock */ @@ -1757,27 +1618,56 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_ATA_DRIVER_TASK_PRIORITY + * * The value of this configuration option defines the ATA task priority. * * @par Default Value * The default value is 140. * - * @par Value Constraints - * The value of this configuration option shall be a valid Classic API task + * @par Constraints + * The value of the configuration option shall be a valid Classic API task * priority. The set of valid task priorities depends on the scheduler * configuration. * * @par Notes - * This configuration option is only evaluated if the configuration option - * #CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER is defined. + * This configuration option is only evaluated if the configuration option @ref + * CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER is defined. */ #define CONFIGURE_ATA_DRIVER_TASK_PRIORITY +/* Generated from spec:/acfg/if/exception-to-signal-mapping */ + +/** + * @brief This configuration option is a boolean feature define. + * + * @anchor CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING + * + * In case this configuration option is defined, then the machine exception to + * POSIX signal mapping is configured during system initialization. + * + * @par Default Configuration + * If this configuration option is undefined, then the described feature is not + * enabled. + * + * @par Notes + * @parblock + * This device driver is responsible for setting up a mapping from machine + * exceptions to POSIX signals so that applications may consume them and alter + * task execution as necessary. + * + * This is especially useful for applications written in Ada or C++. + * @endparblock + */ +#define CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING + /* Generated from spec:/acfg/if/max-drivers */ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_DRIVERS + * * The value of this configuration option defines the number of device drivers. * * @par Default Value @@ -1786,55 +1676,56 @@ * configured device drivers configured using the following configuration * options: * - * * #CONFIGURE_APPLICATION_EXTRA_DRIVERS + * * @ref CONFIGURE_APPLICATION_EXTRA_DRIVERS * - * * #CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK + * * @ref CONFIGURE_APPLICATION_NEEDS_LIBBLOCK * - * * #CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER * - * * #CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER + * * @ref CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER * - * * #CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS + * * @ref CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS * - * * #CONFIGURE_BSP_PREREQUISITE_DRIVERS + * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not + * defined and the BSP provides #CONFIGURE_BSP_PREREQUISITE_DRIVERS, then the + * BSP-provided prerequisite device drivers are also taken into account. * @endparblock * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * - * * It shall be greater than or equal than the number of statically configured - * device drivers. + * * The value of the configuration option shall be greater than or equal than + * the number of statically configured device drivers. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes @@ -1864,11 +1755,13 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_RECORD_EXTENSIONS_ENABLED + * * In case * * * this configuration option is defined * - * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, + * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, * * then the event record extensions are enabled. * @@ -1887,17 +1780,19 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_RECORD_FATAL_DUMP_BASE64 + * * In case * * * this configuration option is defined * - * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, + * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, * - * * and #CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB is undefined, + * * and @ref CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB is undefined, * * then the event records are dumped in Base64 encoding in a fatal error * extension (see <a - * href=https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error>Announcing + * href="https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error">Announcing * a Fatal Error</a>). * * @par Default Configuration @@ -1914,15 +1809,17 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB + * * In case * * * this configuration option is defined * - * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, + * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, * * then the event records are compressed by zlib and dumped in Base64 encoding * in a fatal error extension (see <a - * href=https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error>Announcing + * href="https://docs.rtems.org/branches/master/c-user/fatal_error.html#announcing-a-fatal-error">Announcing * a Fatal Error</a>). * * @par Default Configuration @@ -1935,43 +1832,121 @@ */ #define CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB +/* Generated from spec:/acfg/if/record-interrupts-enabled */ + +/** + * @brief This configuration option is a boolean feature define. + * + * @anchor CONFIGURE_RECORD_INTERRUPTS_ENABLED + * + * In case + * + * * this configuration option is defined + * + * * and @ref CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined, + * + * then the interrupt event recording is enabled. + * + * @par Default Configuration + * If this configuration option is undefined, then the described feature is not + * enabled. + * + * @par Notes + * The interrupt event recording generates interrupt entry and exit events when + * interrupt entries are dispatched. + */ +#define CONFIGURE_RECORD_INTERRUPTS_ENABLED + /* Generated from spec:/acfg/if/record-per-processor-items */ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_RECORD_PER_PROCESSOR_ITEMS + * * The value of this configuration option defines the event record item count * per processor. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to 16. + * * The value of the configuration option shall be greater than or equal to + * 16. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * - * * It shall be a power of two. + * * The value of the configuration option shall be a power of two. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes * The event record buffers are statically allocated for each configured - * processor (#CONFIGURE_MAXIMUM_PROCESSORS). If the value of this + * processor (@ref CONFIGURE_MAXIMUM_PROCESSORS). If the value of this * configuration option is zero, then nothing is allocated. */ #define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS /** @} */ +/* Generated from spec:/acfg/if/group-face */ + +/** + * @defgroup RTEMSApplConfigFACETechnicalStandardRelatedConfiguration \ + * FACE Technical Standard Related Configuration + * + * @ingroup RTEMSApplConfig + * + * This section describes configuration options related to adapting RTEMS + * behavior to be aligned with the FACE Technical Standard. The FACE Technical + * Standard is a product of the FACE Consortium which operates under the Open + * Group. The FACE Consortium was founded by avionics organizations to improve + * the portability of cockpit software across various platforms. It addresses + * technical and business concerns. + * + * Most important from an RTEMS perspective, the FACE Technical Standard + * defines four POSIX profiles: Security, Safety Base, Safety Extended, and the + * General Purpose Profile. Each has an increasingly larger subset of POSIX + * APIs. In the Security and Safety profiles, ARINC 653 is required. It is + * optional in the General Purpose Profile. + * + * The RTEMS Project has been tracking alignment with the FACE POSIX profiles + * and they are included in the "RTEMS POSIX 1003.1 Compliance Guide." + * + * @{ + */ + +/* Generated from spec:/acfg/if/posix-timer-face-behavior */ + +/** + * @brief This configuration option is a boolean feature define. + * + * @anchor CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR + * + * If this configuration option is defined, then POSIX timers may not be + * created to use the CLOCK_REALTIME. Per POSIX, this is allowed behavior but + * per the FACE Technical Standard, it is not. Using POSIX timers based on + * CLOCK_REALTIME (e.g., time of day) is unsafe for real-time safety systems as + * setting CLOCK_REALTIME will perturb any active timers. + * + * If this option is not defined, POSIX timers may be created to use the + * CLOCK_REALTIME in compliance with the POSIX specification. + * + * @par Default Configuration + * If this configuration option is undefined, then the described feature is not + * enabled. + */ +#define CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR + +/** @} */ + /* Generated from spec:/acfg/if/group-filesystem */ /** @@ -1982,44 +1957,44 @@ * This section describes configuration options related to filesytems. By * default, the In-Memory Filesystem (IMFS) is used as the base filesystem * (also known as root filesystem). In order to save some memory for your - * application, you can disable the filesystem support with the - * #CONFIGURE_APPLICATION_DISABLE_FILESYSTEM configuration option. + * application, you can disable the filesystem support with the @ref + * CONFIGURE_APPLICATION_DISABLE_FILESYSTEM configuration option. * Alternatively, you can strip down the features of the base filesystem with - * the #CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM and - * #CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM configuration options. These three + * the @ref CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM and @ref + * CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM configuration options. These three * configuration options are mutually exclusive. They are intended for an * advanced application configuration. * * Features of the IMFS can be disabled and enabled with the following * configuration options: * - * * #CONFIGURE_IMFS_DISABLE_CHMOD + * * @ref CONFIGURE_IMFS_DISABLE_CHMOD * - * * #CONFIGURE_IMFS_DISABLE_CHOWN + * * @ref CONFIGURE_IMFS_DISABLE_CHOWN * - * * #CONFIGURE_IMFS_DISABLE_LINK + * * @ref CONFIGURE_IMFS_DISABLE_LINK * - * * #CONFIGURE_IMFS_DISABLE_MKNOD + * * @ref CONFIGURE_IMFS_DISABLE_MKNOD * - * * #CONFIGURE_IMFS_DISABLE_MKNOD_FILE + * * @ref CONFIGURE_IMFS_DISABLE_MKNOD_FILE * - * * #CONFIGURE_IMFS_DISABLE_MOUNT + * * @ref CONFIGURE_IMFS_DISABLE_MOUNT * - * * #CONFIGURE_IMFS_DISABLE_READDIR + * * @ref CONFIGURE_IMFS_DISABLE_READDIR * - * * #CONFIGURE_IMFS_DISABLE_READLINK + * * @ref CONFIGURE_IMFS_DISABLE_READLINK * - * * #CONFIGURE_IMFS_DISABLE_RENAME + * * @ref CONFIGURE_IMFS_DISABLE_RENAME * - * * #CONFIGURE_IMFS_DISABLE_RMNOD + * * @ref CONFIGURE_IMFS_DISABLE_RMNOD * - * * #CONFIGURE_IMFS_DISABLE_SYMLINK + * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK * - * * #CONFIGURE_IMFS_DISABLE_UNMOUNT + * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT * - * * #CONFIGURE_IMFS_DISABLE_UTIME + * * @ref CONFIGURE_IMFS_DISABLE_UTIME * - * * #CONFIGURE_IMFS_ENABLE_MKFIFO + * * @ref CONFIGURE_IMFS_ENABLE_MKFIFO * * @{ */ @@ -2029,6 +2004,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_APPLICATION_DISABLE_FILESYSTEM + * * In case this configuration option is defined, then **no base filesystem** is * initialized during system initialization and **no filesystems** are * configured. @@ -2049,22 +2026,24 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_ALL + * * In case this configuration option is defined, then the following * configuration options will be defined as well * - * * #CONFIGURE_FILESYSTEM_DOSFS, + * * @ref CONFIGURE_FILESYSTEM_DOSFS, * - * * #CONFIGURE_FILESYSTEM_FTPFS, + * * @ref CONFIGURE_FILESYSTEM_FTPFS, * - * * #CONFIGURE_FILESYSTEM_IMFS, + * * @ref CONFIGURE_FILESYSTEM_IMFS, * - * * #CONFIGURE_FILESYSTEM_JFFS2, + * * @ref CONFIGURE_FILESYSTEM_JFFS2, * - * * #CONFIGURE_FILESYSTEM_NFS, + * * @ref CONFIGURE_FILESYSTEM_NFS, * - * * #CONFIGURE_FILESYSTEM_RFS, and + * * @ref CONFIGURE_FILESYSTEM_RFS, and * - * * #CONFIGURE_FILESYSTEM_TFTPFS. + * * @ref CONFIGURE_FILESYSTEM_TFTPFS. * * @par Default Configuration * If this configuration option is undefined, then the described feature is not @@ -2077,6 +2056,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_DOSFS + * * In case this configuration option is defined, then the DOS (FAT) filesystem * is registered, so that instances of this filesystem can be mounted by the * application. @@ -2086,8 +2067,8 @@ * enabled. * * @par Notes - * This filesystem requires a Block Device Cache configuration, see - * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK. + * This filesystem requires a Block Device Cache configuration, see @ref + * CONFIGURE_APPLICATION_NEEDS_LIBBLOCK. */ #define CONFIGURE_FILESYSTEM_DOSFS @@ -2096,6 +2077,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_FTPFS + * * In case this configuration option is defined, then the FTP filesystem (FTP * client) is registered, so that instances of this filesystem can be mounted * by the application. @@ -2111,6 +2094,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_IMFS + * * In case this configuration option is defined, then the In-Memory Filesystem * (IMFS) is registered, so that instances of this filesystem can be mounted by * the application. @@ -2132,6 +2117,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_JFFS2 + * * In case this configuration option is defined, then the JFFS2 filesystem is * registered, so that instances of this filesystem can be mounted by the * application. @@ -2147,6 +2134,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_NFS + * * In case this configuration option is defined, then the Network Filesystem * (NFS) client is registered, so that instances of this filesystem can be * mounted by the application. @@ -2162,6 +2151,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_RFS + * * In case this configuration option is defined, then the RTEMS Filesystem * (RFS) is registered, so that instances of this filesystem can be mounted by * the application. @@ -2171,8 +2162,8 @@ * enabled. * * @par Notes - * This filesystem requires a Block Device Cache configuration, see - * #CONFIGURE_APPLICATION_NEEDS_LIBBLOCK. + * This filesystem requires a Block Device Cache configuration, see @ref + * CONFIGURE_APPLICATION_NEEDS_LIBBLOCK. */ #define CONFIGURE_FILESYSTEM_RFS @@ -2181,6 +2172,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_FILESYSTEM_TFTPFS + * * In case this configuration option is defined, then the TFTP filesystem (TFTP * client) is registered, so that instances of this filesystem can be mounted * by the application. @@ -2196,6 +2189,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_CHMOD + * * In case this configuration option is defined, then the root IMFS does not * support changing the mode of files (no support for chmod()). * @@ -2210,6 +2205,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_CHOWN + * * In case this configuration option is defined, then the root IMFS does not * support changing the ownership of files (no support for chown()). * @@ -2224,6 +2221,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_LINK + * * In case this configuration option is defined, then the root IMFS does not * support hard links (no support for link()). * @@ -2238,6 +2237,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_MKNOD + * * In case this configuration option is defined, then the root IMFS does not * support making files (no support for mknod()). * @@ -2252,6 +2253,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE + * * In case this configuration option is defined, then the root IMFS does not * support making device files. * @@ -2266,6 +2269,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_MKNOD_FILE + * * In case this configuration option is defined, then the root IMFS does not * support making regular files. * @@ -2280,6 +2285,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_MOUNT + * * In case this configuration option is defined, then the root IMFS does not * support mounting other filesystems (no support for mount()). * @@ -2294,6 +2301,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_READDIR + * * In case this configuration option is defined, then the root IMFS does not * support reading directories (no support for readdir()). It is still * possible to open files in a directory. @@ -2309,6 +2318,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_READLINK + * * In case this configuration option is defined, then the root IMFS does not * support reading symbolic links (no support for readlink()). * @@ -2323,6 +2334,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_RENAME + * * In case this configuration option is defined, then the root IMFS does not * support renaming files (no support for rename()). * @@ -2337,6 +2350,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_RMNOD + * * In case this configuration option is defined, then the root IMFS does not * support removing files (no support for rmnod()). * @@ -2351,6 +2366,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_SYMLINK + * * In case this configuration option is defined, then the root IMFS does not * support creating symbolic links (no support for symlink()). * @@ -2365,6 +2382,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_UNMOUNT + * * In case this configuration option is defined, then the root IMFS does not * support unmounting other filesystems (no support for unmount()). * @@ -2379,6 +2398,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_DISABLE_UTIME + * * In case this configuration option is defined, then the root IMFS does not * support changing file times (no support for utime()). * @@ -2393,6 +2414,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IMFS_ENABLE_MKFIFO + * * In case this configuration option is defined, then the root IMFS supports * making FIFOs. * @@ -2407,14 +2430,16 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK + * * The value of this configuration option defines the block size for in-memory * files managed by the IMFS. * * @par Default Value * The default value is 128. * - * @par Value Constraints - * The value of this configuration option shall be equal to 16, 32, 64, 128, + * @par Constraints + * The value of the configuration option shall be equal to 16, 32, 64, 128, * 256, or 512. * * @par Notes @@ -2450,11 +2475,41 @@ */ #define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK +/* Generated from spec:/acfg/if/jffs2-delayed-write-task-priority */ + +/** + * @brief This configuration option is an integer define. + * + * @anchor CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY + * + * The value of this configuration option defines the JFFS2 delayed write task + * priority. + * + * @par Default Value + * The default value is 15. + * + * @par Constraints + * @parblock + * The following constraints apply to this configuration option: + * + * * The configuration option is not included in the pre-qualified feature set + * of RTEMS. Applications which are restricted to only use interfaces of the + * pre-qualified feature set of RTEMS shall not use the configuration option. + * + * * The value of the configuration option shall be a valid Classic API task + * priority. The set of valid task priorities depends on the scheduler + * configuration. + * @endparblock + */ +#define CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY + /* Generated from spec:/acfg/if/use-devfs-as-base-filesystem */ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM + * * In case this configuration option is defined, then an IMFS with a reduced * feature set will be the base filesystem (also known as root filesystem). * @@ -2467,29 +2522,29 @@ * In case this configuration option is defined, then the following * configuration options will be defined as well * - * * #CONFIGURE_IMFS_DISABLE_CHMOD, + * * @ref CONFIGURE_IMFS_DISABLE_CHMOD, * - * * #CONFIGURE_IMFS_DISABLE_CHOWN, + * * @ref CONFIGURE_IMFS_DISABLE_CHOWN, * - * * #CONFIGURE_IMFS_DISABLE_LINK, + * * @ref CONFIGURE_IMFS_DISABLE_LINK, * - * * #CONFIGURE_IMFS_DISABLE_MKNOD_FILE, + * * @ref CONFIGURE_IMFS_DISABLE_MKNOD_FILE, * - * * #CONFIGURE_IMFS_DISABLE_MOUNT, + * * @ref CONFIGURE_IMFS_DISABLE_MOUNT, * - * * #CONFIGURE_IMFS_DISABLE_READDIR, + * * @ref CONFIGURE_IMFS_DISABLE_READDIR, * - * * #CONFIGURE_IMFS_DISABLE_READLINK, + * * @ref CONFIGURE_IMFS_DISABLE_READLINK, * - * * #CONFIGURE_IMFS_DISABLE_RENAME, + * * @ref CONFIGURE_IMFS_DISABLE_RENAME, * - * * #CONFIGURE_IMFS_DISABLE_RMNOD, + * * @ref CONFIGURE_IMFS_DISABLE_RMNOD, * - * * #CONFIGURE_IMFS_DISABLE_SYMLINK, + * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK, * - * * #CONFIGURE_IMFS_DISABLE_UTIME, and + * * @ref CONFIGURE_IMFS_DISABLE_UTIME, and * - * * #CONFIGURE_IMFS_DISABLE_UNMOUNT. + * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT. * * In addition, a simplified path evaluation is enabled. It allows only a look * up of absolute paths. @@ -2506,6 +2561,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM + * * In case this configuration option is defined, then an IMFS with a reduced * feature set will be the base filesystem (also known as root filesystem). * @@ -2518,21 +2575,21 @@ * In case this configuration option is defined, then the following * configuration options will be defined as well * - * * #CONFIGURE_IMFS_DISABLE_CHMOD, + * * @ref CONFIGURE_IMFS_DISABLE_CHMOD, * - * * #CONFIGURE_IMFS_DISABLE_CHOWN, + * * @ref CONFIGURE_IMFS_DISABLE_CHOWN, * - * * #CONFIGURE_IMFS_DISABLE_LINK, + * * @ref CONFIGURE_IMFS_DISABLE_LINK, * - * * #CONFIGURE_IMFS_DISABLE_READLINK, + * * @ref CONFIGURE_IMFS_DISABLE_READLINK, * - * * #CONFIGURE_IMFS_DISABLE_RENAME, + * * @ref CONFIGURE_IMFS_DISABLE_RENAME, * - * * #CONFIGURE_IMFS_DISABLE_SYMLINK, + * * @ref CONFIGURE_IMFS_DISABLE_SYMLINK, * - * * #CONFIGURE_IMFS_DISABLE_UTIME, and + * * @ref CONFIGURE_IMFS_DISABLE_UTIME, and * - * * #CONFIGURE_IMFS_DISABLE_UNMOUNT. + * * @ref CONFIGURE_IMFS_DISABLE_UNMOUNT. * @endparblock */ #define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM @@ -2557,6 +2614,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_DIRTY_MEMORY + * * In case this configuration option is defined, then the memory areas used for * the RTEMS Workspace and the C Program Heap are dirtied with a ``0xCF`` byte * pattern during system initialization. @@ -2569,20 +2628,55 @@ * @parblock * Dirtying memory can add significantly to system initialization time. It may * assist in finding code that incorrectly assumes the contents of free memory - * areas is cleared to zero during system initialization. In case - * #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is also defined, then the memory is + * areas is cleared to zero during system initialization. In case @ref + * CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is also defined, then the memory is * first dirtied and then zeroed. * - * See also #CONFIGURE_MALLOC_DIRTY. + * See also @ref CONFIGURE_MALLOC_DIRTY. * @endparblock */ #define CONFIGURE_DIRTY_MEMORY +/* Generated from spec:/acfg/if/disable-bsp-settings */ + +/** + * @brief This configuration option is a boolean feature define. + * + * @anchor CONFIGURE_DISABLE_BSP_SETTINGS + * + * In case this configuration option is defined, then the optional BSP provided + * settings listed below are disabled. + * + * The optional BSP provided default values for the following application + * configuration options are disabled: + * + * * @ref CONFIGURE_IDLE_TASK_BODY + * + * * @ref CONFIGURE_IDLE_TASK_STACK_SIZE + * + * * @ref CONFIGURE_INTERRUPT_STACK_SIZE + * + * The optional BSP provided initial extension set is disabled (see initial + * extension sets). The optional BSP provided prerequisite IO device drivers + * are disabled (see Device Driver Configuration). The optional BSP provided + * support for sbrk() is disabled. + * + * This configuration option provides an all or nothing choice with respect to + * the optional BSP provided settings. + * + * @par Default Configuration + * If this configuration option is undefined, then the described feature is not + * enabled. + */ +#define CONFIGURE_DISABLE_BSP_SETTINGS + /* Generated from spec:/acfg/if/disable-newlib-reentrancy */ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_DISABLE_NEWLIB_REENTRANCY + * * In case this configuration option is defined, then the Newlib reentrancy * support per thread is disabled and a global reentrancy structure is used. * @@ -2603,6 +2697,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_EXECUTIVE_RAM_SIZE + * * The value of this configuration option defines the RTEMS Workspace size in * bytes. * @@ -2611,19 +2707,19 @@ * stack space size is calculated by ``<rtems/confdefs.h>`` based on the values * configuration options. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINTPTR_MAX</a>. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes @@ -2637,6 +2733,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_EXTRA_TASK_STACKS + * * The value of this configuration option defines the number of bytes the * applications wishes to add to the task stack requirements calculated by * ``<rtems/confdefs.h>``. @@ -2644,15 +2742,16 @@ * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock * @@ -2663,19 +2762,42 @@ */ #define CONFIGURE_EXTRA_TASK_STACKS +/* Generated from spec:/acfg/if/init */ + +/** + * @brief This configuration option is a boolean feature define. + * + * @anchor CONFIGURE_INIT + * + * While this configuration option is defined, when the ``<rtems/confdefs.h>`` + * is included, the system settings defined by present application + * configuration options are statically allocated and initialized. All user + * provided application configuration options defined before the include of + * ``<rtems/confdefs.h>`` are evaluated. They define the actual system + * settings. + * + * @par Default Configuration + * There is no default configuration associated with this configuration option. + * If ``<rtems/confdefs.h>`` is included and this configuration option is not + * defined, then only white space is included. + */ +#define CONFIGURE_INIT + /* Generated from spec:/acfg/if/initial-extensions */ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_INITIAL_EXTENSIONS + * * The value of this configuration option is used to initialize the table of * initial user extensions. * * @par Default Value * The default value is the empty list. * - * @par Value Constraints - * The value of this configuration option shall be a list of initializers for + * @par Constraints + * The value of the configuration option shall be a list of initializers for * structures of type ::rtems_extensions_table. * * @par Notes @@ -2690,32 +2812,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_INTERRUPT_STACK_SIZE + * * The value of this configuration option defines the size of an interrupt * stack in bytes. * * @par Default Value - * The default value is #BSP_INTERRUPT_STACK_SIZE in case it is defined, - * otherwise the default value is #CPU_STACK_MINIMUM_SIZE. + * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not + * defined and #BSP_INTERRUPT_STACK_SIZE is provided by the BSP, then the + * default value is defined by #BSP_INTERRUPT_STACK_SIZE, otherwise the default + * value is #CPU_STACK_MINIMUM_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. + * * The value of the configuration option shall be greater than or equal to a + * BSP-specific and application-specific minimum value. * - * * It shall be small enough so that the interrupt stack area calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. + * * The value of the configuration option shall be small enough so that the + * interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. * - * * It shall be aligned according to #CPU_INTERRUPT_STACK_ALIGNMENT. + * * The value of the configuration option shall be aligned according to + * #CPU_INTERRUPT_STACK_ALIGNMENT. * @endparblock * * @par Notes * @parblock - * There is one interrupt stack available for each configured processor - * (#CONFIGURE_MAXIMUM_PROCESSORS). The interrupt stack areas are statically + * There is one interrupt stack available for each configured processor (@ref + * CONFIGURE_MAXIMUM_PROCESSORS). The interrupt stack areas are statically * allocated in a special linker section (``.rtemsstack.interrupt``). The * placement of this linker section is BSP-specific. * @@ -2723,12 +2850,12 @@ * to perform the sequential system initialization before the multithreading is * started. * - * The interrupt stacks are covered by the stack checker, see - * #CONFIGURE_STACK_CHECKER_ENABLED. However, using a too small interrupt - * stack size may still result in undefined behaviour. + * The interrupt stacks are covered by the stack checker, see @ref + * CONFIGURE_STACK_CHECKER_ENABLED. However, using a too small interrupt stack + * size may still result in undefined behaviour. * - * In releases before RTEMS 5.1 the default value was - * #CONFIGURE_MINIMUM_TASK_STACK_SIZE instead of #CPU_STACK_MINIMUM_SIZE. + * In releases before RTEMS 5.1 the default value was @ref + * CONFIGURE_MINIMUM_TASK_STACK_SIZE instead of #CPU_STACK_MINIMUM_SIZE. * @endparblock */ #define CONFIGURE_INTERRUPT_STACK_SIZE @@ -2738,6 +2865,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_MALLOC_DIRTY + * * In case this configuration option is defined, then each memory area returned * by C Program Heap allocator functions such as malloc() is dirtied with a * ``0xCF`` byte pattern before it is handed over to the application. @@ -2748,8 +2877,8 @@ * * @par Notes * The dirtying performed by this option is carried out for each successful - * memory allocation from the C Program Heap in contrast to - * #CONFIGURE_DIRTY_MEMORY which dirties the memory only once during the system + * memory allocation from the C Program Heap in contrast to @ref + * CONFIGURE_DIRTY_MEMORY which dirties the memory only once during the system * initialization. */ #define CONFIGURE_MALLOC_DIRTY @@ -2759,25 +2888,27 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_FILE_DESCRIPTORS + * * The value of this configuration option defines the maximum number of file * like objects that can be concurrently open. * * @par Default Value * The default value is 3. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes @@ -2791,6 +2922,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_PROCESSORS + * * The value of this configuration option defines the maximum number of * processors an application intends to use. The number of actually available * processors depends on the hardware and may be less. It is recommended to @@ -2800,14 +2933,15 @@ * @par Default Value * The default value is 1. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to one. + * * The value of the configuration option shall be greater than or equal to + * one. * - * * It shall be less than or equal to #CPU_MAXIMUM_PROCESSORS. + * * The value of the configuration option shall be less than or equal to + * #CPU_MAXIMUM_PROCESSORS. * @endparblock * * @par Notes @@ -2815,43 +2949,95 @@ * If there are more processors available than configured, the rest will be * ignored. * - * This configuration option is only evaluated in SMP configurations (e.g. - * RTEMS was built with the ``--enable-smp`` build configuration option). In + * This configuration option is only evaluated in SMP configurations of RTEMS + * (e.g. RTEMS was built with the SMP build configuration option enabled). In * all other configurations it has no effect. * @endparblock */ #define CONFIGURE_MAXIMUM_PROCESSORS +/* Generated from spec:/acfg/if/max-thread-local-storage-size */ + +/** + * @brief This configuration option is an integer define. + * + * @anchor CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE + * + * If the value of this configuration option is greater than zero, then it + * defines the maximum thread-local storage size, otherwise the thread-local + * storage size is defined by the linker depending on the thread-local storage + * objects used by the application in the statically-linked executable. + * + * @par Default Value + * The default value is 0. + * + * @par Constraints + * @parblock + * The following constraints apply to this configuration option: + * + * * The value of the configuration option shall be greater than or equal to + * zero. + * + * * The value of the configuration option shall be less than or equal to <a + * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. + * + * * The value of the configuration option shall be an integral multiple of + * #RTEMS_TASK_STORAGE_ALIGNMENT. + * @endparblock + * + * @par Notes + * @parblock + * This configuration option can be used to reserve space for the dynamic + * linking of modules with thread-local storage objects. + * + * If the thread-local storage size defined by the thread-local storage objects + * used by the application in the statically-linked executable is greater than + * a non-zero value of this configuration option, then a fatal error will occur + * during system initialization. + * + * Use RTEMS_ALIGN_UP() and #RTEMS_TASK_STORAGE_ALIGNMENT to adjust the size to + * meet the minimum alignment requirement of a thread-local storage area. + * + * The actual thread-local storage size is determined when the application + * executable is linked. The ``rtems-exeinfo`` command line tool included in + * the RTEMS Tools can be used to obtain the thread-local storage size and + * alignment of an application executable. + * @endparblock + */ +#define CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE + /* Generated from spec:/acfg/if/max-thread-name-size */ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_THREAD_NAME_SIZE + * * The value of this configuration option defines the maximum thread name size * including the terminating ``NUL`` character. * * @par Default Value * The default value is 16. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes * @parblock * The default value was chosen for Linux compatibility, see <a - * href=http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>PTHREAD_SETNAME_NP(3)</a>. + * href="http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html">pthread_setname_np()</a>. * * The size of the thread control block is increased by the maximum thread name * size. @@ -2866,6 +3052,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MEMORY_OVERHEAD + * * The value of this configuration option defines the number of kilobytes the * application wishes to add to the RTEMS Workspace size calculated by * ``<rtems/confdefs.h>``. @@ -2873,28 +3061,29 @@ * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock * * @par Notes * This configuration option should only be used when it is suspected that a * bug in ``<rtems/confdefs.h>`` has resulted in an underestimation. Typically * the memory allocation will be too low when an application does not account - * for all message queue buffers or task stacks, see - * #CONFIGURE_MESSAGE_BUFFER_MEMORY. + * for all message queue buffers or task stacks, see @ref + * CONFIGURE_MESSAGE_BUFFER_MEMORY. */ #define CONFIGURE_MEMORY_OVERHEAD @@ -2903,32 +3092,35 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MESSAGE_BUFFER_MEMORY + * * The value of this configuration option defines the number of bytes reserved * for message queue buffers in the RTEMS Workspace. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock * * @par Notes * @parblock - * The configuration options #CONFIGURE_MAXIMUM_MESSAGE_QUEUES and - * #CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES define only how many message queues + * The configuration options @ref CONFIGURE_MAXIMUM_MESSAGE_QUEUES and @ref + * CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES define only how many message queues * can be created by the application. The memory for the message buffers is * configured by this option. For each message queue you have to reserve some * memory for the message buffers. The size depends on the maximum number of @@ -2980,6 +3172,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MICROSECONDS_PER_TICK + * * The value of this configuration option defines the length of time in * microseconds between clock ticks (clock tick quantum). * @@ -3001,14 +3195,15 @@ * @par Default Value * The default value is 10000. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to a value defined by the Clock Driver. + * * The value of the configuration option shall be greater than or equal to a + * value defined by the Clock Driver. * - * * It shall be less than or equal to a value defined by the Clock Driver. + * * The value of the configuration option shall be less than or equal to a + * value defined by the Clock Driver. * * * The resulting clock ticks per second should be an integer. * @endparblock @@ -3016,7 +3211,7 @@ * @par Notes * @parblock * This configuration option has no impact if the Clock Driver is not - * configured, see #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER. + * configured, see @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER. * * There may be Clock Driver specific limits on the resolution or maximum value * of a clock tick quantum. @@ -3029,30 +3224,32 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MINIMUM_TASK_STACK_SIZE + * * The value of this configuration option defines the minimum stack size in * bytes for every user task or thread in the system. * * @par Default Value * The default value is #CPU_STACK_MINIMUM_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. + * * The value of the configuration option shall be greater than or equal to a + * BSP-specific and application-specific minimum value. * @endparblock * * @par Notes * @parblock * Adjusting this parameter should be done with caution. Examining the actual * stack usage using the stack checker usage reporting facility is recommended - * (see also #CONFIGURE_STACK_CHECKER_ENABLED). + * (see also @ref CONFIGURE_STACK_CHECKER_ENABLED). * * This parameter can be used to lower the minimum from that recommended. This * can be used in low memory systems to reduce memory consumption for stacks. @@ -3064,11 +3261,11 @@ * overflow without performing analysis on actual consumption. * * By default, this configuration parameter defines also the minimum stack size - * of POSIX threads. This can be changed with the - * #CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE configuration option. + * of POSIX threads. This can be changed with the @ref + * CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE configuration option. * * In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was - * used to define the default value of #CONFIGURE_INTERRUPT_STACK_SIZE. + * used to define the default value of @ref CONFIGURE_INTERRUPT_STACK_SIZE. * @endparblock */ #define CONFIGURE_MINIMUM_TASK_STACK_SIZE @@ -3078,6 +3275,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_STACK_CHECKER_ENABLED + * * In case this configuration option is defined, then the stack checker is * enabled. * @@ -3101,26 +3300,28 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_TICKS_PER_TIMESLICE + * * The value of this configuration option defines the length of the timeslice * quantum in ticks for each task. * * @par Default Value * The default value is 50. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * one. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * * @par Notes * This configuration option has no impact if the Clock Driver is not - * configured, see #CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER. + * configured, see @ref CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER. */ #define CONFIGURE_TICKS_PER_TIMESLICE @@ -3129,6 +3330,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_UNIFIED_WORK_AREAS + * * In case this configuration option is defined, then the RTEMS Workspace and * the C Program Heap will be one pool of memory. * @@ -3144,7 +3347,7 @@ * pool is very undesirable. * * In high memory environments, this is desirable when you want to use the <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a> option. You will be able to create objects until you run out of * all available memory rather then just until you run out of RTEMS Workspace. * @endparblock @@ -3156,18 +3359,20 @@ /** * @brief This configuration option is an integer define. * - * If #CONFIGURE_UNLIMITED_OBJECTS is defined, then the value of this + * @anchor CONFIGURE_UNLIMITED_ALLOCATION_SIZE + * + * If @ref CONFIGURE_UNLIMITED_OBJECTS is defined, then the value of this * configuration option defines the default objects maximum of all object * classes supporting <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a> to ``rtems_resource_unlimited( * CONFIGURE_UNLIMITED_ALLOCATION_SIZE )``. * * @par Default Value * The default value is 8. * - * @par Value Constraints - * The value of this configuration option shall meet the constraints of all + * @par Constraints + * The value of the configuration option shall meet the constraints of all * object classes to which it is applied. * * @par Notes @@ -3186,6 +3391,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_UNLIMITED_OBJECTS + * * In case this configuration option is defined, then unlimited objects are * used by default. * @@ -3195,14 +3402,14 @@ * * @par Notes * @parblock - * When using unlimited objects, it is common practice to also specify - * #CONFIGURE_UNIFIED_WORK_AREAS so the system operates with a single pool of + * When using unlimited objects, it is common practice to also specify @ref + * CONFIGURE_UNIFIED_WORK_AREAS so the system operates with a single pool of * memory for both RTEMS Workspace and C Program Heap. * * This option does not override an explicit configuration for a particular * object class by the user. * - * See also #CONFIGURE_UNLIMITED_ALLOCATION_SIZE. + * See also @ref CONFIGURE_UNLIMITED_ALLOCATION_SIZE. * @endparblock */ #define CONFIGURE_UNLIMITED_OBJECTS @@ -3212,6 +3419,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION + * * In case this configuration option is defined, then the system initialization * is verbose. * @@ -3230,6 +3439,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY + * * In case this configuration option is defined, then the memory areas used for * the RTEMS Workspace and the C Program Heap are zeroed with a ``0x00`` byte * pattern during system initialization. @@ -3241,7 +3452,7 @@ * @par Notes * Zeroing memory can add significantly to the system initialization time. It * is not necessary for RTEMS but is often assumed by support libraries. In - * case #CONFIGURE_DIRTY_MEMORY is also defined, then the memory is first + * case @ref CONFIGURE_DIRTY_MEMORY is also defined, then the memory is first * dirtied and then zeroed. */ #define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY @@ -3265,14 +3476,18 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_IDLE_TASK_BODY + * * The value of this configuration option initializes the IDLE thread body. * * @par Default Value - * If #BSP_IDLE_TASK_BODY is defined, then this will be the default value, - * otherwise the default value is ``_CPU_Thread_Idle_body``. + * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not + * defined and #BSP_IDLE_TASK_BODY is provided by the BSP, then the default + * value is defined by #BSP_IDLE_TASK_BODY, otherwise the default value is + * ``_CPU_Thread_Idle_body``. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void *( *idle_body )( uintptr_t )``. * * @par Notes @@ -3282,7 +3497,12 @@ * exists. * * IDLE threads can be used to initialize the application, see configuration - * option #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION. + * option @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION. + * + * The BSP may have knowledge of the specific CPU model, system controller + * logic, and peripheral buses, so a BSP-specific IDLE task may be capable of + * turning components off to save power during extended periods of no task + * activity. * @endparblock */ #define CONFIGURE_IDLE_TASK_BODY @@ -3292,6 +3512,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION + * * This configuration option is defined to indicate that the user has * configured **no** user initialization tasks or threads and that the user * provided IDLE task will perform application initialization and then @@ -3311,19 +3533,24 @@ * The IDLE task shall run at the lowest priority of all tasks in the system. * * If this configuration option is defined, then it is mandatory to configure a - * user IDLE task with the #CONFIGURE_IDLE_TASK_BODY configuration option, + * user IDLE task with the @ref CONFIGURE_IDLE_TASK_BODY configuration option, * otherwise a compile time error in the configuration file will occur. * - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * - * * #CONFIGURE_RTEMS_INIT_TASKS_TABLE, + * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE, * - * * #CONFIGURE_POSIX_INIT_THREAD_TABLE, or + * * @ref CONFIGURE_POSIX_INIT_THREAD_TABLE, or * * * ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`` * * otherwise a compile time error in the configuration file will occur. + * + * If no Classic API initialization task and no POSIX API initialization thread + * is configured, then no <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a> is performed. * @endparblock */ #define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION @@ -3333,31 +3560,92 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_IDLE_TASK_STACK_SIZE + * * The value of this configuration option defines the task stack size for an * IDLE task. * * @par Default Value - * The default value is #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * If the @ref CONFIGURE_DISABLE_BSP_SETTINGS configuration option is not + * defined and #BSP_IDLE_TASK_STACK_SIZE is provided by the BSP, then the + * default value is defined by #BSP_IDLE_TASK_STACK_SIZE, otherwise the default + * value is defined by the @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE configuration + * option. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. + * * The value of the configuration option shall be greater than or equal to a + * BSP-specific and application-specific minimum value. * - * * It shall be small enough so that the IDLE task stack area calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. + * * The value of the configuration option shall be small enough so that the + * IDLE task stack area calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. * @endparblock * * @par Notes * In SMP configurations, there is one IDLE task per configured processor, see - * #CONFIGURE_MAXIMUM_PROCESSORS. + * @ref CONFIGURE_MAXIMUM_PROCESSORS. */ #define CONFIGURE_IDLE_TASK_STACK_SIZE +/* Generated from spec:/acfg/if/idle-task-storage-size */ + +/** + * @brief This configuration option is an integer define. + * + * @anchor CONFIGURE_IDLE_TASK_STORAGE_SIZE + * + * If this configuration option is specified, then the task storage areas for + * the IDLE tasks are statically allocated by ``<rtems/confdefs.h>``. The + * value of this configuration option defines the size in bytes of the task + * storage area of each IDLE task in the system. + * + * @par Default Value + * This configuration option has no default value. If it is not specified, + * then the task storage area for each IDLE task will allocated from the RTEMS + * Workspace or through a custom IDLE task stack allocator. + * + * @par Constraints + * The value of the configuration option shall be greater than or equal to @ref + * CONFIGURE_IDLE_TASK_STACK_SIZE. + * + * @par Notes + * @parblock + * By default, the IDLE task storage areas are allocated from the RTEMS + * Workspace. Applications which do not want to use a heap allocator can use + * this configuration option to use statically allocated memory for the IDLE + * task storage areas. The task storage area contains the task stack, the + * thread-local storage, and the floating-point context on architectures with a + * separate floating-point context. The size of the thread-local storage area + * is defined at link time or by the @ref + * CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE configuration option. You have + * to estimate the actual thread-local storage size if you want to use this + * configuration option. If the IDLE task stack size would be less than the + * value defined by the @ref CONFIGURE_IDLE_TASK_STACK_SIZE configuration + * option, for example because the thread-local storage size is larger than + * expected, then the system terminates with the INTERNAL_ERROR_CORE fatal + * source and the INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL fatal code during + * system initialization. + * + * The value of this configuration option is passed to + * RTEMS_TASK_STORAGE_SIZE() by ``<rtems/confdefs.h>`` to determine the actual + * size of the statically allocated area to take architecture-specific + * overheads into account. + * + * The + * + * * ``CONFIGURE_IDLE_TASK_STORAGE_SIZE``, and + * + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE + * + * configuration options are mutually exclusive. + * @endparblock + */ +#define CONFIGURE_IDLE_TASK_STORAGE_SIZE + /** @} */ /* Generated from spec:/acfg/if/group-mpci */ @@ -3368,12 +3656,13 @@ * * @ingroup RTEMSApplConfig * - * This section describes multiprocessing related configuration options. The - * options are only used if RTEMS was built with the - * ``--enable-multiprocessing`` build configuration option. Additionally, this - * class of configuration options are only applicable if the configuration - * option #CONFIGURE_MP_APPLICATION is defined. The multiprocessing (MPCI) - * support must not be confused with the SMP support. + * This section describes multiprocessing related configuration options. The + * options are only used if RTEMS was built when the multiprocessing build + * configuration option is enabled. The multiprocessing configuration is + * distinct from the SMP configuration. Additionally, this class of + * configuration options are only applicable if the configuration option @ref + * CONFIGURE_MP_APPLICATION is defined. The multiprocessing (MPCI) support + * must not be confused with the SMP support. * * @{ */ @@ -3383,32 +3672,34 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK + * * The value of this configuration option defines the number of bytes the - * applications wishes to add to the MPCI task stack on top of - * #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * applications wishes to add to the MPCI task stack on top of @ref + * CONFIGURE_MINIMUM_TASK_STACK_SIZE. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * - * * It shall be small enough so that the MPCI receive server stack area - * calculation carried out by ``<rtems/confdefs.h>`` does not overflow an - * integer of type <a + * * The value of the configuration option shall be small enough so that the + * MPCI receive server stack area calculation carried out by + * ``<rtems/confdefs.h>`` does not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/size_t">size_t</a>. * @endparblock * * @par Notes - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. */ #define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK @@ -3417,6 +3708,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_MP_APPLICATION + * * This configuration option is defined to indicate that the application * intends to be part of a multiprocessing configuration. Additional * configuration options are assumed to be provided. @@ -3427,9 +3720,9 @@ * * @par Notes * This configuration option shall be undefined if the multiprocessing support - * is not enabled (e.g. RTEMS was built without the - * ``--enable-multiprocessing`` build configuration option). Otherwise a - * compile time error in the configuration file will occur. + * is not enabled (e.g. RTEMS was built without the multiprocessing build + * configuration option enabled). Otherwise a compile time error in the + * configuration file will occur. */ #define CONFIGURE_MP_APPLICATION @@ -3438,20 +3731,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS + * * The value of this configuration option defines the maximum number of * concurrently active global objects in a multiprocessor system. * * @par Default Value * The default value is 32. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * @@ -3460,8 +3755,8 @@ * This value corresponds to the total number of objects which can be created * with the #RTEMS_GLOBAL attribute. * - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. * @endparblock */ #define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS @@ -3471,26 +3766,28 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MP_MAXIMUM_NODES + * * The value of this configuration option defines the maximum number of nodes * in a multiprocessor system. * * @par Default Value * The default value is 2. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * * @par Notes - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. */ #define CONFIGURE_MP_MAXIMUM_NODES @@ -3499,6 +3796,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MP_MAXIMUM_PROXIES + * * The value of this configuration option defines the maximum number of * concurrently active thread/task proxies on this node in a multiprocessor * system. @@ -3506,14 +3805,14 @@ * @par Default Value * The default value is 32. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * @@ -3522,10 +3821,10 @@ * Since a proxy is used to represent a remote task/thread which is blocking on * this node. This configuration parameter reflects the maximum number of * remote tasks/threads which can be blocked on objects on this node, see <a - * href=https://docs.rtems.org/branches/master/c-user/multiprocessing.html#proxies>Proxies</a>. + * href="https://docs.rtems.org/branches/master/c-user/multiprocessing.html#proxies">Proxies</a>. * - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. * @endparblock */ #define CONFIGURE_MP_MAXIMUM_PROXIES @@ -3535,14 +3834,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_MP_MPCI_TABLE_POINTER + * * The value of this configuration option initializes the MPCI Configuration * Table. * * @par Default Value * The default value is ``&MPCI_table``. * - * @par Value Constraints - * The value of this configuration option shall be a pointer to + * @par Constraints + * The value of the configuration option shall be a pointer to * ::rtems_mpci_table. * * @par Notes @@ -3551,8 +3852,8 @@ * Multiprocessor System assuming the BSP provides the proper set of supporting * methods. * - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. * @endparblock */ #define CONFIGURE_MP_MPCI_TABLE_POINTER @@ -3562,20 +3863,22 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MP_NODE_NUMBER + * * The value of this configuration option defines the node number of this node * in a multiprocessor system. * * @par Default Value * The default value is ``NODE_NUMBER``. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. * @endparblock * @@ -3586,8 +3889,8 @@ * ``NODE_NUMBER`` set to different values. The test programs behave * differently based upon their node number. * - * This configuration option is only evaluated if #CONFIGURE_MP_APPLICATION is - * defined. + * This configuration option is only evaluated if @ref CONFIGURE_MP_APPLICATION + * is defined. * @endparblock */ #define CONFIGURE_MP_NODE_NUMBER @@ -3603,8 +3906,8 @@ * * This section describes configuration options related to the POSIX API. Most * POSIX API objects are available by default since RTEMS 5.1. The queued - * signals and timers are only available if RTEMS was built with the - * ``--enable-posix`` build configuration option. + * signals and timers are only available if RTEMS was built with the enable + * POSIX build configuration option. * * @{ */ @@ -3614,34 +3917,37 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_KEYS + * * The value of this configuration option defines the maximum number of POSIX * API Keys that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_POSIX_KEYS @@ -3651,36 +3957,39 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS + * * The value of this configuration option defines the maximum number of key * value pairs used by POSIX API Keys that can be concurrently active. * * @par Default Value - * The default value is #CONFIGURE_MAXIMUM_POSIX_KEYS * - * #CONFIGURE_MAXIMUM_TASKS + #CONFIGURE_MAXIMUM_POSIX_THREADS. + * The default value is @ref CONFIGURE_MAXIMUM_POSIX_KEYS * ( @ref + * CONFIGURE_MAXIMUM_TASKS + @ref CONFIGURE_MAXIMUM_POSIX_THREADS ). * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * * A key value pair is created by pthread_setspecific() if the value is not <a @@ -3695,40 +4004,44 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES + * * The value of this configuration option defines the maximum number of POSIX * API Message Queues that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. You have to account for the memory used to store the messages - * of each message queue, see #CONFIGURE_MESSAGE_BUFFER_MEMORY. + * of each message queue, see @ref CONFIGURE_MESSAGE_BUFFER_MEMORY. */ #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES @@ -3737,38 +4050,42 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS + * * The value of this configuration option defines the maximum number of POSIX * API Queued Signals that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built - * without the ``RTEMS_POSIX_API = True`` build configuration option). - * Otherwise a compile time error in the configuration file will occur. + * * The value of the configuration option shall be zero if the POSIX API is + * not enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True`` + * build configuration option). Otherwise a compile time error in the + * configuration file will occur. * @endparblock * * @par Notes * @parblock * Unlimited objects are not available for queued signals. * - * Queued signals are only available if RTEMS was built with the - * ``--enable-posix`` build configuration option. + * Queued signals are only available if RTEMS was built with the POSIX API + * build configuration option enabled. * @endparblock */ #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS @@ -3778,39 +4095,43 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_SEMAPHORES + * * The value of this configuration option defines the maximum number of POSIX * API Named Semaphores that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * * Named semaphores are created with sem_open(). Semaphores initialized with @@ -3825,38 +4146,42 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_SHMS + * * The value of this configuration option defines the maximum number of POSIX * API Shared Memory objects that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the RTEMS Workspace size calculation - * carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type - * <a href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. + * * The value of the configuration option shall be small enough so that the + * RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` + * does not overflow an integer of type <a + * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * @endparblock * * @par Notes * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. */ #define CONFIGURE_MAXIMUM_POSIX_SHMS @@ -3866,44 +4191,48 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_THREADS + * * The value of this configuration option defines the maximum number of POSIX * API Threads that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * * This calculations for the required memory in the RTEMS Workspace for threads * assume that each thread has a minimum stack size and has floating point - * support enabled. The configuration option #CONFIGURE_EXTRA_TASK_STACKS is - * used to specify thread stack requirements **above** the minimum size + * support enabled. The configuration option @ref CONFIGURE_EXTRA_TASK_STACKS + * is used to specify thread stack requirements **above** the minimum size * required. * - * The maximum number of Classic API Tasks is specified by - * #CONFIGURE_MAXIMUM_TASKS. + * The maximum number of Classic API Tasks is specified by @ref + * CONFIGURE_MAXIMUM_TASKS. * * All POSIX threads have floating point enabled. * @endparblock @@ -3915,43 +4244,47 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_POSIX_TIMERS + * * The value of this configuration option defines the maximum number of POSIX * API Timers that can be concurrently active. * * @par Default Value * The default value is 0. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to 65535. + * * The value of the configuration option shall be less than or equal to + * 65535. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * - * * It may be defined through rtems_resource_unlimited() the enable unlimited - * objects for the object class, if the value passed to - * rtems_resource_unlimited() satisfies all other constraints of the - * configuration option. + * * The value of the configuration option may be defined through + * rtems_resource_unlimited() the enable unlimited objects for the object + * class, if the value passed to rtems_resource_unlimited() satisfies all + * other constraints of the configuration option. * - * * It shall be zero if the POSIX API is not enabled (e.g. RTEMS was built - * without the ``RTEMS_POSIX_API = True`` build configuration option). - * Otherwise a compile time error in the configuration file will occur. + * * The value of the configuration option shall be zero if the POSIX API is + * not enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True`` + * build configuration option). Otherwise a compile time error in the + * configuration file will occur. * @endparblock * * @par Notes * @parblock * This object class can be configured in unlimited allocation mode, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects>Unlimited + * href="https://docs.rtems.org/branches/master/c-user/config/intro.html#unlimited-objects">Unlimited * Objects</a>. * - * Timers are only available if RTEMS was built with the ``--enable-posix`` - * build configuration option. + * Timers are only available if RTEMS was built with the POSIX API build + * configuration option enabled. * @endparblock */ #define CONFIGURE_MAXIMUM_POSIX_TIMERS @@ -3961,24 +4294,26 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE + * * The value of this configuration option defines the minimum stack size in * bytes for every POSIX thread in the system. * * @par Default Value - * The default value is two times the value of - * #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * The default value is two times the value of @ref + * CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * - * * It shall be greater than or equal to a BSP-specific and - * application-specific minimum value. + * * The value of the configuration option shall be greater than or equal to a + * BSP-specific and application-specific minimum value. * @endparblock */ #define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE @@ -4004,14 +4339,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT + * * The value of this configuration option initializes the entry point of the * POSIX API initialization thread. * * @par Default Value * The default value is ``POSIX_Init``. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void *( *entry_point )( void * )``. * * @par Notes @@ -4025,21 +4362,24 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE + * * The value of this configuration option defines the thread stack size of the * POSIX API initialization thread. * * @par Default Value - * The default value is #CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE. + * The default value is @ref CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE. + * * The value of the configuration option shall be greater than or equal to + * @ref CONFIGURE_MINIMUM_TASK_STACK_SIZE. * - * * It shall be small enough so that the task stack space calculation carried - * out by ``<rtems/confdefs.h>`` does not overflow an integer of type <a + * * The value of the configuration option shall be small enough so that the + * task stack space calculation carried out by ``<rtems/confdefs.h>`` does + * not overflow an integer of type <a * href="https://en.cppreference.com/w/c/types/integer">uintptr_t</a>. * @endparblock */ @@ -4050,6 +4390,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_POSIX_INIT_THREAD_TABLE + * * In case this configuration option is defined, then exactly one POSIX * initialization thread is configured. * @@ -4059,16 +4401,21 @@ * * @par Notes * @parblock - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * - * * #CONFIGURE_RTEMS_INIT_TASKS_TABLE, + * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE, * * * ``CONFIGURE_POSIX_INIT_THREAD_TABLE``, or * - * * #CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION + * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION * * otherwise a compile time error in the configuration file will occur. + * + * If no Classic API initialization task is configured, then the POSIX API + * initialization thread performs the <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a>. * @endparblock */ #define CONFIGURE_POSIX_INIT_THREAD_TABLE @@ -4090,16 +4437,16 @@ * described in this section. * * By default, the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic * Priority Scheduler</a> algorithm is used in uniprocessor configurations. In - * case SMP is enabled and the configured maximum processors - * (#CONFIGURE_MAXIMUM_PROCESSORS) is greater than one, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest + * case SMP is enabled and the configured maximum processors (@ref + * CONFIGURE_MAXIMUM_PROCESSORS) is greater than one, then the <a + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest * Deadline First SMP Scheduler</a> is selected as the default scheduler * algorithm. * * For the schedulers provided by RTEMS (see <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html>Scheduling + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/index.html">Scheduling * Concepts</a>), the configuration is straightforward. All that is required * is to define the configuration option which specifies which scheduler you * want for in your application. @@ -4116,30 +4463,32 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_CBS_MAXIMUM_SERVERS + * * The value of this configuration option defines the maximum number Constant * Bandwidth Servers that can be concurrently active. * * @par Default Value - * The default value is #CONFIGURE_MAXIMUM_TASKS. + * The default value is @ref CONFIGURE_MAXIMUM_TASKS. * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be greater than or equal to zero. + * * The value of the configuration option shall be greater than or equal to + * zero. * - * * It shall be less than or equal to <a + * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/limits">SIZE_MAX</a>. * - * * It shall be less than or equal to a BSP-specific and application-specific - * value which depends on the size of the memory available to the - * application. + * * The value of the configuration option shall be less than or equal to a + * BSP-specific and application-specific value which depends on the size of + * the memory available to the application. * @endparblock * * @par Notes - * This configuration option is only evaluated if the configuration option - * #CONFIGURE_SCHEDULER_CBS is defined. + * This configuration option is only evaluated if the configuration option @ref + * CONFIGURE_SCHEDULER_CBS is defined. */ #define CONFIGURE_CBS_MAXIMUM_SERVERS @@ -4148,23 +4497,25 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_MAXIMUM_PRIORITY + * * For the following schedulers * * * <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic * Priority Scheduler</a>, which is the default in uniprocessor - * configurations and can be configured through the - * #CONFIGURE_SCHEDULER_PRIORITY configuration option, + * configurations and can be configured through the @ref + * CONFIGURE_SCHEDULER_PRIORITY configuration option, * * * <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic - * Priority SMP Scheduler</a> which can be configured through the - * #CONFIGURE_SCHEDULER_PRIORITY_SMP configuration option, and + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic + * Priority SMP Scheduler</a> which can be configured through the @ref + * CONFIGURE_SCHEDULER_PRIORITY_SMP configuration option, and * * * <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary * Processor Affinity Priority SMP Scheduler</a> which can be configured - * through the #CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP configuration + * through the @ref CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP configuration * option * * this configuration option specifies the maximum numeric priority of any task @@ -4175,8 +4526,8 @@ * @par Default Value * The default value is 255. * - * @par Value Constraints - * The value of this configuration option shall be equal to 3, 7, 31, 63, 127, + * @par Constraints + * The value of the configuration option shall be equal to 3, 7, 31, 63, 127, * or 255. * * @par Notes @@ -4206,6 +4557,8 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_SCHEDULER_ASSIGNMENTS + * * The value of this configuration option is used to initialize the initial * scheduler to processor assignments. * @@ -4213,26 +4566,39 @@ * The default value of this configuration option is computed so that the * default scheduler is assigned to each configured processor (up to 32). * - * @par Value Constraints + * @par Constraints * @parblock - * The value of this configuration option shall satisfy all of the following - * constraints: + * The following constraints apply to this configuration option: * - * * It shall be a list of the following macros: + * * The value of the configuration option shall be a list of the following + * macros: * - * * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )`` + * * ``RTEMS_SCHEDULER_ASSIGN( scheduler_index, attributes )`` * * * ``RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER`` * - * * It shall be a list of exactly #CONFIGURE_MAXIMUM_PROCESSORS elements. + * The ``scheduler_index`` macro parameter shall be a valid index of the + * scheduler table defined by the @ref CONFIGURE_SCHEDULER_TABLE_ENTRIES + * configuration option. + * + * The ``attributes`` macro parameter shall be set to exactly one of the + * following constants: + * + * * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_MANDATORY`` + * + * * ``RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL`` + * + * * The value of the configuration option shall be a list of exactly @ref + * CONFIGURE_MAXIMUM_PROCESSORS elements. * @endparblock * * @par Notes * @parblock - * This configuration option is only evaluated in SMP configurations. + * Where the system was built with SMP support enabled, this configuration + * option is evaluated, otherwise it is ignored. * * This is an advanced configuration option, see <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a>. * @endparblock */ @@ -4243,8 +4609,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_CBS + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#constant-bandwidth-server-scheduling-cbs>Constant + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#constant-bandwidth-server-scheduling-cbs">Constant * Bandwidth Server Scheduling (CBS)</a> algorithm is made available to the * application. * @@ -4258,7 +4626,7 @@ * Think twice before you use it. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * exactly one processor. * @endparblock @@ -4270,8 +4638,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_EDF + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-scheduler>Earliest + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#earliest-deadline-first-scheduler">Earliest * Deadline First Scheduler</a> algorithm is made available to the application. * * @par Default Configuration @@ -4284,7 +4654,7 @@ * Think twice before you use it. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * exactly one processor. * @endparblock @@ -4296,8 +4666,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_EDF_SMP + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest * Deadline First SMP Scheduler</a> algorithm is made available to the * application. * @@ -4314,12 +4686,12 @@ * support enabled. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * up to 32 processors. * - * This scheduler algorithm is the default in SMP configurations if - * #CONFIGURE_MAXIMUM_PROCESSORS is greater than one. + * This scheduler algorithm is the default in SMP configurations if @ref + * CONFIGURE_MAXIMUM_PROCESSORS is greater than one. * @endparblock */ #define CONFIGURE_SCHEDULER_EDF_SMP @@ -4329,6 +4701,8 @@ /** * @brief This configuration option is an integer define. * + * @anchor CONFIGURE_SCHEDULER_NAME + * * The value of this configuration option defines the name of the default * scheduler. * @@ -4337,40 +4711,40 @@ * The default value is * * * ``"MEDF"`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-smp-scheduler>Earliest + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#earliest-deadline-first-smp-scheduler">Earliest * Deadline First SMP Scheduler</a>, * * * ``"MPA "`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary * Processor Affinity Priority SMP Scheduler</a>, * * * ``"MPD "`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic * Priority SMP Scheduler</a>, * * * ``"MPS "`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-smp-scheduler>Simple + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#simple-priority-smp-scheduler">Simple * Priority SMP Scheduler</a>, * * * ``"UCBS"`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#constant-bandwidth-server-scheduling-cbs>Constant + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#constant-bandwidth-server-scheduling-cbs">Constant * Bandwidth Server Scheduling (CBS)</a>, * * * ``"UEDF"`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#earliest-deadline-first-scheduler>Earliest + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#earliest-deadline-first-scheduler">Earliest * Deadline First Scheduler</a>, * * * ``"UPD "`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic * Priority Scheduler</a>, and * * * ``"UPS "`` for the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-scheduler>Simple + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#simple-priority-scheduler">Simple * Priority Scheduler</a>. * @endparblock * - * @par Value Constraints - * The value of this configuration option shall be convertible to an integer of + * @par Constraints + * The value of the configuration option shall be convertible to an integer of * type ::rtems_name. * * @par Notes @@ -4390,8 +4764,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_PRIORITY + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#deterministic-priority-scheduler">Deterministic * Priority Scheduler</a> algorithm is made available to the application. * * @par Default Configuration @@ -4404,15 +4780,15 @@ * Think twice before you use it. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * exactly one processor. * - * This scheduler algorithm is the default when #CONFIGURE_MAXIMUM_PROCESSORS - * is exactly one. + * This scheduler algorithm is the default when @ref + * CONFIGURE_MAXIMUM_PROCESSORS is exactly one. * - * The memory allocated for this scheduler depends on the - * #CONFIGURE_MAXIMUM_PRIORITY configuration option. + * The memory allocated for this scheduler depends on the @ref + * CONFIGURE_MAXIMUM_PRIORITY configuration option. * @endparblock */ #define CONFIGURE_SCHEDULER_PRIORITY @@ -4422,8 +4798,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#arbitrary-processor-affinity-priority-smp-scheduler>Arbitrary + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#arbitrary-processor-affinity-priority-smp-scheduler">Arbitrary * Processor Affinity Priority SMP Scheduler</a> algorithm is made available to * the application. * @@ -4440,12 +4818,12 @@ * support enabled. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * up to 32 processors. * - * The memory allocated for this scheduler depends on the - * #CONFIGURE_MAXIMUM_PRIORITY configuration option. + * The memory allocated for this scheduler depends on the @ref + * CONFIGURE_MAXIMUM_PRIORITY configuration option. * @endparblock */ #define CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP @@ -4455,8 +4833,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_PRIORITY_SMP + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#deterministic-priority-smp-scheduler>Deterministic + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#deterministic-priority-smp-scheduler">Deterministic * Priority SMP Scheduler</a> algorithm is made available to the application. * * @par Default Configuration @@ -4472,12 +4852,12 @@ * support enabled. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * up to 32 processors. * - * The memory allocated for this scheduler depends on the - * #CONFIGURE_MAXIMUM_PRIORITY configuration option. + * The memory allocated for this scheduler depends on the @ref + * CONFIGURE_MAXIMUM_PRIORITY configuration option. * @endparblock */ #define CONFIGURE_SCHEDULER_PRIORITY_SMP @@ -4487,8 +4867,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_SIMPLE + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-scheduler>Simple + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/uniprocessor-schedulers.html#simple-priority-scheduler">Simple * Priority Scheduler</a> algorithm is made available to the application. * * @par Default Configuration @@ -4501,7 +4883,7 @@ * Think twice before you use it. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * exactly one processor. * @endparblock @@ -4513,8 +4895,10 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_SIMPLE_SMP + * * In case this configuration option is defined, then the <a - * href=https://docs.rtems.org/branches/master/c-user/scheduling_concepts.html#simple-priority-smp-scheduler>Simple + * href="https://docs.rtems.org/branches/master/c-user/scheduling-concepts/smp-schedulers.html#simple-priority-smp-scheduler">Simple * Priority SMP Scheduler</a> algorithm is made available to the application. * * @par Default Configuration @@ -4530,7 +4914,7 @@ * support enabled. * * In case no explicit <a - * href=https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html>Clustered + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered * Scheduler Configuration</a> is present, then it is used as the scheduler for * up to 32 processors. * @endparblock @@ -4542,6 +4926,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_STRONG_APA + * * In case this configuration option is defined, then the Strong APA algorithm * is made available to the application. * @@ -4562,11 +4948,78 @@ */ #define CONFIGURE_SCHEDULER_STRONG_APA +/* Generated from spec:/acfg/if/scheduler-table-entries */ + +/** + * @brief This configuration option is an initializer define. + * + * @anchor CONFIGURE_SCHEDULER_TABLE_ENTRIES + * + * The value of this configuration option is used to initialize the table of + * configured schedulers. + * + * @par Default Value + * The default value of this configuration option is the definition of exactly + * one table entry for the configured scheduler. + * + * @par Constraints + * @parblock + * The following constraints apply to this configuration option: + * + * * The value of the configuration option shall be a list of the following + * macros: + * + * * ``RTEMS_SCHEDULER_TABLE_CBS( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_EDF( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_EDF_SMP( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_PRIORITY_AFFINITY_SMP( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_PRIORITY( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_SIMPLE( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_SIMPLE_SMP( name, obj_name )`` + * + * * ``RTEMS_SCHEDULER_TABLE_STRONG_APA( name, obj_name )`` + * + * The ``name`` macro parameter shall be the name associated with the + * scheduler data structures, see <a + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered + * Scheduler Configuration</a>. + * + * The ``obj_name`` macro parameter shall be the scheduler object name. It + * is recommended to define the scheduler object name through + * rtems_build_name(). + * + * * Where the system was build with SMP support enabled, the table shall have + * one or more entries, otherwise it shall have exactly one entry. + * @endparblock + * + * @par Notes + * @parblock + * Schedulers registered in the scheduler table by this configuration option + * are available to the application. The scheduler table entry index defines + * the index of the scheduler. + * + * This is an advanced configuration option, see <a + * href="https://docs.rtems.org/branches/master/c-user/config/scheduler-clustered.html">Clustered + * Scheduler Configuration</a>. + * @endparblock + */ +#define CONFIGURE_SCHEDULER_TABLE_ENTRIES + /* Generated from spec:/acfg/if/scheduler-user */ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_SCHEDULER_USER + * * In case this configuration option is defined, then the user shall provide a * scheduler algorithm to the application. * @@ -4598,8 +5051,9 @@ * evolving and not fully documented. It is recommended that you look at the * existing Deterministic Priority Scheduler in * ``cpukit/score/src/schedulerpriority*.c`` for guidance. For guidance on the - * configuration macros, please examine ``cpukit/sapi/include/confdefs.h`` for - * how these are defined for the Deterministic Priority Scheduler. + * configuration macros, please examine + * ``cpukit/include/rtems/confdefs/scheduler.h`` for how these are defined for + * the Deterministic Priority Scheduler. * @endparblock */ #define CONFIGURE_SCHEDULER_USER @@ -4628,6 +5082,8 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_TASK_STACK_ALLOCATOR + * * The value of this configuration option initializes the stack allocator * allocate handler. * @@ -4635,8 +5091,8 @@ * The default value is ``_Workspace_Allocate``, which indicates that task * stacks will be allocated from the RTEMS Workspace. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void *( *allocate )( size_t )``. * * @par Notes @@ -4644,11 +5100,11 @@ * A correctly configured system shall configure the following to be * consistent: * - * * #CONFIGURE_TASK_STACK_ALLOCATOR_INIT + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT * * * ``CONFIGURE_TASK_STACK_ALLOCATOR`` * - * * #CONFIGURE_TASK_STACK_DEALLOCATOR + * * @ref CONFIGURE_TASK_STACK_DEALLOCATOR * @endparblock */ #define CONFIGURE_TASK_STACK_ALLOCATOR @@ -4658,6 +5114,8 @@ /** * @brief This configuration option is a boolean feature define. * + * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE + * * In case this configuration option is defined, then the system is informed * that the task stack allocator does not use the RTEMS Workspace. * @@ -4667,15 +5125,67 @@ * * @par Notes * This configuration option may be used if a custom task stack allocator is - * configured, see #CONFIGURE_TASK_STACK_ALLOCATOR. + * configured, see @ref CONFIGURE_TASK_STACK_ALLOCATOR. */ #define CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE +/* Generated from spec:/acfg/if/task-stack-allocator-for-idle */ + +/** + * @brief This configuration option is an initializer define. + * + * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE + * + * The value of this configuration option is the address for the stack + * allocator allocate handler used to allocate the task storage area of each + * IDLE task. + * + * @par Default Value + * By default, the IDLE task storage area will be allocated from the RTEMS + * Workspace. + * + * @par Constraints + * @parblock + * The following constraints apply to this configuration option: + * + * * The value of the configuration option shall be defined to a valid function + * pointer of the type ``void *( *allocate )( uint32_t, size_t * )``. + * + * * The IDLE task stack allocator shall return a pointer to the allocated + * memory area or terminate the system with a fatal error if the allocation + * request cannot be satisfied. + * + * * The IDLE task stack allocator may increase the size of the allocated + * memory area. + * @endparblock + * + * @par Notes + * @parblock + * This configuration option is independent of the other thread stack allocator + * configuration options. It is assumed that any memory allocated for the task + * storage area of an IDLE task will not be from the RTEMS Workspace. + * + * The IDLE task stack allocator may increase the size of the allocated memory + * area to account for the actually allocated memory area. + * + * The + * + * * @ref CONFIGURE_IDLE_TASK_STORAGE_SIZE, and + * + * * ``CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE`` + * + * configuration options are mutually exclusive. + * @endparblock + */ +#define CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE + /* Generated from spec:/acfg/if/task-stack-allocator-init */ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_TASK_STACK_ALLOCATOR_INIT + * * The value of this configuration option initializes the stack allocator * initialization handler. * @@ -4683,8 +5193,8 @@ * The default value is <a * href="https://en.cppreference.com/w/c/types/NULL">NULL</a>. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void ( *initialize )( size_t )`` or to <a * href="https://en.cppreference.com/w/c/types/NULL">NULL</a>. * @@ -4695,9 +5205,9 @@ * * * ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` * - * * #CONFIGURE_TASK_STACK_ALLOCATOR + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR * - * * #CONFIGURE_TASK_STACK_DEALLOCATOR + * * @ref CONFIGURE_TASK_STACK_DEALLOCATOR * @endparblock */ #define CONFIGURE_TASK_STACK_ALLOCATOR_INIT @@ -4707,6 +5217,8 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_TASK_STACK_DEALLOCATOR + * * The value of this configuration option initializes the stack allocator * deallocate handler. * @@ -4714,8 +5226,8 @@ * The default value is ``_Workspace_Free``, which indicates that task stacks * will be allocated from the RTEMS Workspace. * - * @par Value Constraints - * The value of this configuration option shall be defined to a valid function + * @par Constraints + * The value of the configuration option shall be defined to a valid function * pointer of the type ``void ( *deallocate )( void * )``. * * @par Notes @@ -4723,9 +5235,9 @@ * A correctly configured system shall configure the following to be * consistent: * - * * #CONFIGURE_TASK_STACK_ALLOCATOR_INIT + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT * - * * #CONFIGURE_TASK_STACK_ALLOCATOR + * * @ref CONFIGURE_TASK_STACK_ALLOCATOR * * * ``CONFIGURE_TASK_STACK_DEALLOCATOR`` * @endparblock @@ -4737,14 +5249,16 @@ /** * @brief This configuration option is an initializer define. * + * @anchor CONFIGURE_TASK_STACK_FROM_ALLOCATOR + * * The value of this configuration option is used to calculate the task stack * space size. * * @par Default Value * The default value is a macro which supports the system heap allocator. * - * @par Value Constraints - * The value of this configuration option shall be defined to a macro which + * @par Constraints + * The value of the configuration option shall be defined to a macro which * accepts exactly one parameter and returns an unsigned integer. The * parameter will be an allocation size and the macro shall return this size * plus the overhead of the allocator to manage an allocation request for this @@ -4752,7 +5266,7 @@ * * @par Notes * This configuration option may be used if a custom task stack allocator is - * configured, see #CONFIGURE_TASK_STACK_ALLOCATOR. + * configured, see @ref CONFIGURE_TASK_STACK_ALLOCATOR. */ #define CONFIGURE_TASK_STACK_FROM_ALLOCATOR diff --git a/cpukit/doxygen/build.h b/cpukit/doxygen/build.h new file mode 100644 index 0000000000..696a6e1723 --- /dev/null +++ b/cpukit/doxygen/build.h @@ -0,0 +1,82 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file defines build system related Doxygen items. + */ + +/* + * Copyright (C) 2023 embedded brains GmbH & Co. KG + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup RTEMSImplBuild Build Options + * + * @ingroup RTEMSImpl + * + * @brief This group contains files generated by the build system. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file bsps/include/bspopts.h + * + * @brief This header file provides the BSP options definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/version-vc-key.h + * + * @brief This header file provides the version control key definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/config.h + * + * @brief This header file provides system configuration definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/rtems/testopts.h + * + * @brief This header file provides test program definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/rtems/score/cpuopts.h + * + * @brief This header file provides the CPU options definitions. + */ diff --git a/cpukit/doxygen/hash-algorithms.h b/cpukit/doxygen/hash-algorithms.h new file mode 100644 index 0000000000..499d04c1ed --- /dev/null +++ b/cpukit/doxygen/hash-algorithms.h @@ -0,0 +1,149 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file contains Doxygen items related to hash algorithms. + */ + +/* + * Copyright (C) 2023 embedded brains GmbH & Co. KG + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @defgroup RTEMSAPIHashAlgorithms Hash Algorithms + * + * @ingroup RTEMSAPI + * + * @brief This group contains interfaces to hash algorithms. + */ + +/** + * @file cpukit/include/md4.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the HD4 hash algorithm + * support. + */ + +/** + * @file cpukit/include/md5.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the HD5 hash algorithm + * support. + */ + +/** + * @file cpukit/include/sha224.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the SHA224 hash algorithm + * support. + */ + +/** + * @file cpukit/include/sha256.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the SHA256 hash algorithm + * support. + */ + +/** + * @file cpukit/include/sha384.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the SHA384 hash algorithm + * support. + */ + +/** + * @file cpukit/include/sha512.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the SHA512 hash algorithm + * support. + */ + +/** + * @file cpukit/include/sha512t.h + * + * @ingroup RTEMSAPIHashAlgorithms + * + * @brief This header file contains interfaces of the trucated SHA512 hash + * algorithm support. + */ + + +/** + * @defgroup RTEMSImplHashAlgorithms Hash Algorithms + * + * @ingroup RTEMSImpl + * + * @brief This group contains items related to the implementation of hash + * algorithms. + */ + +/** + * @file cpukit/libmd/md4.c + * + * @ingroup RTEMSImplHashAlgorithms + * + * @brief This source file contains the implemention of the MD4 hash algorithm. + */ + +/** + * @file cpukit/libmd/md5.c + * + * @ingroup RTEMSImplHashAlgorithms + * + * @brief This source file contains the implemention of the MD5 hash algorithm. + */ + +/** + * @file cpukit/libmd/sha256c.c + * + * @ingroup RTEMSImplHashAlgorithms + * + * @brief This source file contains the implemention of the SHA256 hash + * algorithm and variants. + */ + +/** + * @file cpukit/libmd/sha512c.c + * + * @ingroup RTEMSImplHashAlgorithms + * + * @brief This source file contains the implemention of the SHA512 hash + * algorithm and variants. + */ diff --git a/cpukit/doxygen/mainpage.h b/cpukit/doxygen/mainpage.h new file mode 100644 index 0000000000..6eb0de7b36 --- /dev/null +++ b/cpukit/doxygen/mainpage.h @@ -0,0 +1,206 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This file exists to provide a top level description of RTEMS for + * Doxygen. + */ + +/* + * Copyright (C) 2021 embedded brains GmbH & Co. KG + * Copyright (C) 1989, 2014 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 + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @mainpage + * + * The Real-Time Executive for Multiprocessor Systems (RTEMS) is a + * multi-threaded, single address-space, real-time operating system with no + * kernel-space/user-space separation. It is capable to operate in an SMP + * configuration providing a state of the art feature set. + * + * RTEMS and all third-party software distributed with RTEMS which may be + * linked to the application is licensed under permissive open source licenses. + * This means that the licenses do not propagate to the application software. + * Most of the original RTEMS code is now under the [BSD 2-Clause + * license](https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause). Some + * code of RTEMS is under a legacy license, the [modified GPL 2.0 or later + * license with an exception for static + * linking](https://git.rtems.org/rtems/tree/LICENSE). It exposes no license + * requirements on application code. Everything necessary to build RTEMS + * applications is available as open source software. This makes you + * completely vendor independent. + * + * RTEMS provides the following basic feature set: + * + * - @ref RTEMSAPI + * + * - POSIX with + * [pthreads](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html) + * (enables a broad range of standard software to run on RTEMS) + * + * - @ref RTEMSAPIClassic + * + * - C11 (including + * [thread](https://en.cppreference.com/w/c/thread) support) + * + * - C++11 (including + * [thread](https://en.cppreference.com/w/cpp/thread>) support) + * + * - Newlib and GCC internal + * + * - Programming languages + * + * - C/C++/OpenMP (RTEMS Source Builder, RSB) + * + * - Ada (RSB, ``--with-ada``) + * + * - Erlang + * + * - Fortran (RSB, ``--with-fortran``) + * + * - Python and MicroPython + * + * - Parallel languages + * + * - [Embedded Multicore Building Blocks](https://embb.io/) + * + * - [OpenMP](https://www.openmp.org/) + * + * - Thread synchronization and communication + * + * - Mutexes with and without locking protocols + * + * - Counting semaphores + * + * - Binary semaphores + * + * - Condition variables + * + * - Events + * + * - Message queues + * + * - Barriers + * + * - [Futex](@ref RTEMSScoreFutex) (used by OpenMP barriers) + * + * - Epoch Based Reclamation (libbsd) + * + * - Locking protocols + * + * - Transitive Priority Inheritance + * + * - OMIP (SMP feature) + * + * - Priority Ceiling + * + * - MrsP (SMP feature) + * + * - Scalable timer and timeout support + * + * - Lock-free timestamps (FreeBSD timecounters) + * + * - Responsive interrupt management + * + * - Thread-Local Storage (TLS) as specified by C11/C++11 and later standard + * revisions + * + * - Link-time configurable schedulers + * + * - Fixed-priority + * + * - Job-level fixed-priority (EDF) + * + * - Constant Bandwidth Server (experimental) + * + * - Clustered scheduling (SMP feature) + * + * - Flexible link-time configuration + * + * - Job-level fixed-priority scheduler (EDF) with support for one-to-one + * and one-to-all thread to processor affinities (default SMP scheduler) + * + * - Fixed-priority scheduler + * + * - Proof-of-concept strong APA scheduler + * + * - Focus on link-time application-specific configuration + * + * - Linker-set based initialization (similar to global C++ constructors) + * + * - Operating system uses fine-grained locking (SMP feature) + * + * - Dynamic memory allocators + * + * - First-fit (default) + * + * - Universal Memory Allocator + * ([UMA](https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9), + * libbsd) + * + * - File systems + * + * - IMFS + * + * - FAT + * + * - RFS + * + * - NFSv2 + * + * - JFFS2 (NOR flashes) + * + * - [YAFFS2](https://git.rtems.org/sebh/rtems-yaffs2.git/) + * (NAND flashes, GPL or commercial license required) + * + * - Device drivers + * + * - Termios (serial interfaces) + * + * - I2C (Linux user-space API compatible) + * + * - SPI (Linux user-space API compatible) + * + * - Network stacks (legacy, libbsd, lwIP) + * + * - USB stack (libbsd) + * + * - SD/MMC card stack (libbsd) + * + * - Framebuffer (Linux user-space API compatible, Qt) + * + * - Application runs in kernel-space and can access hardware directly + * + * - [libbsd](https://git.rtems.org/rtems-libbsd/) + * + * - Port of FreeBSD user-space and kernel-space components to RTEMS + * + * - Easy access to FreeBSD software for RTEMS + * + * - Support to stay in synchronization with FreeBSD + */ diff --git a/cpukit/doxygen/top-level-groups.h b/cpukit/doxygen/top-level-groups.h index 8d38195f3e..9d34b3e3dd 100644 --- a/cpukit/doxygen/top-level-groups.h +++ b/cpukit/doxygen/top-level-groups.h @@ -1,7 +1,15 @@ /* SPDX-License-Identifier: BSD-2-Clause */ +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file defines high level Doxygen groups. + */ + /* - * Copyright (C) 2019, 2020 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 2019, 2023 embedded brains GmbH & Co. KG * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,6 +41,14 @@ */ /** + * @defgroup RTEMSAPISystemLibrary System Library + * + * @ingroup RTEMSAPI + * + * @brief This group contains the system library APIs of RTEMS. + */ + +/** * @defgroup RTEMSDeviceDrivers Device Drivers * * @brief This group contains the device drivers. @@ -45,7 +61,46 @@ */ /** + * @defgroup RTEMSImplDoxygen Doxygen Support + * + * @ingroup RTEMSImpl + */ + +/** + * @defgroup RTEMSImplFreeBSDKernel FreeBSD Kernel Space Support + * + * @ingroup RTEMSImpl + * + * @brief This group contains the interfaces used by FreeBSD kernel space + * components ported to RTEMS. + */ + +/** * @defgroup RTEMSTestSuites Test Suites * * @brief This group contains the test suites. */ + +/** + * @defgroup RTEMSTestSuitesFilesystem Filesystem Test Suites + * + * @ingroup RTEMSTestSuites + * + * @brief This group contains the test suites related to filesystem tests. + */ + +/** + * @defgroup RTEMSTestSuitesUnit Unit Test Suites + * + * @ingroup RTEMSTestSuites + * + * @brief This group contains the test suites related to unit tests. + */ + +/** + * @defgroup RTEMSTestSuitesValidation Validation Test Suites + * + * @ingroup RTEMSTestSuites + * + * @brief This group contains the test suites related to validation tests. + */ |