Changeset 7bad894 in rtems-docs


Ignore:
Timestamp:
Mar 27, 2020, 11:53:09 AM (8 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, am, master
Children:
4032c96
Parents:
e26f874
git-author:
Sebastian Huber <sebastian.huber@…> (03/27/20 11:53:09)
git-committer:
Sebastian Huber <sebastian.huber@…> (04/01/20 05:49:12)
Message:

c-user: Use new template for integer config opts

Try to bring all descriptions up to date. Add cross-references to
several options. Clarify configuration value constraints.

Use this template also for initializer type options.

Close #3901.

Location:
c-user/config
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • c-user/config/bdbuf.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    4546    ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
    4647
    47 DATA TYPE:
    48     Unsigned integer (``uint32_t``).
    49 
    50 RANGE:
    51     It must be positive and an integral multiple of the buffer minimum size.
    52 
    53 DEFAULT VALUE:
    54     The default value is 4096 bytes.
    55 
    56 DESCRIPTION:
    57     Defines the maximum size of a buffer in bytes.
     48OPTION TYPE:
     49    This configuration option is an integer define.
     50
     51DEFAULT VALUE:
     52    The default value is 4096.
     53
     54VALUE CONSTRAINTS:
     55    The value of this configuration option shall satisfy all of the following
     56    constraints:
     57
     58    * It shall be greater than or equal to 0.
     59
     60    * It shall be an integral multiple of :ref:`CONFIGURE_BDBUF_BUFFER_MIN_SIZE`.
     61
     62DESCRIPTION:
     63    The value of this configuration option defines the maximum size of a buffer
     64    in bytes.
    5865
    5966NOTES:
     
    7077    ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
    7178
    72 DATA TYPE:
    73     Unsigned integer (``uint32_t``).
    74 
    75 RANGE:
    76     Positive.
    77 
    78 DEFAULT VALUE:
    79     The default value is 512 bytes.
    80 
    81 DESCRIPTION:
    82     Defines the minimum size of a buffer in bytes.
     79OPTION TYPE:
     80    This configuration option is an integer define.
     81
     82DEFAULT VALUE:
     83    The default value is 512.
     84
     85VALUE CONSTRAINTS:
     86    The value of this configuration option shall be greater than or equal to 0
     87    and less than or equal to ``UINT32_MAX``.
     88
     89DESCRIPTION:
     90    The value of this configuration option defines the minimum size of a buffer
     91    in bytes.
    8392
    8493NOTES:
     
    95104    ``CONFIGURE_BDBUF_CACHE_MEMORY_SIZE``
    96105
    97 DATA TYPE:
    98     Unsigned integer (``size_t``).
    99 
    100 RANGE:
    101     Positive.
    102 
    103 DEFAULT VALUE:
    104     The default value is 32768 bytes.
    105 
    106 DESCRIPTION:
    107     Size of the cache memory in bytes.
     106OPTION TYPE:
     107    This configuration option is an integer define.
     108
     109DEFAULT VALUE:
     110    The default value is 32768.
     111
     112VALUE CONSTRAINTS:
     113    The value of this configuration option shall be greater than or equal to 0
     114    and less than or equal to ``SIZE_MAX``.
     115
     116DESCRIPTION:
     117    The value of this configuration option defines the size of the cache memory
     118    in bytes.
    108119
    109120NOTES:
     
    120131    ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
    121132
    122 DATA TYPE:
    123     Unsigned integer (``uint32_t``).
    124 
    125 RANGE:
    126     Positive.
     133OPTION TYPE:
     134    This configuration option is an integer define.
    127135
    128136DEFAULT VALUE:
    129137    The default value is 0.
    130138
    131 DESCRIPTION:
    132     Defines the maximum blocks per read-ahead request.
     139VALUE CONSTRAINTS:
     140    The value of this configuration option shall be greater than or equal to 0
     141    and less than or equal to ``UINT32_MAX``.
     142
     143DESCRIPTION:
     144    The value of this configuration option defines the maximum blocks per
     145    read-ahead request.
    133146
    134147NOTES:
     
    147160    ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
    148161
    149 DATA TYPE:
    150     Unsigned integer (``uint32_t``).
    151 
    152 RANGE:
    153     Positive.
     162OPTION TYPE:
     163    This configuration option is an integer define.
    154164
    155165DEFAULT VALUE:
    156166    The default value is 16.
    157167
    158 DESCRIPTION:
    159     Defines the maximum blocks per write request.
     168VALUE CONSTRAINTS:
     169    The value of this configuration option shall be greater than or equal to 0
     170    and less than or equal to ``UINT32_MAX``.
     171
     172DESCRIPTION:
     173    The value of this configuration option defines the maximum blocks per write
     174    request.
    160175
    161176NOTES:
     
    172187    ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
    173188
    174 DATA TYPE:
    175     Task priority (``rtems_task_priority``).
    176 
    177 RANGE:
    178     Valid task priority.
     189OPTION TYPE:
     190    This configuration option is an integer define.
    179191
    180192DEFAULT VALUE:
    181193    The default value is 15.
    182194
    183 DESCRIPTION:
    184     Defines the read-ahead task priority.
     195VALUE CONSTRAINTS:
     196    The value of this configuration option shall be a valid Classic API task
     197    priority.  The set of valid task priorities is scheduler-specific.
     198
     199DESCRIPTION:
     200    The value of this configuration option defines the read-ahead task priority.
    185201
    186202NOTES:
     
    197213    ``CONFIGURE_BDBUF_TASK_STACK_SIZE``
    198214
    199 DATA TYPE:
    200     Unsigned integer (``size_t``).
    201 
    202 RANGE:
    203     Zero or positive.
    204 
    205 DEFAULT VALUE:
    206     The default value is RTEMS_MINIMUM_STACK_SIZE.
    207 
    208 DESCRIPTION:
    209     Defines the task stack size of the Block Device Cache tasks in bytes.
     215OPTION TYPE:
     216    This configuration option is an integer define.
     217
     218DEFAULT VALUE:
     219    The default value is ``RTEMS_MINIMUM_STACK_SIZE``.
     220
     221VALUE CONSTRAINTS:
     222    The value of this configuration option shall satisfy all of the following
     223    constraints:
     224
     225    * It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     226
     227    * It shall be less than or equal to a
     228      BSP-specific and application-specific value which depends on the size of the
     229      memory available to the application.
     230
     231    * It shall be small enough so that the task
     232      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     233      overflow an integer of type ``uintptr_t``.
     234
     235DESCRIPTION:
     236    The value of this configuration option defines the task stack size of the
     237    Block Device Cache tasks in bytes.
    210238
    211239NOTES:
     
    222250    ``CONFIGURE_SWAPOUT_BLOCK_HOLD``
    223251
    224 DATA TYPE:
    225     Unsigned integer (``uint32_t``).
    226 
    227 RANGE:
    228     Positive.
    229 
    230 DEFAULT VALUE:
    231     The default value is 1000 milliseconds.
    232 
    233 DESCRIPTION:
    234     Defines the swapout task maximum block hold time in milliseconds.
     252OPTION TYPE:
     253    This configuration option is an integer define.
     254
     255DEFAULT VALUE:
     256    The default value is 1000.
     257
     258VALUE CONSTRAINTS:
     259    The value of this configuration option shall be greater than or equal to 0
     260    and less than or equal to ``UINT32_MAX``.
     261
     262DESCRIPTION:
     263    The value of this configuration option defines the swapout task maximum block
     264    hold time in milliseconds.
    235265
    236266NOTES:
     
    247277    ``CONFIGURE_SWAPOUT_SWAP_PERIOD``
    248278
    249 DATA TYPE:
    250     Unsigned integer (``uint32_t``).
    251 
    252 RANGE:
    253     Positive.
    254 
    255 DEFAULT VALUE:
    256     The default value is 250 milliseconds.
    257 
    258 DESCRIPTION:
    259     Defines the swapout task swap period in milliseconds.
     279OPTION TYPE:
     280    This configuration option is an integer define.
     281
     282DEFAULT VALUE:
     283    The default value is 250.
     284
     285VALUE CONSTRAINTS:
     286    The value of this configuration option shall be greater than or equal to 0
     287    and less than or equal to ``UINT32_MAX``.
     288
     289DESCRIPTION:
     290    The value of this configuration option defines the swapout task swap period
     291    in milliseconds.
    260292
    261293NOTES:
     
    272304    ``CONFIGURE_SWAPOUT_TASK_PRIORITY``
    273305
    274 DATA TYPE:
    275     Task priority (``rtems_task_priority``).
    276 
    277 RANGE:
    278     Valid task priority.
     306OPTION TYPE:
     307    This configuration option is an integer define.
    279308
    280309DEFAULT VALUE:
    281310    The default value is 15.
    282311
    283 DESCRIPTION:
    284     Defines the swapout task priority.
     312VALUE CONSTRAINTS:
     313    The value of this configuration option shall be a valid Classic API task
     314    priority.  The set of valid task priorities is scheduler-specific.
     315
     316DESCRIPTION:
     317    The value of this configuration option defines the swapout task priority.
    285318
    286319NOTES:
     
    297330    ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
    298331
    299 DATA TYPE:
    300     Task priority (``rtems_task_priority``).
    301 
    302 RANGE:
    303     Valid task priority.
     332OPTION TYPE:
     333    This configuration option is an integer define.
    304334
    305335DEFAULT VALUE:
    306336    The default value is 15.
    307337
    308 DESCRIPTION:
    309     Defines the swapout worker task priority.
     338VALUE CONSTRAINTS:
     339    The value of this configuration option shall be a valid Classic API task
     340    priority.  The set of valid task priorities is scheduler-specific.
     341
     342DESCRIPTION:
     343    The value of this configuration option defines the swapout worker task
     344    priority.
    310345
    311346NOTES:
     
    322357    ``CONFIGURE_SWAPOUT_WORKER_TASKS``
    323358
    324 DATA TYPE:
    325     Unsigned integer (``size_t``).
    326 
    327 RANGE:
    328     Zero or positive.
     359OPTION TYPE:
     360    This configuration option is an integer define.
    329361
    330362DEFAULT VALUE:
    331363    The default value is 0.
    332364
    333 DESCRIPTION:
    334     Defines the swapout worker task count.
    335 
    336 NOTES:
    337     None.
     365VALUE CONSTRAINTS:
     366    The value of this configuration option shall be greater than or equal to 0
     367    and less than or equal to ``UINT32_MAX``.
     368
     369DESCRIPTION:
     370    The value of this configuration option defines the swapout worker task count.
     371
     372NOTES:
     373    None.
  • c-user/config/bsp-related.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    2122    ``BSP_IDLE_TASK_BODY``
    2223
    23 DATA TYPE:
    24     Function pointer.
    25 
    26 RANGE:
    27     Undefined or valid function pointer.
    28 
    29 DEFAULT VALUE:
    30     This option is BSP specific.
    31 
    32 DESCRIPTION:
    33     If ``BSP_IDLE_TASK_BODY`` is defined by the BSP and
    34     ``CONFIGURE_IDLE_TASK_BODY`` is not defined by the application, then this
    35     BSP specific idle task body will be used.
     24OPTION TYPE:
     25    This configuration option is an initializer define.
     26
     27DEFAULT VALUE:
     28    The default value is BSP-specific.
     29
     30VALUE CONSTRAINTS:
     31    The value of this configuration option shall be defined to a valid function
     32    pointer of the type ``void *( *idle_body )( uintptr_t )``.
     33
     34DESCRIPTION:
     35    If
     36
     37    * this configuration option is defined by the BSP
     38
     39    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
     40
     41    then the value of this configuration option defines the default value of
     42    :ref:`CONFIGURE_IDLE_TASK_BODY`.
    3643
    3744NOTES:
    3845    As it has knowledge of the specific CPU model, system controller logic, and
    39     peripheral buses, a BSP specific IDLE task may be capable of turning
    40     components off to save power during extended periods of no task activity
     46    peripheral buses, a BSP-specific IDLE task may be capable of turning
     47    components off to save power during extended periods of no task activity.
    4148
    4249.. index:: BSP_IDLE_TASK_STACK_SIZE
     
    5057    ``BSP_IDLE_TASK_STACK_SIZE``
    5158
    52 DATA TYPE:
    53     Unsigned integer (``size_t``).
    54 
    55 RANGE:
    56     Undefined or positive.
    57 
    58 DEFAULT VALUE:
    59     This option is BSP specific.
    60 
    61 DESCRIPTION:
    62     If ``BSP_IDLE_TASK_STACK_SIZE`` is defined by the BSP and
    63     ``CONFIGURE_IDLE_TASK_STACK_SIZE`` is not defined by the application, then
    64     this BSP suggested idle task stack size will be used.
    65 
    66 NOTES:
    67     The order of precedence for configuring the IDLE task stack size is:
    68 
    69     - RTEMS default minimum stack size.
    70 
    71     - If defined, then ``CONFIGURE_MINIMUM_TASK_STACK_SIZE``.
    72 
    73     - If defined, then the BSP specific ``BSP_IDLE_TASK_SIZE``.
    74 
    75     - If defined, then the application specified ``CONFIGURE_IDLE_TASK_SIZE``.
     59OPTION TYPE:
     60    This configuration option is an integer define.
     61
     62DEFAULT VALUE:
     63    The default value is BSP-specific.
     64
     65VALUE CONSTRAINTS:
     66    The value of this configuration option shall satisfy all of the following
     67    constraints:
     68
     69    * It shall be greater than or equal to a
     70      BSP-specific and application-specific minimum value.
     71
     72    * It shall be small enough so that the IDLE
     73      task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
     74      overflow an integer of type ``size_t``.
     75
     76DESCRIPTION:
     77    If
     78
     79    * this configuration option is defined by the BSP
     80
     81    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
     82
     83    then the value of this configuration option defines the default value of
     84    :ref:`CONFIGURE_IDLE_TASK_SIZE`.
     85
     86NOTES:
     87    None.
    7688
    7789.. index:: BSP_INITIAL_EXTENSION
     
    8597    ``BSP_INITIAL_EXTENSION``
    8698
    87 DATA TYPE:
    88     List of user extension initializers (``rtems_extensions_table``).
    89 
    90 RANGE:
    91     Undefined or a list of user extension initializers.
    92 
    93 DEFAULT VALUE:
    94     This option is BSP specific.
    95 
    96 DESCRIPTION:
    97     If ``BSP_INITIAL_EXTENSION`` is defined by the BSP, then this BSP specific
    98     initial extension will be placed as the last entry in the initial extension
    99     table.
    100 
    101 NOTES:
    102     None.
     99OPTION TYPE:
     100    This configuration option is an initializer define.
     101
     102DEFAULT VALUE:
     103    The default value is BSP-specific.
     104
     105VALUE CONSTRAINTS:
     106    The value of this configuration option shall be a list of initializers for
     107    structures of type :c:type:`rtems_extensions_table`.
     108
     109DESCRIPTION:
     110    If
     111
     112    * this configuration option is defined by the BSP
     113
     114    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
     115
     116    then the value of this configuration option is used to initialize the table
     117    of initial user extensions.
     118
     119NOTES:
     120    The value of this configuration option is placed after the entries of all
     121    other initial user extensions.
    103122
    104123.. index:: BSP_INTERRUPT_STACK_SIZE
     
    112131    ``BSP_INTERRUPT_STACK_SIZE``
    113132
    114 DATA TYPE:
    115     Unsigned integer (``size_t``).
    116 
    117 RANGE:
    118     Undefined or positive.
    119 
    120 DEFAULT VALUE:
    121     This option is BSP specific.
    122 
    123 DESCRIPTION:
    124     If ``BSP_INTERRUPT_STACK_SIZE`` is defined by the BSP and
    125     ``CONFIGURE_INTERRUPT_STACK_SIZE`` is not defined by the application, then
    126     this BSP specific interrupt stack size will be used.
     133OPTION TYPE:
     134    This configuration option is an integer define.
     135
     136DEFAULT VALUE:
     137    The default value is BSP-specific.
     138
     139VALUE CONSTRAINTS:
     140    The value of this configuration option shall satisfy all of the following
     141    constraints:
     142
     143    * It shall be greater than or equal to a
     144      BSP-specific and application-specific minimum value.
     145
     146    * It shall be small enough so that the
     147      interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
     148      not overflow an integer of type ``size_t``.
     149
     150    * It shall be aligned according to
     151      ``CPU_INTERRUPT_STACK_ALIGNMENT``.
     152
     153DESCRIPTION:
     154    If
     155
     156    * this configuration option is defined by the BSP
     157
     158    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
     159
     160    then the value of this configuration option defines the default value of
     161    :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
    127162
    128163NOTES:
    129164    None.
    130 
    131 .. index:: BSP_MAXIMUM_DEVICES
    132 
    133 .. _BSP_MAXIMUM_DEVICES:
    134 
    135 BSP_MAXIMUM_DEVICES
    136 -------------------
    137 
    138 CONSTANT:
    139     ``BSP_MAXIMUM_DEVICES``
    140 
    141 DATA TYPE:
    142     Unsigned integer (``size_t``).
    143 
    144 RANGE:
    145     Undefined or positive.
    146 
    147 DEFAULT VALUE:
    148     This option is BSP specific.
    149 
    150 DESCRIPTION:
    151     If ``BSP_MAXIMUM_DEVICES`` is defined by the BSP and
    152     ``CONFIGURE_MAXIMUM_DEVICES`` is not defined by the application, then this
    153     BSP specific maximum device count will be used.
    154 
    155 NOTES:
    156     This option is specific to the device file system (devFS) and should not be
    157     confused with the ``CONFIGURE_MAXIMUM_DRIVERS`` option.  This parameter
    158     only impacts the devFS and thus is only used by ``<rtems/confdefs.h>`` when
    159     ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` is specified.
    160165
    161166.. index:: CONFIGURE_BSP_PREREQUISITE_DRIVERS
     
    169174    ``CONFIGURE_BSP_PREREQUISITE_DRIVERS``
    170175
    171 DATA TYPE:
    172     List of device driver initializers (``rtems_driver_address_table``).
    173 
    174 RANGE:
    175     Undefined or array of device drivers.
    176 
    177 DEFAULT VALUE:
    178     This option is BSP specific.
    179 
    180 DESCRIPTION:
    181     ``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` is defined if the BSP has device
    182     drivers it needs to include in the Device Driver Table.  This should be
    183     defined to the set of device driver entries that will be placed in the
    184     table at the *FRONT* of the Device Driver Table and initialized before any
    185     other drivers *INCLUDING* any application prerequisite drivers.
    186 
    187 NOTES:
    188     ``CONFIGURE_BSP_PREREQUISITE_DRIVERS`` is typically used by BSPs to
    189     configure common infrastructure such as bus controllers or probe for
    190     devices.
     176OPTION TYPE:
     177    This configuration option is an initializer define.
     178
     179DEFAULT VALUE:
     180    The default value is BSP-specific.
     181
     182VALUE CONSTRAINTS:
     183    The value of this configuration option shall be a list of initializers for
     184    structures of type :c:type:`rtems_extensions_table`.
     185
     186DESCRIPTION:
     187    If
     188
     189    * this configuration option is defined by the BSP
     190
     191    * and :ref:`CONFIGURE_DISABLE_BSP_SETTINGS` is undefined,
     192
     193    then the value of this configuration option is used to initialize the table
     194    of initial user extensions.
     195
     196NOTES:
     197    The value of this configuration option is placed before the entries of all
     198    other initial user extensions (including
     199    :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`).
    191200
    192201.. index:: CONFIGURE_DISABLE_BSP_SETTINGS
  • c-user/config/classic-api.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    1819    ``CONFIGURE_MAXIMUM_BARRIERS``
    1920
    20 DATA TYPE:
    21     Unsigned integer (``uint32_t``).
    22 
    23 RANGE:
    24     Zero or positive.
    25 
    26 DEFAULT VALUE:
    27     The default value is 0.
    28 
    29 DESCRIPTION:
    30     ``CONFIGURE_MAXIMUM_BARRIERS`` is the maximum number of Classic API
    31     Barriers that can be concurrently active.
    32 
    33 NOTES:
    34     This object class can be configured in unlimited allocation mode.
     21OPTION TYPE:
     22    This configuration option is an integer define.
     23
     24DEFAULT VALUE:
     25    The default value is 0.
     26
     27VALUE CONSTRAINTS:
     28    The value of this configuration option shall satisfy all of the following
     29    constraints:
     30
     31    * It shall be greater than or equal to 0.
     32
     33    * It shall be less than or equal to 65535.
     34
     35    * It shall be less than or equal to a
     36      BSP-specific and application-specific value which depends on the size of the
     37      memory available to the application.
     38
     39    * It may be defined through
     40      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     41      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     42      satisfies all other constraints of this configuration option.
     43
     44DESCRIPTION:
     45    The value of this configuration option defines the maximum number of Classic
     46    API Barriers that can be concurrently active.
     47
     48NOTES:
     49    This object class can be configured in unlimited allocation mode, see
     50    :ref:`ConfigUnlimitedObjects`.
    3551
    3652.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
     
    4460    ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
    4561
    46 DATA TYPE:
    47     Unsigned integer (``uint32_t``).
    48 
    49 RANGE:
    50     Zero or positive.
    51 
    52 DEFAULT VALUE:
    53     The default value is 0.
    54 
    55 DESCRIPTION:
    56     ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` is the maximum number of Classic API
    57     Message Queues that can be concurrently active.
    58 
    59 NOTES:
    60     This object class can be configured in unlimited allocation mode.  You have
    61     to account for the memory used to store the messages of each message queue,
    62     see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
     62OPTION TYPE:
     63    This configuration option is an integer define.
     64
     65DEFAULT VALUE:
     66    The default value is 0.
     67
     68VALUE CONSTRAINTS:
     69    The value of this configuration option shall satisfy all of the following
     70    constraints:
     71
     72    * It shall be greater than or equal to 0.
     73
     74    * It shall be less than or equal to 65535.
     75
     76    * It shall be less than or equal to a
     77      BSP-specific and application-specific value which depends on the size of the
     78      memory available to the application.
     79
     80    * It may be defined through
     81      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     82      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     83      satisfies all other constraints of this configuration option.
     84
     85DESCRIPTION:
     86    The value of this configuration option defines the maximum number of Classic
     87    API Message Queues that can be concurrently active.
     88
     89NOTES:
     90    This object class can be configured in unlimited allocation mode, see
     91    :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
     92    store the messages of each message queue, see
     93    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
    6394
    6495.. index:: CONFIGURE_MAXIMUM_PARTITIONS
     
    72103    ``CONFIGURE_MAXIMUM_PARTITIONS``
    73104
    74 DATA TYPE:
    75     Unsigned integer (``uint32_t``).
    76 
    77 RANGE:
    78     Zero or positive.
    79 
    80 DEFAULT VALUE:
    81     The default value is 0.
    82 
    83 DESCRIPTION:
    84     ``CONFIGURE_MAXIMUM_PARTITIONS`` is the maximum number of Classic API
    85     Partitions that can be concurrently active.
    86 
    87 NOTES:
    88     This object class can be configured in unlimited allocation mode.
     105OPTION TYPE:
     106    This configuration option is an integer define.
     107
     108DEFAULT VALUE:
     109    The default value is 0.
     110
     111VALUE CONSTRAINTS:
     112    The value of this configuration option shall satisfy all of the following
     113    constraints:
     114
     115    * It shall be greater than or equal to 0.
     116
     117    * It shall be less than or equal to 65535.
     118
     119    * It shall be less than or equal to a
     120      BSP-specific and application-specific value which depends on the size of the
     121      memory available to the application.
     122
     123    * It may be defined through
     124      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     125      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     126      satisfies all other constraints of this configuration option.
     127
     128DESCRIPTION:
     129    The value of this configuration option defines the maximum number of Classic
     130    API Partitions that can be concurrently active.
     131
     132NOTES:
     133    This object class can be configured in unlimited allocation mode, see
     134    :ref:`ConfigUnlimitedObjects`.
    89135
    90136.. index:: CONFIGURE_MAXIMUM_PERIODS
     
    98144    ``CONFIGURE_MAXIMUM_PERIODS``
    99145
    100 DATA TYPE:
    101     Unsigned integer (``uint32_t``).
    102 
    103 RANGE:
    104     Zero or positive.
    105 
    106 DEFAULT VALUE:
    107     The default value is 0.
    108 
    109 DESCRIPTION:
    110     ``CONFIGURE_MAXIMUM_PERIODS`` is the maximum number of Classic API Periods
    111     that can be concurrently active.
    112 
    113 NOTES:
    114     This object class can be configured in unlimited allocation mode.
     146OPTION TYPE:
     147    This configuration option is an integer define.
     148
     149DEFAULT VALUE:
     150    The default value is 0.
     151
     152VALUE CONSTRAINTS:
     153    The value of this configuration option shall satisfy all of the following
     154    constraints:
     155
     156    * It shall be greater than or equal to 0.
     157
     158    * It shall be less than or equal to 65535.
     159
     160    * It shall be less than or equal to a
     161      BSP-specific and application-specific value which depends on the size of the
     162      memory available to the application.
     163
     164    * It may be defined through
     165      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     166      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     167      satisfies all other constraints of this configuration option.
     168
     169DESCRIPTION:
     170    The value of this configuration option defines the maximum number of Classic
     171    API Periods that can be concurrently active.
     172
     173NOTES:
     174    This object class can be configured in unlimited allocation mode, see
     175    :ref:`ConfigUnlimitedObjects`.
    115176
    116177.. index:: CONFIGURE_MAXIMUM_PORTS
     
    124185    ``CONFIGURE_MAXIMUM_PORTS``
    125186
    126 DATA TYPE:
    127     Unsigned integer (``uint32_t``).
    128 
    129 RANGE:
    130     Zero or positive.
    131 
    132 DEFAULT VALUE:
    133     The default value is 0.
    134 
    135 DESCRIPTION:
    136     ``CONFIGURE_MAXIMUM_PORTS`` is the maximum number of Classic API Ports that
    137     can be concurrently active.
    138 
    139 NOTES:
    140     This object class can be configured in unlimited allocation mode.
     187OPTION TYPE:
     188    This configuration option is an integer define.
     189
     190DEFAULT VALUE:
     191    The default value is 0.
     192
     193VALUE CONSTRAINTS:
     194    The value of this configuration option shall satisfy all of the following
     195    constraints:
     196
     197    * It shall be greater than or equal to 0.
     198
     199    * It shall be less than or equal to 65535.
     200
     201    * It shall be less than or equal to a
     202      BSP-specific and application-specific value which depends on the size of the
     203      memory available to the application.
     204
     205    * It may be defined through
     206      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     207      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     208      satisfies all other constraints of this configuration option.
     209
     210DESCRIPTION:
     211    The value of this configuration option defines the maximum number of Classic
     212    API Ports that can be concurrently active.
     213
     214NOTES:
     215    This object class can be configured in unlimited allocation mode, see
     216    :ref:`ConfigUnlimitedObjects`.
    141217
    142218.. index:: CONFIGURE_MAXIMUM_REGIONS
     
    150226    ``CONFIGURE_MAXIMUM_REGIONS``
    151227
    152 DATA TYPE:
    153     Unsigned integer (``uint32_t``).
    154 
    155 RANGE:
    156     Zero or positive.
    157 
    158 DEFAULT VALUE:
    159     The default value is 0.
    160 
    161 DESCRIPTION:
    162     ``CONFIGURE_MAXIMUM_REGIONS`` is the maximum number of Classic API Regions
    163     that can be concurrently active.
    164 
    165 NOTES:
    166     None.
     228OPTION TYPE:
     229    This configuration option is an integer define.
     230
     231DEFAULT VALUE:
     232    The default value is 0.
     233
     234VALUE CONSTRAINTS:
     235    The value of this configuration option shall satisfy all of the following
     236    constraints:
     237
     238    * It shall be greater than or equal to 0.
     239
     240    * It shall be less than or equal to 65535.
     241
     242    * It shall be less than or equal to a
     243      BSP-specific and application-specific value which depends on the size of the
     244      memory available to the application.
     245
     246    * It may be defined through
     247      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     248      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     249      satisfies all other constraints of this configuration option.
     250
     251DESCRIPTION:
     252    The value of this configuration option defines the maximum number of Classic
     253    API Regions that can be concurrently active.
     254
     255NOTES:
     256    This object class can be configured in unlimited allocation mode, see
     257    :ref:`ConfigUnlimitedObjects`.
    167258
    168259.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
     
    176267    ``CONFIGURE_MAXIMUM_SEMAPHORES``
    177268
    178 DATA TYPE:
    179     Unsigned integer (``uint32_t``).
    180 
    181 RANGE:
    182     Zero or positive.
    183 
    184 DEFAULT VALUE:
    185     The default value is 0.
    186 
    187 DESCRIPTION:
    188     ``CONFIGURE_MAXIMUM_SEMAPHORES`` is the maximum number of Classic API
    189     Semaphores that can be concurrently active.
    190 
    191 NOTES:
    192     This object class can be configured in unlimited allocation mode.
     269OPTION TYPE:
     270    This configuration option is an integer define.
     271
     272DEFAULT VALUE:
     273    The default value is 0.
     274
     275VALUE CONSTRAINTS:
     276    The value of this configuration option shall satisfy all of the following
     277    constraints:
     278
     279    * It shall be greater than or equal to 0.
     280
     281    * It shall be less than or equal to 65535.
     282
     283    * It shall be less than or equal to a
     284      BSP-specific and application-specific value which depends on the size of the
     285      memory available to the application.
     286
     287    * It may be defined through
     288      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     289      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     290      satisfies all other constraints of this configuration option.
     291
     292DESCRIPTION:
     293    The value of this configuration option defines the maximum number of Classic
     294    API Semaphore that can be concurrently active.
     295
     296NOTES:
     297    This object class can be configured in unlimited allocation mode, see
     298    :ref:`ConfigUnlimitedObjects`.
    193299
    194300    In SMP configurations, the size of a Semaphore Control Block depends on the
     
    206312    ``CONFIGURE_MAXIMUM_TASKS``
    207313
    208 DATA TYPE:
    209     Unsigned integer (``uint32_t``).
    210 
    211 RANGE:
    212     Zero or positive.
    213 
    214 DEFAULT VALUE:
    215     The default value is ``0``.
    216 
    217 DESCRIPTION:
    218     ``CONFIGURE_MAXIMUM_TASKS`` is the maximum number of Classic API Tasks that
    219     can be concurrently active.
    220 
    221 NOTES:
    222     This object class can be configured in unlimited allocation mode.
     314OPTION TYPE:
     315    This configuration option is an integer define.
     316
     317DEFAULT VALUE:
     318    The default value is 0.
     319
     320VALUE CONSTRAINTS:
     321    The value of this configuration option shall satisfy all of the following
     322    constraints:
     323
     324    * It shall be greater than or equal to 0.
     325
     326    * It shall be less than or equal to 65535.
     327
     328    * It shall be less than or equal to a
     329      BSP-specific and application-specific value which depends on the size of the
     330      memory available to the application.
     331
     332    * It shall be small enough so that the task
     333      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     334      overflow an integer of type ``uintptr_t``.
     335
     336    * It may be defined through
     337      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     338      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     339      satisfies all other constraints of this configuration option.
     340
     341DESCRIPTION:
     342    The value of this configuration option defines the maximum number of Classic
     343    API Tasks that can be concurrently active.
     344
     345NOTES:
     346    This object class can be configured in unlimited allocation mode, see
     347    :ref:`ConfigUnlimitedObjects`.
    223348
    224349    The calculations for the required memory in the RTEMS Workspace for tasks
     
    231356
    232357    The maximum number of POSIX threads is specified by
    233     :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
     358    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
    234359
    235360    A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
     
    248373    ``CONFIGURE_MAXIMUM_TIMERS``
    249374
    250 DATA TYPE:
    251     Unsigned integer (``uint32_t``).
    252 
    253 RANGE:
    254     Zero or positive.
    255 
    256 DEFAULT VALUE:
    257     The default value is 0.
    258 
    259 DESCRIPTION:
    260     ``CONFIGURE_MAXIMUM_TIMERS`` is the maximum number of Classic API Timers
    261     that can be concurrently active.
    262 
    263 NOTES:
    264     This object class can be configured in unlimited allocation mode.
     375OPTION TYPE:
     376    This configuration option is an integer define.
     377
     378DEFAULT VALUE:
     379    The default value is 0.
     380
     381VALUE CONSTRAINTS:
     382    The value of this configuration option shall satisfy all of the following
     383    constraints:
     384
     385    * It shall be greater than or equal to 0.
     386
     387    * It shall be less than or equal to 65535.
     388
     389    * It shall be less than or equal to a
     390      BSP-specific and application-specific value which depends on the size of the
     391      memory available to the application.
     392
     393    * It may be defined through
     394      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     395      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     396      satisfies all other constraints of this configuration option.
     397
     398DESCRIPTION:
     399    The value of this configuration option defines the maximum number of Classic
     400    API Timers that can be concurrently active.
     401
     402NOTES:
     403    This object class can be configured in unlimited allocation mode, see
     404    :ref:`ConfigUnlimitedObjects`.
    265405
    266406.. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS
     
    274414    ``CONFIGURE_MAXIMUM_USER_EXTENSIONS``
    275415
    276 DATA TYPE:
    277     Unsigned integer (``uint32_t``).
    278 
    279 RANGE:
    280     Zero or positive.
    281 
    282 DEFAULT VALUE:
    283     The default value is 0.
    284 
    285 DESCRIPTION:
    286     ``CONFIGURE_MAXIMUM_USER_EXTENSIONS`` is the maximum number of Classic API
    287     User Extensions that can be concurrently active.
    288 
    289 NOTES:
    290     This object class can be configured in unlimited allocation mode.
     416OPTION TYPE:
     417    This configuration option is an integer define.
     418
     419DEFAULT VALUE:
     420    The default value is 0.
     421
     422VALUE CONSTRAINTS:
     423    The value of this configuration option shall satisfy all of the following
     424    constraints:
     425
     426    * It shall be greater than or equal to 0.
     427
     428    * It shall be less than or equal to 65535.
     429
     430    * It shall be less than or equal to a
     431      BSP-specific and application-specific value which depends on the size of the
     432      memory available to the application.
     433
     434DESCRIPTION:
     435    The value of this configuration option defines the maximum number of Classic
     436    API User Extensions that can be concurrently active.
     437
     438NOTES:
     439    This object class cannot be configured in unlimited allocation mode.
  • c-user/config/classic-init-task.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    1920    ``CONFIGURE_INIT_TASK_ARGUMENTS``
    2021
    21 DATA TYPE:
    22     RTEMS Task Argument (``rtems_task_argument``).
    23 
    24 RANGE:
    25     Complete range of the type.
     22OPTION TYPE:
     23    This configuration option is an integer define.
    2624
    2725DEFAULT VALUE:
    2826    The default value is 0.
    2927
    30 DESCRIPTION:
    31     ``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
    32     initialization task defined by the Classic API Initialization Tasks Table.
     28VALUE CONSTRAINTS:
     29    The value of this configuration option shall be a valid integer of type
     30    ``rtems_task_argument``.
     31
     32DESCRIPTION:
     33    The value of this configuration option defines task argument of the Classic
     34    API initialization task.
    3335
    3436NOTES:
     
    4547    ``CONFIGURE_INIT_TASK_ATTRIBUTES``
    4648
    47 DATA TYPE:
    48     RTEMS Attributes (``rtems_attribute``).
    49 
    50 RANGE:
    51     Valid task attribute sets.
     49OPTION TYPE:
     50    This configuration option is an integer define.
    5251
    5352DEFAULT VALUE:
    5453    The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
    5554
    56 DESCRIPTION:
    57     ``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
    58     initialization task defined by the Classic API Initialization Tasks Table.
     55VALUE CONSTRAINTS:
     56    The value of this configuration option shall be a valid task attribute set.
     57
     58DESCRIPTION:
     59    The value of this configuration option defines the task attributes of the
     60    Classic API initialization task.
    5961
    6062NOTES:
     
    7173    ``CONFIGURE_INIT_TASK_ENTRY_POINT``
    7274
    73 DATA TYPE:
    74     Task entry function pointer (``rtems_task_entry``).
    75 
    76 RANGE:
    77     Valid task entry function pointer.
     75OPTION TYPE:
     76    This configuration option is an initializer define.
    7877
    7978DEFAULT VALUE:
    8079    The default value is ``Init``.
    8180
    82 DESCRIPTION:
    83     ``CONFIGURE_INIT_TASK_ENTRY_POINT`` is the entry point (a.k.a. function
    84     name) of the single initialization task defined by the Classic API
    85     Initialization Tasks Table.
    86 
    87 NOTES:
    88     The user must implement the function ``Init`` or the function name provided
    89     in this configuration parameter.
     81VALUE CONSTRAINTS:
     82    The value of this configuration option shall be defined to a valid function
     83    pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
     84
     85DESCRIPTION:
     86    The value of this configuration option initializes the entry point of the
     87    Classic API initialization task.
     88
     89NOTES:
     90    The application shall provide the function referenced by this configuration
     91    option.
    9092
    9193.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
     
    99101    ``CONFIGURE_INIT_TASK_INITIAL_MODES``
    100102
    101 DATA TYPE:
    102     RTEMS Mode (``rtems_mode``).
    103 
    104 RANGE:
    105     Valid task mode sets.
    106 
    107 DEFAULT VALUE:
    108     The default value is ``RTEMS_NO_PREEMPT``.
    109 
    110 DESCRIPTION:
    111     ``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
    112     single initialization task defined by the Classic API Initialization Tasks
    113     Table.
     103OPTION TYPE:
     104    This configuration option is an integer define.
     105
     106DEFAULT VALUE:
     107    In SMP  configurations, the default value is ``RTEMS_DEFAULT_MODES``,
     108    otherwise the default value is ``RTEMS_NO_PREEMPT``.
     109
     110VALUE CONSTRAINTS:
     111    The value of this configuration option shall be a valid task mode set.
     112
     113DESCRIPTION:
     114    The value of this configuration option defines the initial execution mode of
     115    the Classic API initialization task.
    114116
    115117NOTES:
     
    126128    ``CONFIGURE_INIT_TASK_NAME``
    127129
    128 DATA TYPE:
    129     RTEMS Name (``rtems_name``).
    130 
    131 RANGE:
    132     Any value.
     130OPTION TYPE:
     131    This configuration option is an integer define.
    133132
    134133DEFAULT VALUE:
    135134    The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
    136135
    137 DESCRIPTION:
    138     ``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
    139     defined by the Classic API Initialization Tasks Table.
    140 
    141 NOTES:
    142     None.
     136VALUE CONSTRAINTS:
     137    The value of this configuration option shall be a valid integer of type
     138    ``rtems_name``.
     139
     140DESCRIPTION:
     141    The value of this configuration option defines the name of the Classic API
     142    initialization task.
     143
     144NOTES:
     145    Use :c:func:`rtems_build_name` to define the task name.
    143146
    144147.. index:: CONFIGURE_INIT_TASK_PRIORITY
     
    152155    ``CONFIGURE_INIT_TASK_PRIORITY``
    153156
    154 DATA TYPE:
    155     RTEMS Task Priority (``rtems_task_priority``).
    156 
    157 RANGE:
    158     One (1) to the maximum user priority value of the scheduler.
    159 
    160 DEFAULT VALUE:
    161     The default value is 1, which is the highest priority in the Classic API.
    162 
    163 DESCRIPTION:
    164     ``CONFIGURE_INIT_TASK_PRIORITY`` is the initial priority of the single
    165     initialization task defined by the Classic API Initialization Tasks Table.
     157OPTION TYPE:
     158    This configuration option is an integer define.
     159
     160DEFAULT VALUE:
     161    The default value is 1.
     162
     163VALUE CONSTRAINTS:
     164    The value of this configuration option shall be a valid Classic API task
     165    priority.  The set of valid task priorities is scheduler-specific.
     166
     167DESCRIPTION:
     168    The value of this configuration option defines the initial priority of the
     169    Classic API initialization task.
    166170
    167171NOTES:
     
    178182    ``CONFIGURE_INIT_TASK_STACK_SIZE``
    179183
    180 DATA TYPE:
    181     Unsigned integer (``size_t``).
    182 
    183 RANGE:
    184     Zero or positive.
    185 
    186 DEFAULT VALUE:
    187     The default value is RTEMS_MINIMUM_STACK_SIZE.
    188 
    189 DESCRIPTION:
    190     ``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
    191     initialization task defined by the Classic API Initialization Tasks Table.
    192 
    193 NOTES:
    194     If the stack size specified is greater than the configured minimum, it must
    195     be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``.  See :ref:`Reserve
    196     Task/Thread Stack Memory Above Minimum` for more information about
    197     ``CONFIGURE_EXTRA_TASK_STACKS``.
     184OPTION TYPE:
     185    This configuration option is an integer define.
     186
     187DEFAULT VALUE:
     188    The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     189
     190VALUE CONSTRAINTS:
     191    The value of this configuration option shall satisfy all of the following
     192    constraints:
     193
     194    * It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     195
     196    * It shall be small enough so that the task
     197      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     198      overflow an integer of type ``uintptr_t``.
     199
     200DESCRIPTION:
     201    The value of this configuration option defines the task stack size of the
     202    Classic API initialization task.
     203
     204NOTES:
     205    None.
    198206
    199207.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
     
    219227
    220228NOTES:
    221     The application must define exactly one of the following configuration
     229    The application shall define exactly one of the following configuration
    222230    options
    223231
    224     * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
     232    * `CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
    225233
    226234    * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
  • c-user/config/device-driver.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    3536    leaving out a clock tick source.
    3637
    37     The application must define exactly one of the following configuration options
     38    The application shall define exactly one of the following configuration options
    3839
    3940    * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
     
    5556    ``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
    5657
    57 DATA TYPE:
    58     device driver entry structures
    59 
    60 RANGE:
    61     Undefined or set of device driver entry structures
     58OPTION TYPE:
     59    This configuration option is an initializer define.
    6260
    6361DEFAULT VALUE:
    64     This is not defined by default.
    65 
    66 DESCRIPTION:
    67     ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has
    68     device drivers it needs to include in the Device Driver Table.  This should
    69     be defined to the set of device driver entries that will be placed in the
    70     table at the *END* of the Device Driver Table.
    71 
    72 NOTES:
    73     None.
     62    The default value is the empty list.
     63
     64VALUE CONSTRAINTS:
     65    The value of this configuration option shall be a list of initializers for
     66    structures of type :c:type:`rtems_driver_address_table`.
     67
     68DESCRIPTION:
     69    The value of this configuration option is used to initialize the Device
     70    Driver Table.
     71
     72NOTES:
     73    The value of this configuration option is placed after the entries of other
     74    device driver configuration options.
     75
     76    See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative
     77    placement of application device driver initializers.
    7478
    7579.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
     
    98102    which invokes a clock tick directive.
    99103
    100     The application must define exactly one of the following configuration options
     104    The application shall define exactly one of the following configuration options
    101105
    102106    * `CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
     
    373377    Testsuite.  Applications should not use this driver.
    374378
    375     The application must define exactly one of the following configuration options
     379    The application shall define exactly one of the following configuration options
    376380
    377381    * :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`,
     
    446450    ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS``
    447451
    448 DATA TYPE:
    449     device driver entry structures
    450 
    451 RANGE:
    452     Undefined or set of device driver entry structures
     452OPTION TYPE:
     453    This configuration option is an initializer define.
    453454
    454455DEFAULT VALUE:
    455     This is not defined by default.
    456 
    457 DESCRIPTION:
    458     ``CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS`` is defined if the
    459     application has device drivers it needs to include in the Device Driver
    460     Table.  This should be defined to the set of device driver entries that
    461     will be placed in the table at the *FRONT* of the Device Driver Table and
    462     initialized before any other drivers *EXCEPT* any BSP prerequisite drivers.
    463 
    464 NOTES:
    465     In some cases, it is used by System On Chip BSPs to support peripheral
    466     buses beyond those normally found on the System On Chip. For example, this
    467     is used by one RTEMS system which has implemented a SPARC/ERC32 based board
    468     with VMEBus. The VMEBus Controller initialization is performed by a device
    469     driver configured via this configuration parameter.
     456    The default value is the empty list.
     457
     458VALUE CONSTRAINTS:
     459    The value of this configuration option shall be a list of initializers for
     460    structures of type :c:type:`rtems_driver_address_table`.
     461
     462DESCRIPTION:
     463    The value of this configuration option is used to initialize the Device
     464    Driver Table.
     465
     466NOTES:
     467    The value of this configuration option is placed after the entries defined by
     468    :ref:`CONFIGURE_BSP_PREREQUISITE_DRIVERS` and before all other device driver
     469    configuration options.
     470
     471    See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
     472    of application device driver initializers.
    470473
    471474.. index:: CONFIGURE_MAXIMUM_DRIVERS
     
    479482    ``CONFIGURE_MAXIMUM_DRIVERS``
    480483
    481 DATA TYPE:
    482     Unsigned integer (``uint32_t``).
    483 
    484 RANGE:
    485     Zero or positive.
     484OPTION TYPE:
     485    This configuration option is an integer define.
    486486
    487487DEFAULT VALUE:
    488488    This is computed by default, and is set to the number of device drivers
    489489    configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
    490     configuration parameters.
    491 
    492 DESCRIPTION:
    493     ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
    494     per node.
     490    configuration options.
     491
     492VALUE CONSTRAINTS:
     493    The value of this configuration option shall satisfy all of the following
     494    constraints:
     495
     496    * It shall be less than or equal to ``SIZE_MAX``.
     497
     498    * It shall be greater than or equal than the number of statically configured
     499      device drivers.
     500
     501    * It shall be less than or equal to a
     502      BSP-specific and application-specific value which depends on the size of the
     503      memory available to the application.
     504
     505DESCRIPTION:
     506    The value of this configuration option defines the number of device drivers.
    495507
    496508NOTES:
    497509    If the application will dynamically install device drivers, then this
    498     configuration parameter must be larger than the number of statically
     510    configuration parameter shall be larger than the number of statically
    499511    configured device drivers. Drivers configured using the
    500     ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
     512    ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration options are
    501513    statically installed.
  • c-user/config/event-record.rst

    re26f874 r7bad894  
    111111    ``CONFIGURE_RECORD_PER_PROCESSOR_ITEMS``
    112112
    113 DATA TYPE:
    114     Unsigned integer (``unsigned int``).
    115 
    116 RANGE:
    117     A power of two greater than or equal to 16.
     113OPTION TYPE:
     114    This configuration option is an integer define.
    118115
    119116DEFAULT VALUE:
    120     This is not defined by default.
     117    The default value is 0.
     118
     119VALUE CONSTRAINTS:
     120    The value of this configuration option shall satisfy all of the following
     121    constraints:
     122
     123    * It shall be greater than or equal to 16.
     124
     125    * It shall be less than or equal to ``SIZE_MAX``.
     126
     127    * It shall be a power of two.
     128
     129    * It shall be less than or equal to a
     130      BSP-specific and application-specific value which depends on the size of the
     131      memory available to the application.
    121132
    122133DESCRIPTION:
    123     If defined, then a record item buffer of the specified item count is
    124     statically allocated for each configured processor
    125     (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).
     134    The value of this configuration option defines the event record item count
     135    per processor.
    126136
    127137NOTES:
    128     None.
     138    The event record buffers are statically allocated for each configured
     139    processor (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  If the value of this
     140    configuration option is zero, then nothing is allocated.
  • c-user/config/filesystem.rst

    re26f874 r7bad894  
    7171
    7272NOTES:
    73     Filesystems must be initialized to support file descriptor based device
     73    Filesystems shall be initialized to support file descriptor based device
    7474    drivers and basic input/output functions such as :c:func:`printf`.
    7575    Filesystems can be disabled to reduce the memory footprint of an application.
     
    422422    ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
    423423
    424 DATA TYPE:
    425     Boolean feature macro.
    426 
    427 RANGE:
    428     Valid values for this configuration parameter are a power of two (2)
    429     between 16 and 512 inclusive.  In other words, valid values are 16, 32, 64,
    430     128, 256,and 512.
     424OPTION TYPE:
     425    This configuration option is an integer define.
    431426
    432427DEFAULT VALUE:
    433     The default IMFS block size is 128 bytes.
    434 
    435 DESCRIPTION:
    436     This configuration parameter specifies the block size for in-memory files
    437     managed by the IMFS. The configured block size has two impacts. The first
    438     is the average amount of unused memory in the last block of each file. For
    439     example, when the block size is 512, on average one-half of the last block
    440     of each file will remain unused and the memory is wasted. In contrast, when
    441     the block size is 16, the average unused memory per file is only 8
    442     bytes. However, it requires more allocations for the same size file and
    443     thus more overhead per block for the dynamic memory management.
     428    The default value is 128.
     429
     430VALUE CONSTRAINTS:
     431    The value of this configuration option shall be
     432    an element of {16, 32, 64, 128, 256, 512}.
     433
     434DESCRIPTION:
     435    The value of this configuration option defines the block size for in-memory
     436    files managed by the IMFS.
     437
     438NOTES:
     439    The configured block size has two impacts. The first is the average amount of
     440    unused memory in the last block of each file.  For example, when the block
     441    size is 512, on average one-half of the last block of each file will remain
     442    unused and the memory is wasted. In contrast, when the block size is 16, the
     443    average unused memory per file is only 8 bytes. However, it requires more
     444    allocations for the same size file and thus more overhead per block for the
     445    dynamic memory management.
    444446
    445447    Second, the block size has an impact on the maximum size file that can be
     
    461463      bytes.
    462464
    463 NOTES:
    464     None.
    465 
    466465.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
    467466
  • c-user/config/general.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    4849    ``CONFIGURE_EXTRA_TASK_STACKS``
    4950
    50 DATA TYPE:
    51     Unsigned integer (``size_t``).
    52 
    53 RANGE:
    54     Undefined or positive.
     51OPTION TYPE:
     52    This configuration option is an integer define.
    5553
    5654DEFAULT VALUE:
    5755    The default value is 0.
    5856
    59 DESCRIPTION:
    60     This configuration parameter is set to the number of bytes the applications
    61     wishes to add to the task stack requirements calculated by
     57VALUE CONSTRAINTS:
     58    The value of this configuration option shall satisfy all of the following
     59    constraints:
     60
     61    * It shall be greater than or equal to 0.
     62
     63    * It shall be small enough so that the task
     64      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     65      overflow an integer of type ``uintptr_t``.
     66
     67DESCRIPTION:
     68    The value of this configuration option defines the number of bytes the
     69    applications wishes to add to the task stack requirements calculated by
    6270    ``<rtems/confdefs.h>``.
    6371
    6472NOTES:
    6573    This parameter is very important.  If the application creates tasks with
    66     stacks larger then the minimum, then that memory is NOT accounted for by
     74    stacks larger then the minimum, then that memory is **not** accounted for by
    6775    ``<rtems/confdefs.h>``.
    6876
     
    7785    ``CONFIGURE_INITIAL_EXTENSIONS``
    7886
    79 DATA TYPE:
    80     List of user extension initializers (``rtems_extensions_table``).
    81 
    82 RANGE:
    83     Undefined or a list of one or more user extensions.
    84 
    85 DEFAULT VALUE:
    86     This is not defined by default.
    87 
    88 DESCRIPTION:
    89     If ``CONFIGURE_INITIAL_EXTENSIONS`` is defined by the application, then
    90     this application specific set of initial extensions will be placed in the
    91     initial extension table.
    92 
    93 NOTES:
    94     None.
     87OPTION TYPE:
     88    This configuration option is an initializer define.
     89
     90DEFAULT VALUE:
     91    The default value is the empty list.
     92
     93VALUE CONSTRAINTS:
     94    The value of this configuration option shall be a list of initializers for
     95    structures of type :c:type:`rtems_extensions_table`.
     96
     97DESCRIPTION:
     98    The value of this configuration option is used to initialize the table of
     99    initial user extensions.
     100
     101NOTES:
     102    The value of this configuration option is placed before the entries of
     103    :ref:`BSP_INITIAL_EXTENSION` and after the entries of all other initial
     104    user extensions.
    95105
    96106.. index:: CONFIGURE_INTERRUPT_STACK_SIZE
     
    105115    ``CONFIGURE_INTERRUPT_STACK_SIZE``
    106116
    107 DATA TYPE:
    108     Unsigned integer.
    109 
    110 RANGE:
    111     Positive.
    112 
    113 DEFAULT VALUE:
    114     The default value is ``BSP_INTERRUPT_STACK_SIZE`` in case it is defined,
     117OPTION TYPE:
     118    This configuration option is an integer define.
     119
     120DEFAULT VALUE:
     121    The default value is :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined,
    115122    otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``.
    116123
    117 DESCRIPTION:
    118     The ``CONFIGURE_INTERRUPT_STACK_SIZE`` configuration option defines the
    119     size of an interrupt stack in bytes.
    120 
    121 NOTES:
    122     The interrupt stack size must be aligned according to
    123     ``CPU_INTERRUPT_STACK_ALIGNMENT``.
    124 
     124VALUE CONSTRAINTS:
     125    The value of this configuration option shall satisfy all of the following
     126    constraints:
     127
     128    * It shall be greater than or equal to a
     129      BSP-specific and application-specific minimum value.
     130
     131    * It shall be small enough so that the
     132      interrupt stack area calculation carried out by ``<rtems/confdefs.h>`` does
     133      not overflow an integer of type ``size_t``.
     134
     135    * It shall be aligned according to
     136      ``CPU_INTERRUPT_STACK_ALIGNMENT``.
     137
     138DESCRIPTION:
     139    The value of this configuration option defines the size of an interrupt stack
     140    in bytes.
     141
     142NOTES:
    125143    There is one interrupt stack available for each configured processor
    126     (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).  The
    127     interrupt stack areas are statically allocated in a special linker section
    128     (``.rtemsstack.interrupt``).  The placement of this linker section is
    129     BSP-specific.
     144    (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  The interrupt stack areas are
     145    statically allocated in a special linker section (``.rtemsstack.interrupt``).
     146    The placement of this linker section is BSP-specific.
    130147
    131148    Some BSPs use the interrupt stack as the initialization stack which is used
     
    138155
    139156    In releases before RTEMS 5.1 the default value was
    140     :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE
    141     <CONFIGURE_MINIMUM_TASK_STACK_SIZE>` instead of ``CPU_STACK_MINIMUM_SIZE``.
     157    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``.
    142158
    143159.. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
     
    152168    ``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS``
    153169
    154 DATA TYPE:
    155     Unsigned integer (``uint32_t``).
    156 
    157 RANGE:
    158     Zero or positive.
    159 
    160 DEFAULT VALUE:
    161     If ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` is defined, then the
    162     default value is 3, otherwise the default value is 0.  Three file
    163     descriptors allows RTEMS to support standard input, output, and error I/O
    164     streams on ``/dev/console``.
    165 
    166 DESCRIPTION:
    167     This configuration parameter is set to the maximum number of file like
    168     objects that can be concurrently open.
    169 
    170 NOTES:
    171     None.
     170OPTION TYPE:
     171    This configuration option is an integer define.
     172
     173DEFAULT VALUE:
     174    The default value is 3.
     175
     176VALUE CONSTRAINTS:
     177    The value of this configuration option shall satisfy all of the following
     178    constraints:
     179
     180    * It shall be greater than or equal to 0.
     181
     182    * It shall be less than or equal to ``SIZE_MAX``.
     183
     184    * It shall be less than or equal to a
     185      BSP-specific and application-specific value which depends on the size of the
     186      memory available to the application.
     187
     188DESCRIPTION:
     189    The value of this configuration option defines the maximum number of file
     190    like objects that can be concurrently open.
     191
     192NOTES:
     193    The default value of three file descriptors allows RTEMS to support standard
     194    input, output, and error I/O streams on ``/dev/console``.
    172195
    173196.. index:: CONFIGURE_MAXIMUM_PRIORITY
     
    183206    ``CONFIGURE_MAXIMUM_PRIORITY``
    184207
    185 DATA TYPE:
    186     Unsigned integer (``uint8_t``).
    187 
    188 RANGE:
    189     Valid values for this configuration parameter must be one (1) less than
    190     than a power of two (2) between 4 and 256 inclusively.  In other words,
    191     valid values are 3, 7, 31, 63, 127, and 255.
    192 
    193 DEFAULT VALUE:
    194     The default value is 255, because RTEMS must support 256 priority levels to
    195     be compliant with various standards. These priorities range from zero (0)
    196     to 255.
    197 
    198 DESCRIPTION:
    199     For the schedulers
     208OPTION TYPE:
     209    This configuration option is an integer define.
     210
     211DEFAULT VALUE:
     212    The default value is 255.
     213
     214VALUE CONSTRAINTS:
     215    The value of this configuration option shall be
     216    an element of {3, 7, 31, 63, 127, 255}.
     217
     218DESCRIPTION:
     219    For the following schedulers
    200220
    201221    * :ref:`SchedulerPriority`, which is the default in uniprocessor
     
    218238    system and will thus be used by the IDLE task.
    219239
    220     Priority zero (0) is reserved for internal use by RTEMS and is not available
    221     to applications.
     240    Priority zero is reserved for internal use by RTEMS and is not available to
     241    applications.
    222242
    223243    Reducing the number of priorities through this configuration option reduces
     
    229249    (``CONFIGURE_MAXIMUM_PRIORITY == 3``).
    230250
     251    The default value is 255, because RTEMS shall support 256 priority levels to
     252    be compliant with various standards.  These priorities range from 0 to 255.
     253
    231254.. index:: CONFIGURE_MAXIMUM_PROCESSORS
    232255
     
    239262    ``CONFIGURE_MAXIMUM_PROCESSORS``
    240263
    241 DATA TYPE:
    242     Unsigned integer (``uint32_t``).
    243 
    244 RANGE:
    245     Positive.
     264OPTION TYPE:
     265    This configuration option is an integer define.
    246266
    247267DEFAULT VALUE:
    248268    The default value is 1.
    249269
    250 DESCRIPTION:
    251     ``CONFIGURE_MAXIMUM_PROCESSORS`` must be set to the maximum number of
     270VALUE CONSTRAINTS:
     271    The value of this configuration option shall be greater than or equal to 0
     272    and less than or equal to ``CPU_MAXIMUM_PROCESSORS``.
     273
     274DESCRIPTION:
     275    The value of this configuration option defines the maximum number of
    252276    processors an application intends to use.  The number of actually available
    253     processors depends on the hardware and may be less.  It is recommended to
    254     use the smallest value suitable for the application in order to save
    255     memory.  Each processor needs an idle thread and interrupt stack for
    256     example.
     277    processors depends on the hardware and may be less.  It is recommended to use
     278    the smallest value suitable for the application in order to save memory.
     279    Each processor needs an IDLE task stack and interrupt stack for example.
    257280
    258281NOTES:
    259282    If there are more processors available than configured, the rest will be
    260     ignored.  This configuration define is ignored in uniprocessor
    261     configurations.
     283    ignored.  In uniprocessor configuration, this configuration define is
     284    ignored.
    262285
    263286.. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
     
    272295    ``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE``
    273296
    274 DATA TYPE:
    275     Unsigned integer (``size_t``).
    276 
    277 RANGE:
    278     No restrictions.
    279 
    280 DEFAULT VALUE:
    281     The default value is 16.  This value was chosen for Linux compatibility,
    282     see
     297OPTION TYPE:
     298    This configuration option is an integer define.
     299
     300DEFAULT VALUE:
     301    The default value is 16.
     302
     303VALUE CONSTRAINTS:
     304    The value of this configuration option shall satisfy all of the following
     305    constraints:
     306
     307    * It shall be greater than or equal to 0.
     308
     309    * It shall be less than or equal to ``SIZE_MAX``.
     310
     311    * It shall be less than or equal to a
     312      BSP-specific and application-specific value which depends on the size of the
     313      memory available to the application.
     314
     315DESCRIPTION:
     316    The value of this configuration option defines the maximum thread name size
     317    including the terminating ``NUL`` character.
     318
     319NOTES:
     320    The default value was chosen for Linux compatibility, see
    283321    `PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
    284322
    285 DESCRIPTION:
    286     This configuration parameter specifies the maximum thread name size
    287     including the terminating `NUL` character.
    288 
    289 NOTES:
    290323    The size of the thread control block is increased by the maximum thread name
    291     size.  This configuration option is available since RTEMS 5.1.
     324    size.
     325
     326    This configuration option is available since RTEMS 5.1.
    292327
    293328.. index:: CONFIGURE_MEMORY_OVERHEAD
     
    301336    ``CONFIGURE_MEMORY_OVERHEAD``
    302337
    303 DATA TYPE:
    304     Unsigned integer (``size_t``).
    305 
    306 RANGE:
    307     Zero or positive.
     338OPTION TYPE:
     339    This configuration option is an integer define.
    308340
    309341DEFAULT VALUE:
    310342    The default value is 0.
    311343
    312 DESCRIPTION:
    313     This parameter is set to the number of kilobytes the application wishes to
    314     add to the requirements calculated by ``<rtems/confdefs.h>``.
    315 
    316 NOTES:
    317     This configuration parameter should only be used when it is suspected that
    318     a bug in ``<rtems/confdefs.h>`` has resulted in an underestimation.
    319     Typically the memory allocation will be too low when an application does
    320     not account for all message queue buffers or task stacks.
     344VALUE CONSTRAINTS:
     345    The value of this configuration option shall satisfy all of the following
     346    constraints:
     347
     348    * It shall be greater than or equal to 0.
     349
     350    * It shall be less than or equal to a
     351      BSP-specific and application-specific value which depends on the size of the
     352      memory available to the application.
     353
     354    * It shall be small enough so that the
     355      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
     356      not overflow an integer of type ``uintptr_t``.
     357
     358DESCRIPTION:
     359    The value of this configuration option defines the number of kilobytes the
     360    application wishes to add to the RTEMS Workspace size calculated by
     361    ``<rtems/confdefs.h>``.
     362
     363NOTES:
     364    This configuration option should only be used when it is suspected that a bug
     365    in ``<rtems/confdefs.h>`` has resulted in an underestimation.  Typically the
     366    memory allocation will be too low when an application does not account for
     367    all message queue buffers or task stacks, see
     368    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
    321369
    322370.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
     
    333381    ``CONFIGURE_MESSAGE_BUFFER_MEMORY``
    334382
    335 DATA TYPE:
    336     integer summation macro
    337 
    338 RANGE:
    339     undefined (zero) or calculation resulting in a positive integer
    340 
    341 DEFAULT VALUE:
    342     The default value is zero.
    343 
    344 DESCRIPTION:
    345     The value of this configuration option defines the number of bytes
    346     resereved for message queue buffers in the RTEMS Workspace.
     383OPTION TYPE:
     384    This configuration option is an integer define.
     385
     386DEFAULT VALUE:
     387    The default value is 0.
     388
     389VALUE CONSTRAINTS:
     390    The value of this configuration option shall satisfy all of the following
     391    constraints:
     392
     393    * It shall be greater than or equal to 0.
     394
     395    * It shall be less than or equal to a
     396      BSP-specific and application-specific value which depends on the size of the
     397      memory available to the application.
     398
     399    * It shall be small enough so that the
     400      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
     401      not overflow an integer of type ``uintptr_t``.
     402
     403DESCRIPTION:
     404    The value of this configuration option defines the number of bytes reserved
     405    for message queue buffers in the RTEMS Workspace.
    347406
    348407NOTES:
     
    394453
    395454.. index:: CONFIGURE_MICROSECONDS_PER_TICK
     455.. index:: clock tick quantum
    396456.. index:: tick quantum
    397457
     
    404464    ``CONFIGURE_MICROSECONDS_PER_TICK``
    405465
    406 DATA TYPE:
    407     Unsigned integer (``uint32_t``).
    408 
    409 RANGE:
    410     Positive.
    411 
    412 DEFAULT VALUE:
    413     This is not defined by default. When not defined, the clock tick quantum is
    414     configured to be 10,000 microseconds which is ten (10) milliseconds.
    415 
    416 DESCRIPTION:
    417     This constant is  used to specify the length of time between clock ticks.
     466OPTION TYPE:
     467    This configuration option is an integer define.
     468
     469DEFAULT VALUE:
     470    The default value is 10000.
     471
     472VALUE CONSTRAINTS:
     473    The value of this configuration option shall satisfy all of the following
     474    constraints:
     475
     476    * It shall be greater than or equal to a Clock Driver specific value.
     477
     478    * It shall be less than or equal to a Clock Driver specific value.
     479
     480    * The resulting clock ticks per second should be an integer.
     481
     482DESCRIPTION:
     483    The value of this configuration option defines the length of time in
     484    microseconds between clock ticks (clock tick quantum).
    418485
    419486    When the clock tick quantum value is too low, the system will spend so much
     
    433500
    434501NOTES:
    435     This configuration parameter has no impact if the Clock Tick Device driver
    436     is not configured.
    437 
    438     There may be BSP specific limits on the resolution or maximum value of a
    439     clock tick quantum.
     502    This configuration option has no impact if the Clock Driver is not
     503    configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
     504
     505    There may be Clock Driver specific limits on the resolution or maximum value
     506    of a clock tick quantum.
    440507
    441508.. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE
     
    450517    ``CONFIGURE_MINIMUM_TASK_STACK_SIZE``
    451518
    452 DATA TYPE:
    453     Unsigned integer (``uint32_t``).
    454 
    455 RANGE:
    456     Positive.
    457 
    458 DEFAULT VALUE:
    459     The default value is architecture-specific.
    460 
    461 DESCRIPTION:
    462     This configuration parameter defines the minimum stack size in bytes for
    463     every user task or thread in the system.
     519OPTION TYPE:
     520    This configuration option is an integer define.
     521
     522DEFAULT VALUE:
     523    The default value is ``CPU_STACK_MINIMUM_SIZE``.
     524
     525VALUE CONSTRAINTS:
     526    The value of this configuration option shall satisfy all of the following
     527    constraints:
     528
     529    * It shall be small enough so that the task
     530      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     531      overflow an integer of type ``uintptr_t``.
     532
     533    * It shall be greater than or equal to a
     534      BSP-specific and application-specific minimum value.
     535
     536DESCRIPTION:
     537    The value of this configuration option defines the minimum stack size in
     538    bytes for every user task or thread in the system.
    464539
    465540NOTES:
    466541    Adjusting this parameter should be done with caution.  Examining the actual
    467542    stack usage using the stack checker usage reporting facility is recommended
    468     (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED <CONFIGURE_STACK_CHECKER_ENABLED>`).
     543    (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED`).
    469544
    470545    This parameter can be used to lower the minimum from that recommended. This
    471546    can be used in low memory systems to reduce memory consumption for
    472     stacks. However, this must be done with caution as it could increase the
     547    stacks. However, this shall be done with caution as it could increase the
    473548    possibility of a blown task stack.
    474549
     
    479554    By default, this configuration parameter defines also the minimum stack
    480555    size of POSIX threads.  This can be changed with the
    481     :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE <CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE>`
     556    :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`
    482557    configuration option.
    483558
    484559    In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was
    485     used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE
    486     <CONFIGURE_INTERRUPT_STACK_SIZE>`.
     560    used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
    487561
    488562.. index:: CONFIGURE_STACK_CHECKER_ENABLED
     
    525599    ``CONFIGURE_TICKS_PER_TIMESLICE``
    526600
    527 DATA TYPE:
    528     Unsigned integer (``uint32_t``).
    529 
    530 RANGE:
    531     Positive.
     601OPTION TYPE:
     602    This configuration option is an integer define.
    532603
    533604DEFAULT VALUE:
    534605    The default value is 50.
    535606
    536 DESCRIPTION:
    537     This configuration parameter specifies the length of the timeslice quantum
    538     in ticks for each task.
    539 
    540 NOTES:
    541     This configuration parameter has no impact if the Clock Tick Device driver
    542     is not configured.
     607VALUE CONSTRAINTS:
     608    The value of this configuration option shall be greater than or equal to 0
     609    and less than or equal to ``UINT32_MAX``.
     610
     611DESCRIPTION:
     612    The value of this configuration option defines the length of the timeslice
     613    quantum in ticks for each task.
     614
     615NOTES:
     616    This configuration option has no impact if the Clock Driver is not
     617    configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
    543618
    544619.. index:: CONFIGURE_UNIFIED_WORK_AREAS
     
    588663    ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE``
    589664
    590 DATA TYPE:
    591     Unsigned integer (``uint32_t``).
    592 
    593 RANGE:
    594     Positive.
    595 
    596 DEFAULT VALUE:
    597     If not defined and ``CONFIGURE_UNLIMITED_OBJECTS`` is defined, the default
    598     value is eight (8).
    599 
    600 DESCRIPTION:
    601     ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE`` provides an allocation size to use
    602     for ``rtems_resource_unlimited`` when using
    603     ``CONFIGURE_UNLIMITED_OBJECTS``.
     665OPTION TYPE:
     666    This configuration option is an integer define.
     667
     668DEFAULT VALUE:
     669    The default value is 8.
     670
     671VALUE CONSTRAINTS:
     672    The value of this configuration option shall meet the constraints of all
     673    object classes to which it is applied.
     674
     675DESCRIPTION:
     676    If :ref:`CONFIGURE_UNLIMITED_OBJECTS` is defined, then the value of this
     677    configuration option defines the default objects maximum of all object
     678    classes supporting :ref:`ConfigUnlimitedObjects` to
     679    ``rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)``.
    604680
    605681NOTES:
    606682    By allowing users to declare all resources as being unlimited the user can
    607     avoid identifying and limiting the resources
    608     used. ``CONFIGURE_UNLIMITED_OBJECTS`` does not support varying the
    609     allocation sizes for different objects; users who want that much control
    610     can define the ``rtems_resource_unlimited`` macros themselves.
     683    avoid identifying and limiting the resources used.
     684
     685    The object maximum of each class can be configured also individually using
     686    the :c:func:`rtems_resource_unlimited` macro.
    611687
    612688.. index:: CONFIGURE_UNLIMITED_OBJECTS
  • c-user/config/idle-task.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    1819    ``CONFIGURE_IDLE_TASK_BODY``
    1920
    20 DATA TYPE:
    21     Function pointer.
    22 
    23 RANGE:
    24     Undefined or valid function pointer.
     21OPTION TYPE:
     22    This configuration option is an initializer define.
    2523
    2624DEFAULT VALUE:
    27     This is not defined by default.
     25    If :ref:`BSP_IDLE_TASK_BODY` is defined, then this will be the default value,
     26    otherwise the default value is ``_CPU_Thread_Idle_body``.
     27
     28VALUE CONSTRAINTS:
     29    The value of this configuration option shall be defined to a valid function
     30    pointer of the type ``void *( *idle_body )( uintptr_t )``.
    2831
    2932DESCRIPTION:
    30     ``CONFIGURE_IDLE_TASK_BODY`` is set to the function name corresponding to
    31     the application specific IDLE thread body.  If not specified, the BSP or
    32     RTEMS default IDLE thread body will be used.
     33    The value of this configuration option initializes the IDLE thread body.
    3334
    3435NOTES:
    35     None.
     36    IDLE threads shall not block.  A blocking IDLE thread results in undefined
     37    system behaviour because the scheduler assume that at least one ready thread
     38    exists.
     39
     40    IDLE threads can be used to initialize the application, see configuration
     41    option :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`.
    3642
    3743.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
     
    5460DESCRIPTION:
    5561    This configuration option is defined to indicate that the user has configured
    56     **no** user initialization tasks or threads and that the user provided idle
     62    **no** user initialization tasks or threads and that the user provided IDLE
    5763    task will perform application initialization and then transform itself into
    58     an idle task.
     64    an IDLE task.
    5965
    6066NOTES:
    61     If you use this option be careful, the user idle task **cannot** block at all
     67    If you use this option be careful, the user IDLE task **cannot** block at all
    6268    during the initialization sequence.  Further, once application
    63     initialization is complete, it must make itself preemptible and enter an idle
     69    initialization is complete, it shall make itself preemptible and enter an idle
    6470    body loop.
    6571
    66     The idle task must run at the lowest priority of all tasks in the system.
     72    The IDLE task shall run at the lowest priority of all tasks in the system.
    6773
    6874    If this configuration option is defined, then it is mandatory to configure a
    69     user idle task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
     75    user IDLE task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
    7076    otherwise a compile time error in the configuration file will occur.
    7177
    72     The application must define exactly one of the following configuration
     78    The application shall define exactly one of the following configuration
    7379    options
    7480
     
    7783    * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
    7884
    79     * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
     85    * `CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
    8086
    8187    otherwise a compile time error in the configuration file will occur.
     
    9197    ``CONFIGURE_IDLE_TASK_STACK_SIZE``
    9298
    93 DATA TYPE:
    94     Unsigned integer (``size_t``).
    95 
    96 RANGE:
    97     Undefined or positive.
     99OPTION TYPE:
     100    This configuration option is an integer define.
    98101
    99102DEFAULT VALUE:
    100     The default value is RTEMS_MINIMUM_STACK_SIZE.
     103    The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     104
     105VALUE CONSTRAINTS:
     106    The value of this configuration option shall satisfy all of the following
     107    constraints:
     108
     109    * It shall be greater than or equal to a
     110      BSP-specific and application-specific minimum value.
     111
     112    * It shall be small enough so that the IDLE
     113      task stack area calculation carried out by ``<rtems/confdefs.h>`` does not
     114      overflow an integer of type ``size_t``.
    101115
    102116DESCRIPTION:
    103     ``CONFIGURE_IDLE_TASK_STACK_SIZE`` is set to the desired stack size for the
     117    The value of this configuration option defines the task stack size for an
    104118    IDLE task.
    105119
    106120NOTES:
    107     None.
     121    In SMP configurations, there is one IDLE task per configured processor, see
     122    :ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
  • c-user/config/mpci.rst

    re26f874 r7bad894  
    4949    ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
    5050
    51 DATA TYPE:
    52     Unsigned integer (``uint32_t``).
    53 
    54 RANGE:
    55     Positive.
     51OPTION TYPE:
     52    This configuration option is an integer define.
    5653
    5754DEFAULT VALUE:
    5855    The default value is 32.
    5956
     57VALUE CONSTRAINTS:
     58    The value of this configuration option shall be greater than or equal to 0
     59    and less than or equal to ``UINT32_MAX``.
     60
    6061DESCRIPTION:
    61     ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
     62    The value of this configuration option defines the maximum number of
    6263    concurrently active global objects in a multiprocessor system.
    6364
     
    7677    ``CONFIGURE_MP_MAXIMUM_NODES``
    7778
    78 DATA TYPE:
    79     Unsigned integer (``uint32_t``).
    80 
    81 RANGE:
    82     Positive.
     79OPTION TYPE:
     80    This configuration option is an integer define.
    8381
    8482DEFAULT VALUE:
    8583    The default value is 2.
    8684
     85VALUE CONSTRAINTS:
     86    The value of this configuration option shall be greater than or equal to 0
     87    and less than or equal to ``UINT32_MAX``.
     88
    8789DESCRIPTION:
    88     ``CONFIGURE_MP_MAXIMUM_NODES`` is the maximum number of nodes in a
    89     multiprocessor system.
     90    The value of this configuration option defines the maximum number of nodes in
     91    a multiprocessor system.
    9092
    9193NOTES:
     
    102104    ``CONFIGURE_MP_MAXIMUM_PROXIES``
    103105
    104 DATA TYPE:
    105     Unsigned integer (``uint32_t``).
    106 
    107 RANGE:
    108     Undefined or positive.
     106OPTION TYPE:
     107    This configuration option is an integer define.
    109108
    110109DEFAULT VALUE:
    111110    The default value is 32.
    112111
     112VALUE CONSTRAINTS:
     113    The value of this configuration option shall be greater than or equal to 0
     114    and less than or equal to ``UINT32_MAX``.
     115
    113116DESCRIPTION:
    114     ``CONFIGURE_MP_MAXIMUM_PROXIES`` is the maximum number of concurrently
    115     active thread/task proxies on this node in a multiprocessor system.
     117    The value of this configuration option defines the maximum number of
     118    concurrently active thread/task proxies on this node in a multiprocessor
     119    system.
    116120
    117121NOTES:
     
    131135    ``CONFIGURE_MP_MPCI_TABLE_POINTER``
    132136
    133 DATA TYPE:
    134     pointer to ``rtems_mpci_table``
    135 
    136 RANGE:
    137     undefined or valid pointer
     137OPTION TYPE:
     138    This configuration option is an initializer define.
    138139
    139140DEFAULT VALUE:
    140     This is not defined by default.
     141    The default value is ``&MPCI_table``.
     142
     143VALUE CONSTRAINTS:
     144    The value of this configuration option shall be a pointer to
     145    :c:type:`rtems_mpci_table`.
    141146
    142147DESCRIPTION:
    143     ``CONFIGURE_MP_MPCI_TABLE_POINTER`` is the pointer to the MPCI
    144     Configuration Table.  The default value of this field is``&MPCI_table``.
     148    The value of this configuration option initializes the MPCI Configuration
     149    Table.
    145150
    146151NOTES:
     
    159164    ``CONFIGURE_MP_NODE_NUMBER``
    160165
    161 DATA TYPE:
    162     Unsigned integer (``uint32_t``).
    163 
    164 RANGE:
    165     Positive.
     166OPTION TYPE:
     167    This configuration option is an integer define.
    166168
    167169DEFAULT VALUE:
    168     The default value is ``NODE_NUMBER``, which is assumed to be set by the
    169     compilation environment.
     170    The default value is ``NODE_NUMBER``.
     171
     172VALUE CONSTRAINTS:
     173    The value of this configuration option shall be greater than or equal to 0
     174    and less than or equal to ``UINT32_MAX``.
    170175
    171176DESCRIPTION:
    172     ``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
    173     multiprocessor system.
     177    The value of this configuration option defines the node number of this node
     178    in a multiprocessor system.
    174179
    175180NOTES:
  • c-user/config/posix-api.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    2122    ``CONFIGURE_MAXIMUM_POSIX_KEYS``
    2223
    23 DATA TYPE:
    24     Unsigned integer (``uint32_t``).
    25 
    26 RANGE:
    27     Zero or positive.
    28 
    29 DEFAULT VALUE:
    30     The default value is 0.
    31 
    32 DESCRIPTION:
    33     ``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
    34     that can be concurrently active.
    35 
    36 NOTES:
    37     This object class can be configured in unlimited allocation mode.
     24OPTION TYPE:
     25    This configuration option is an integer define.
     26
     27DEFAULT VALUE:
     28    The default value is 0.
     29
     30VALUE CONSTRAINTS:
     31    The value of this configuration option shall satisfy all of the following
     32    constraints:
     33
     34    * It shall be greater than or equal to 0.
     35
     36    * It shall be less than or equal to 65535.
     37
     38    * It shall be less than or equal to a
     39      BSP-specific and application-specific value which depends on the size of the
     40      memory available to the application.
     41
     42    * It may be defined through
     43      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     44      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     45      satisfies all other constraints of this configuration option.
     46
     47DESCRIPTION:
     48    The value of this configuration option defines the maximum number of POSIX
     49    API Keys that can be concurrently active.
     50
     51NOTES:
     52    This object class can be configured in unlimited allocation mode, see
     53    :ref:`ConfigUnlimitedObjects`.
    3854
    3955.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
     
    4763    ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
    4864
    49 DATA TYPE:
    50     Unsigned integer (``uint32_t``).
    51 
    52 RANGE:
    53     Zero or positive.
     65OPTION TYPE:
     66    This configuration option is an integer define.
    5467
    5568DEFAULT VALUE:
    5669    The default value is
    57     :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS <CONFIGURE_MAXIMUM_POSIX_KEYS>` *
    58     :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>` +
    59     :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
    60 
    61 DESCRIPTION:
    62     ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
     70    :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` *
     71    :ref:`CONFIGURE_MAXIMUM_TASKS` +
     72    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
     73
     74VALUE CONSTRAINTS:
     75    The value of this configuration option shall satisfy all of the following
     76    constraints:
     77
     78    * It shall be greater than or equal to 0.
     79
     80    * It shall be less than or equal to 65535.
     81
     82    * It shall be less than or equal to a
     83      BSP-specific and application-specific value which depends on the size of the
     84      memory available to the application.
     85
     86    * It may be defined through
     87      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     88      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     89      satisfies all other constraints of this configuration option.
     90
     91DESCRIPTION:
     92    The value of this configuration option defines the maximum number of key
    6393    value pairs used by POSIX API Keys that can be concurrently active.
    6494
    6595NOTES:
    66     This object class can be configured in unlimited allocation mode.
     96    This object class can be configured in unlimited allocation mode, see
     97    :ref:`ConfigUnlimitedObjects`.
    6798
    6899    A key value pair is created by :c:func:`pthread_setspecific` if the value
     
    79110    ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
    80111
    81 DATA TYPE:
    82     Unsigned integer (``uint32_t``).
    83 
    84 RANGE:
    85     Zero or positive.
    86 
    87 DEFAULT VALUE:
    88     The default value is 0.
    89 
    90 DESCRIPTION:
    91     ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
     112OPTION TYPE:
     113    This configuration option is an integer define.
     114
     115DEFAULT VALUE:
     116    The default value is 0.
     117
     118VALUE CONSTRAINTS:
     119    The value of this configuration option shall satisfy all of the following
     120    constraints:
     121
     122    * It shall be greater than or equal to 0.
     123
     124    * It shall be less than or equal to 65535.
     125
     126    * It shall be less than or equal to a
     127      BSP-specific and application-specific value which depends on the size of the
     128      memory available to the application.
     129
     130    * It shall be small enough so that the
     131      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
     132      not overflow an integer of type ``uintptr_t``.
     133
     134    * It may be defined through
     135      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     136      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     137      satisfies all other constraints of this configuration option.
     138
     139DESCRIPTION:
     140    The value of this configuration option defines the maximum number of POSIX
    92141    API Message Queues that can be concurrently active.
    93142
    94143NOTES:
    95     This object class can be configured in unlimited allocation mode.  You have
    96     to account for the memory used to store the messages of each message queue,
    97     see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
     144    This object class can be configured in unlimited allocation mode, see
     145    :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
     146    store the messages of each message queue, see
     147    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
    98148
    99149.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
     
    107157    ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
    108158
    109 DATA TYPE:
    110     Unsigned integer (``uint32_t``).
    111 
    112 RANGE:
    113     Zero or positive.
    114 
    115 DEFAULT VALUE:
    116     The default value is 0.
    117 
    118 DESCRIPTION:
    119     ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
     159OPTION TYPE:
     160    This configuration option is an integer define.
     161
     162DEFAULT VALUE:
     163    The default value is 0.
     164
     165VALUE CONSTRAINTS:
     166    The value of this configuration option shall satisfy all of the following
     167    constraints:
     168
     169    * It shall be greater than or equal to 0.
     170
     171    * It shall be less than or equal to a
     172      BSP-specific and application-specific value which depends on the size of the
     173      memory available to the application.
     174
     175    * It shall be small enough so that the
     176      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
     177      not overflow an integer of type ``uintptr_t``.
     178
     179DESCRIPTION:
     180    The value of this configuration option defines the maximum number of POSIX
    120181    API Queued Signals that can be concurrently active.
    121182
     
    136197    ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
    137198
    138 DATA TYPE:
    139     Unsigned integer (``uint32_t``).
    140 
    141 RANGE:
    142     Zero or positive.
    143 
    144 DEFAULT VALUE:
    145     The default value is 0.
    146 
    147 DESCRIPTION:
    148     ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
    149     Named Semaphores that can be concurrently active.
    150 
    151 NOTES:
    152     This object class can be configured in unlimited allocation mode.
    153 
    154     Named semaphores are created with ``sem_open()``.  Semaphores initialized
    155     with ``sem_init()`` are not affected by this configuration option since the
    156     storage space for these semaphores is user-provided.
     199OPTION TYPE:
     200    This configuration option is an integer define.
     201
     202DEFAULT VALUE:
     203    The default value is 0.
     204
     205VALUE CONSTRAINTS:
     206    The value of this configuration option shall satisfy all of the following
     207    constraints:
     208
     209    * It shall be greater than or equal to 0.
     210
     211    * It shall be less than or equal to 65535.
     212
     213    * It shall be less than or equal to a
     214      BSP-specific and application-specific value which depends on the size of the
     215      memory available to the application.
     216
     217    * It shall be small enough so that the
     218      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does
     219      not overflow an integer of type ``uintptr_t``.
     220
     221    * It may be defined through
     222      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     223      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     224      satisfies all other constraints of this configuration option.
     225
     226DESCRIPTION:
     227    The value of this configuration option defines the maximum number of POSIX
     228    API Named Semaphores that can be concurrently active.
     229
     230NOTES:
     231    This object class can be configured in unlimited allocation mode, see
     232    :ref:`ConfigUnlimitedObjects`.
     233
     234    Named semaphores are created with :c:func:`sem_open()`.  Semaphores
     235    initialized with :c:func:`sem_init()` are not affected by this configuration
     236    option since the storage space for these semaphores is user-provided.
    157237
    158238.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
     
    166246    ``CONFIGURE_MAXIMUM_POSIX_THREADS``
    167247
    168 DATA TYPE:
    169     Unsigned integer (``uint32_t``).
    170 
    171 RANGE:
    172     Zero or positive.
    173 
    174 DEFAULT VALUE:
    175     The default value is 0.
    176 
    177 DESCRIPTION:
    178     ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
    179     Threads that can be concurrently active.
    180 
    181 NOTES:
    182     This object class can be configured in unlimited allocation mode.
     248OPTION TYPE:
     249    This configuration option is an integer define.
     250
     251DEFAULT VALUE:
     252    The default value is 0.
     253
     254VALUE CONSTRAINTS:
     255    The value of this configuration option shall satisfy all of the following
     256    constraints:
     257
     258    * It shall be greater than or equal to 0.
     259
     260    * It shall be less than or equal to 65535.
     261
     262    * It shall be less than or equal to a
     263      BSP-specific and application-specific value which depends on the size of the
     264      memory available to the application.
     265
     266    * It shall be small enough so that the task
     267      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     268      overflow an integer of type ``uintptr_t``.
     269
     270DESCRIPTION:
     271    The value of this configuration option defines the maximum number of POSIX
     272    API Threads that can be concurrently active.
     273
     274NOTES:
     275    This object class can be configured in unlimited allocation mode, see
     276    :ref:`ConfigUnlimitedObjects`.
    183277
    184278    This calculations for the required memory in the RTEMS Workspace for
    185279    threads assume that each thread has a minimum stack size and has floating
    186     point support enabled.  The configuration parameter
    187     ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
    188     requirements *ABOVE* the minimum size required.  See :ref:`Reserve
     280    point support enabled.  The configuration option
     281    :ref:`CONFIGURE_EXTRA_TASK_STACKS` is used to specify thread stack
     282    requirements **above** the minimum size required.  See :ref:`Reserve
    189283    Task/Thread Stack Memory Above Minimum` for more information about
    190284    ``CONFIGURE_EXTRA_TASK_STACKS``.
    191285
    192286    The maximum number of Classic API Tasks is specified by
    193     :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
     287    :ref:`CONFIGURE_MAXIMUM_TASKS`.
    194288
    195289    All POSIX threads have floating point enabled.
     
    205299    ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
    206300
    207 DATA TYPE:
    208     Unsigned integer (``uint32_t``).
    209 
    210 RANGE:
    211     Zero or positive.
    212 
    213 DEFAULT VALUE:
    214     The default value is 0.
    215 
    216 DESCRIPTION:
    217     ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
    218     Timers that can be concurrently active.
    219 
    220 NOTES:
    221     This object class can be configured in unlimited allocation mode.
     301OPTION TYPE:
     302    This configuration option is an integer define.
     303
     304DEFAULT VALUE:
     305    The default value is 0.
     306
     307VALUE CONSTRAINTS:
     308    The value of this configuration option shall satisfy all of the following
     309    constraints:
     310
     311    * It shall be greater than or equal to 0.
     312
     313    * It shall be less than or equal to 65535.
     314
     315    * It shall be less than or equal to a
     316      BSP-specific and application-specific value which depends on the size of the
     317      memory available to the application.
     318
     319    * It may be defined through
     320      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this
     321      object class, if the value passed to :c:func:`rtems_resource_unlimited`
     322      satisfies all other constraints of this configuration option.
     323
     324DESCRIPTION:
     325    The value of this configuration option defines the maximum number of POSIX
     326    API Timers that can be concurrently active.
     327
     328NOTES:
     329    This object class can be configured in unlimited allocation mode, see
     330    :ref:`ConfigUnlimitedObjects`.
    222331
    223332    Timers are only available if RTEMS was built with the
     
    235344    ``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
    236345
    237 DATA TYPE:
    238     Unsigned integer (``size_t``).
    239 
    240 RANGE:
    241     Positive.
     346OPTION TYPE:
     347    This configuration option is an integer define.
    242348
    243349DEFAULT VALUE:
    244350    The default value is two times the value of
    245     :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
    246 
    247 DESCRIPTION:
    248     This configuration parameter defines the minimum stack size in bytes for
    249     every POSIX thread in the system.
     351    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     352
     353VALUE CONSTRAINTS:
     354    The value of this configuration option shall satisfy all of the following
     355    constraints:
     356
     357    * It shall be small enough so that the task
     358      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     359      overflow an integer of type ``uintptr_t``.
     360
     361    * It shall be greater than or equal to a
     362      BSP-specific and application-specific minimum value.
     363
     364DESCRIPTION:
     365    The value of this configuration option defines the minimum stack size in
     366    bytes for every POSIX thread in the system.
    250367
    251368NOTES:
  • c-user/config/posix-init-thread.rst

    re26f874 r7bad894  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
    34.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
    45
     
    1920    ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT``
    2021
    21 DATA TYPE:
    22     POSIX thread function pointer (``void *(*entry_point)(void *)``).
    23 
    24 RANGE:
    25     Undefined or a valid POSIX thread function pointer.
     22OPTION TYPE:
     23    This configuration option is an initializer define.
    2624
    2725DEFAULT VALUE:
    2826    The default value is ``POSIX_Init``.
    2927
     28VALUE CONSTRAINTS:
     29    The value of this configuration option shall be defined to a valid function
     30    pointer of the type ``void *( *entry_point )( void * )``.
     31
    3032DESCRIPTION:
    31     ``CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT`` is the entry point
    32     (a.k.a. function name) of the single initialization thread defined by the
    33     POSIX API Initialization Threads Table.
     33    The value of this configuration option initializes the entry point of the
     34    POSIX API initialization thread.
    3435
    3536NOTES:
    36     The user must implement the function ``POSIX_Init`` or the function name
    37     provided in this configuration parameter.
     37    The application shall provide the function referenced by this configuration
     38    option.
    3839
    3940.. index:: CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
     
    4748    ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE``
    4849
    49 DATA TYPE:
    50     Unsigned integer (``size_t``).
    51 
    52 RANGE:
    53     Zero or positive.
     50OPTION TYPE:
     51    This configuration option is an integer define.
    5452
    5553DEFAULT VALUE:
    56     The default value is 2 \* RTEMS_MINIMUM_STACK_SIZE.
     54    The default value is :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`.
     55
     56VALUE CONSTRAINTS:
     57    The value of this configuration option shall satisfy all of the following
     58    constraints:
     59
     60    * It shall be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
     61
     62    * It shall be small enough so that the task
     63      stack space calculation carried out by ``<rtems/confdefs.h>`` does not
     64      overflow an integer of type ``uintptr_t``.
    5765
    5866DESCRIPTION:
    59     ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE`` is the stack size of the single
    60     initialization thread defined by the POSIX API Initialization Threads
    61     Table.
     67    The value of this configuration option defines the thread stack size of the
     68    POSIX API initialization thread.
    6269
    6370NOTES:
    64     If the stack size specified is greater than the configured minimum, it must
    65     be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``.  See :ref:`Reserve
    66     Task/Thread Stack Memory Above Minimum` for more information about
    67     ``CONFIGURE_EXTRA_TASK_STACKS``.
     71    None.
    6872
    6973.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
     
    8993
    9094NOTES:
    91     The application must define exactly one of the following configuration
     95    The application shall define exactly one of the following configuration
    9296    options
    9397
    9498    * :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
    9599
    96     * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
     100    * `CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
    97101
    98102    * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
  • c-user/config/scheduler-general.rst

    re26f874 r7bad894  
    136136    ``CONFIGURE_SCHEDULER_NAME``
    137137
    138 DATA TYPE:
    139     RTEMS Name (``rtems_name``).
    140 
    141 RANGE:
    142     Any value.
     138OPTION TYPE:
     139    This configuration option is an integer define.
    143140
    144141DEFAULT VALUE:
    145     The default name is
    146 
    147       - ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
    148       - ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
    149       - ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
    150       - ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
    151       - ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
    152       - ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
    153       - ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
    154       - ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
    155 
    156 DESCRIPTION:
    157     Schedulers can be identified via ``rtems_scheduler_ident``.  The name of
    158     the scheduler is determined by the configuration.
    159 
    160 NOTES:
    161     This scheduler configuration option is an advanced configuration option.
    162     Think twice before you use it.
     142    The default value is
     143
     144    * ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
     145
     146    * ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
     147
     148    * ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
     149
     150    * ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
     151
     152    * ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
     153
     154    * ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
     155
     156    * ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
     157
     158    * ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
     159
     160VALUE CONSTRAINTS:
     161    The value of this configuration option shall be a valid integer of type
     162    ``rtems_name``.
     163
     164DESCRIPTION:
     165    The value of this configuration option defines the name of the default
     166    scheduler.
     167
     168NOTES:
     169    This scheduler configuration option is an advanced configuration option.
     170    Think twice before you use it.
     171
     172    Schedulers can be identified via c:func:`rtems_scheduler_ident`.
     173
     174    Use :c:func:`rtems_build_name` to define the scheduler name.
    163175
    164176.. index:: CONFIGURE_SCHEDULER_PRIORITY
     
    353365
    354366DESCRIPTION:
    355     In case this configuration option is defined, then the user must provide a
     367    In case this configuration option is defined, then the user shall provide a
    356368    scheduler algorithm to the application.
    357369
     
    361373
    362374    RTEMS allows the application to provide its own task/thread scheduling
    363     algorithm. In order to do this, one must define
     375    algorithm. In order to do this, one shall define
    364376    ``CONFIGURE_SCHEDULER_USER`` to indicate the application provides its own
    365377    scheduling algorithm. If ``CONFIGURE_SCHEDULER_USER`` is defined then the
    366     following additional macros must be defined:
    367 
    368     - ``CONFIGURE_SCHEDULER`` must be defined to a static definition of
     378    following additional macros shall be defined:
     379
     380    - ``CONFIGURE_SCHEDULER`` shall be defined to a static definition of
    369381      the scheduler data structures of the user scheduler.
    370382
    371     - ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` must be defined to a scheduler
     383    - ``CONFIGURE_SCHEDULER_TABLE_ENTRIES`` shall be defined to a scheduler
    372384      table entry initializer for the user scheduler.
    373385
    374     - ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` must be defined to the type of
     386    - ``CONFIGURE_SCHEDULER_USER_PER_THREAD`` shall be defined to the type of
    375387      the per-thread information of the user scheduler.
    376388
  • c-user/config/task-stack-alloc.rst

    re26f874 r7bad894  
    2323    ``CONFIGURE_TASK_STACK_ALLOCATOR``
    2424
    25 DATA TYPE:
    26     Function pointer.
    27 
    28 RANGE:
    29     Undefined or valid function pointer.
     25OPTION TYPE:
     26    This configuration option is an initializer define.
    3027
    3128DEFAULT VALUE:
     
    3330    stacks will be allocated from the RTEMS Workspace.
    3431
     32VALUE CONSTRAINTS:
     33    The value of this configuration option shall be defined to a valid function
     34    pointer of the type ``void *( *allocate )( size_t )``.
     35
    3536DESCRIPTION:
    36     ``CONFIGURE_TASK_STACK_ALLOCATOR`` may point to a user provided routine to
    37     allocate task stacks.
     37    The value of this configuration option initializes the stack allocator
     38    allocate handler.
    3839
    3940NOTES:
    40     A correctly configured system must configure the following to be consistent:
     41    A correctly configured system shall configure the following to be consistent:
    4142
    42     - ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
     43    - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
    4344
    44     - ``CONFIGURE_TASK_STACK_ALLOCATOR``
     45    - `CONFIGURE_TASK_STACK_ALLOCATOR`
    4546
    46     - ``CONFIGURE_TASK_STACK_DEALLOCATOR``
     47    - :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
    4748
    4849.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
     
    5657    ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
    5758
    58 DATA TYPE:
    59     Function pointer.
    60 
    61 RANGE:
    62     Undefined, NULL or valid function pointer.
     59OPTION TYPE:
     60    This configuration option is an initializer define.
    6361
    6462DEFAULT VALUE:
    65     The default value is NULL, which indicates that task stacks will be
    66     allocated from the RTEMS Workspace.
     63    The default value is ``NULL``.
     64
     65VALUE CONSTRAINTS:
     66    The value of this configuration option shall be defined to a valid function
     67    pointer of the type ``void ( *initialize )( size_t )`` or to ``NULL``.
    6768
    6869DESCRIPTION:
    69     ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` configures the initialization
    70     method for an application or BSP specific task stack allocation
    71     implementation.
     70    The value of this configuration option initializes the stack allocator
     71    initialization handler.
    7272
    7373NOTES:
    74     A correctly configured system must configure the following to be consistent:
     74    A correctly configured system shall configure the following to be consistent:
    7575
    76     - ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
     76    - `CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
    7777
    78     - ``CONFIGURE_TASK_STACK_ALLOCATOR``
     78    - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
    7979
    80     - ``CONFIGURE_TASK_STACK_DEALLOCATOR``
     80    - :ref:`CONFIGURE_TASK_STACK_DEALLOCATOR`
    8181
    8282.. index:: CONFIGURE_TASK_STACK_DEALLOCATOR
     
    9191    ``CONFIGURE_TASK_STACK_DEALLOCATOR``
    9292
    93 DATA TYPE:
    94     Function pointer.
    95 
    96 RANGE:
    97     Undefined or valid function pointer.
     93OPTION TYPE:
     94    This configuration option is an initializer define.
    9895
    9996DEFAULT VALUE:
     
    10198    will be allocated from the RTEMS Workspace.
    10299
     100VALUE CONSTRAINTS:
     101    The value of this configuration option shall be defined to a valid function
     102    pointer of the type ``void ( *deallocate )( void * )``.
     103
    103104DESCRIPTION:
    104     ``CONFIGURE_TASK_STACK_DEALLOCATOR`` may point to a user provided routine
    105     to free task stacks.
     105    The value of this configuration option initializes the stack allocator
     106    deallocate handler.
    106107
    107108NOTES:
    108     A correctly configured system must configure the following to be consistent:
     109    A correctly configured system shall configure the following to be consistent:
    109110
    110     - ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
     111    - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT`
    111112
    112     - ``CONFIGURE_TASK_STACK_ALLOCATOR``
     113    - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
    113114
    114     - ``CONFIGURE_TASK_STACK_DEALLOCATOR``
     115    - `CONFIGURE_TASK_STACK_DEALLOCATOR`
Note: See TracChangeset for help on using the changeset viewer.