source: rtems-docs/c-user/config/posix-api.rst @ 9ba26e7

Last change on this file since 9ba26e7 was 9ba26e7, checked in by Joel Sherrill <joel@…>, on 05/20/22 at 13:45:16

c-user: Update references to --enable-* configure options.

Also updated list of SMP architectures and added enough lead in
to let users know the source code was the definitive answer.

  • Property mode set to 100644
File size: 15.7 KB
RevLine 
[16b0d3f]1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
[4565256]3.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
[16b0d3f]4.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
5
[ad64ea0]6.. This file is part of the RTEMS quality process and was automatically
7.. generated.  If you find something that needs to be fixed or
8.. worded better please post a report or patch to an RTEMS mailing list
9.. or raise a bug report:
[dd97e25]10..
[ba633ec]11.. https://www.rtems.org/bugs.html
[63764a6]12..
[ba633ec]13.. For information on updating and regenerating please refer to the How-To
14.. section in the Software Requirements Engineering chapter of the
15.. RTEMS Software Engineering manual.  The manual is provided as a part of
16.. a release.  For development sources please refer to the online
17.. documentation at:
[dd97e25]18..
[ba633ec]19.. https://docs.rtems.org
[63764a6]20
[51a5138]21.. Generated from spec:/acfg/if/group-posix
22
[16b0d3f]23POSIX API Configuration
24=======================
25
[79fb6fd]26This section describes configuration options related to the POSIX API.  Most
27POSIX API objects are available by default since RTEMS 5.1.  The queued signals
[9ba26e7]28and timers are only available if RTEMS was built with the enable POSIX
[79fb6fd]29build configuration option.
[16b0d3f]30
[51a5138]31.. Generated from spec:/acfg/if/max-posix-keys
32
[1c8ce33]33.. raw:: latex
34
35    \clearpage
36
[16b0d3f]37.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
38
39.. _CONFIGURE_MAXIMUM_POSIX_KEYS:
40
41CONFIGURE_MAXIMUM_POSIX_KEYS
42----------------------------
43
[1c8ce33]44.. rubric:: CONSTANT:
45
46``CONFIGURE_MAXIMUM_POSIX_KEYS``
47
48.. rubric:: OPTION TYPE:
49
50This configuration option is an integer define.
[16b0d3f]51
[1c8ce33]52.. rubric:: DEFAULT VALUE:
[16b0d3f]53
[1c8ce33]54The default value is 0.
[16b0d3f]55
[1c8ce33]56.. rubric:: DESCRIPTION:
[7bad894]57
[1c8ce33]58The value of this configuration option defines the maximum number of POSIX
59API Keys that can be concurrently active.
[7bad894]60
[1c8ce33]61.. rubric:: NOTES:
[7bad894]62
[1c8ce33]63This object class can be configured in unlimited allocation mode, see
64:ref:`ConfigUnlimitedObjects`.
[7bad894]65
[1c8ce33]66.. rubric:: CONSTRAINTS:
[7bad894]67
[1c8ce33]68The following constraints apply to this configuration option:
[16b0d3f]69
[1c8ce33]70* The value of the configuration option shall be greater than or equal to zero.
71
72* The value of the configuration option shall be less than or equal to 65535.
73
74* The value of the configuration option shall be less than or equal to a
75  BSP-specific and application-specific value which depends on the size of the
76  memory available to the application.
77
78* The value of the configuration option may be defined through
79  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
80  object class, if the value passed to :c:func:`rtems_resource_unlimited`
81  satisfies all other constraints of the configuration option.
[16b0d3f]82
[51a5138]83.. Generated from spec:/acfg/if/max-posix-key-value-pairs
84
[1c8ce33]85.. raw:: latex
86
87    \clearpage
88
[16b0d3f]89.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
90
91.. _CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS:
92
93CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
94---------------------------------------
95
[1c8ce33]96.. rubric:: CONSTANT:
97
98``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
99
100.. rubric:: OPTION TYPE:
101
102This configuration option is an integer define.
103
104.. rubric:: DEFAULT VALUE:
[16b0d3f]105
[1c8ce33]106The default value is
107:ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` *
108( :ref:`CONFIGURE_MAXIMUM_TASKS` +
109:ref:`CONFIGURE_MAXIMUM_POSIX_THREADS` ).
[16b0d3f]110
[1c8ce33]111.. rubric:: DESCRIPTION:
[7bad894]112
[1c8ce33]113The value of this configuration option defines the maximum number of key
114value pairs used by POSIX API Keys that can be concurrently active.
[7bad894]115
[1c8ce33]116.. rubric:: NOTES:
[7bad894]117
[1c8ce33]118This object class can be configured in unlimited allocation mode, see
119:ref:`ConfigUnlimitedObjects`.
[7bad894]120
[1c8ce33]121A key value pair is created by :c:func:`pthread_setspecific` if the value
122is not `NULL <https://en.cppreference.com/w/c/types/NULL>`_, otherwise it is deleted.
[7bad894]123
[1c8ce33]124.. rubric:: CONSTRAINTS:
[16b0d3f]125
[1c8ce33]126The following constraints apply to this configuration option:
[16b0d3f]127
[1c8ce33]128* The value of the configuration option shall be greater than or equal to zero.
[16b0d3f]129
[1c8ce33]130* The value of the configuration option shall be less than or equal to 65535.
131
132* The value of the configuration option shall be less than or equal to a
133  BSP-specific and application-specific value which depends on the size of the
134  memory available to the application.
135
136* The value of the configuration option may be defined through
137  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
138  object class, if the value passed to :c:func:`rtems_resource_unlimited`
139  satisfies all other constraints of the configuration option.
[16b0d3f]140
[51a5138]141.. Generated from spec:/acfg/if/max-posix-message-queues
142
[1c8ce33]143.. raw:: latex
144
145    \clearpage
146
[16b0d3f]147.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
148
149.. _CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES:
150
151CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
152--------------------------------------
153
[1c8ce33]154.. rubric:: CONSTANT:
[16b0d3f]155
[1c8ce33]156``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
[16b0d3f]157
[1c8ce33]158.. rubric:: OPTION TYPE:
[16b0d3f]159
[1c8ce33]160This configuration option is an integer define.
[7bad894]161
[1c8ce33]162.. rubric:: DEFAULT VALUE:
[7bad894]163
[1c8ce33]164The default value is 0.
[7bad894]165
[1c8ce33]166.. rubric:: DESCRIPTION:
[7bad894]167
[1c8ce33]168The value of this configuration option defines the maximum number of POSIX
169API Message Queues that can be concurrently active.
[7bad894]170
[1c8ce33]171.. rubric:: NOTES:
[7bad894]172
[1c8ce33]173This object class can be configured in unlimited allocation mode, see
174:ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
175store the messages of each message queue, see
176:ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
[16b0d3f]177
[1c8ce33]178.. rubric:: CONSTRAINTS:
179
180The following constraints apply to this configuration option:
181
182* The value of the configuration option shall be greater than or equal to zero.
183
184* The value of the configuration option shall be less than or equal to 65535.
185
186* The value of the configuration option shall be less than or equal to a
187  BSP-specific and application-specific value which depends on the size of the
188  memory available to the application.
189
190* The value of the configuration option shall be small enough so that the RTEMS
191  Workspace size calculation carried out by ``<rtems/confdefs.h>`` does not
192  overflow an integer of type `uintptr_t
193  <https://en.cppreference.com/w/c/types/integer>`_.
194
195* The value of the configuration option may be defined through
196  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
197  object class, if the value passed to :c:func:`rtems_resource_unlimited`
198  satisfies all other constraints of the configuration option.
[16b0d3f]199
[51a5138]200.. Generated from spec:/acfg/if/max-posix-queued-signals
201
[1c8ce33]202.. raw:: latex
203
204    \clearpage
205
[16b0d3f]206.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
207
208.. _CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS:
209
210CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
211--------------------------------------
212
[1c8ce33]213.. rubric:: CONSTANT:
214
215``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
[16b0d3f]216
[1c8ce33]217.. rubric:: OPTION TYPE:
[16b0d3f]218
[1c8ce33]219This configuration option is an integer define.
[16b0d3f]220
[1c8ce33]221.. rubric:: DEFAULT VALUE:
[7bad894]222
[1c8ce33]223The default value is 0.
[7bad894]224
[1c8ce33]225.. rubric:: DESCRIPTION:
[7bad894]226
[1c8ce33]227The value of this configuration option defines the maximum number of POSIX
228API Queued Signals that can be concurrently active.
[7bad894]229
[1c8ce33]230.. rubric:: NOTES:
[39ca06c]231
[1c8ce33]232Unlimited objects are not available for queued signals.
[16b0d3f]233
[9ba26e7]234Queued signals are only available if RTEMS was built with the POSIX API
235build configuration option enabled.
[16b0d3f]236
[1c8ce33]237.. rubric:: CONSTRAINTS:
238
239The following constraints apply to this configuration option:
240
241* The value of the configuration option shall be greater than or equal to zero.
242
243* The value of the configuration option shall be less than or equal to a
244  BSP-specific and application-specific value which depends on the size of the
245  memory available to the application.
246
247* The value of the configuration option shall be small enough so that the RTEMS
248  Workspace size calculation carried out by ``<rtems/confdefs.h>`` does not
249  overflow an integer of type `uintptr_t
250  <https://en.cppreference.com/w/c/types/integer>`_.
251
252* The value of the configuration option shall be zero if the POSIX API is not
253  enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True`` build
254  configuration option).  Otherwise a compile time error in the configuration
255  file will occur.
[16b0d3f]256
[51a5138]257.. Generated from spec:/acfg/if/max-posix-semaphores
258
[1c8ce33]259.. raw:: latex
260
261    \clearpage
262
[16b0d3f]263.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
264
265.. _CONFIGURE_MAXIMUM_POSIX_SEMAPHORES:
266
267CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
268----------------------------------
269
[1c8ce33]270.. rubric:: CONSTANT:
271
272``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
[16b0d3f]273
[1c8ce33]274.. rubric:: OPTION TYPE:
[16b0d3f]275
[1c8ce33]276This configuration option is an integer define.
[16b0d3f]277
[1c8ce33]278.. rubric:: DEFAULT VALUE:
[7bad894]279
[1c8ce33]280The default value is 0.
[7bad894]281
[1c8ce33]282.. rubric:: DESCRIPTION:
[7bad894]283
[1c8ce33]284The value of this configuration option defines the maximum number of POSIX
285API Named Semaphores that can be concurrently active.
[7bad894]286
[1c8ce33]287.. rubric:: NOTES:
[7bad894]288
[1c8ce33]289This object class can be configured in unlimited allocation mode, see
290:ref:`ConfigUnlimitedObjects`.
[7bad894]291
[1c8ce33]292Named semaphores are created with :c:func:`sem_open`.  Semaphores
293initialized with :c:func:`sem_init` are not affected by this
294configuration option since the storage space for these semaphores is
295user-provided.
[16b0d3f]296
[1c8ce33]297.. rubric:: CONSTRAINTS:
[16b0d3f]298
[1c8ce33]299The following constraints apply to this configuration option:
300
301* The value of the configuration option shall be greater than or equal to zero.
302
303* The value of the configuration option shall be less than or equal to 65535.
304
305* The value of the configuration option shall be less than or equal to a
306  BSP-specific and application-specific value which depends on the size of the
307  memory available to the application.
308
309* The value of the configuration option shall be small enough so that the RTEMS
310  Workspace size calculation carried out by ``<rtems/confdefs.h>`` does not
311  overflow an integer of type `uintptr_t
312  <https://en.cppreference.com/w/c/types/integer>`_.
313
314* The value of the configuration option may be defined through
315  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
316  object class, if the value passed to :c:func:`rtems_resource_unlimited`
317  satisfies all other constraints of the configuration option.
[16b0d3f]318
[51a5138]319.. Generated from spec:/acfg/if/max-posix-shms
320
[1c8ce33]321.. raw:: latex
322
323    \clearpage
324
[4032c96]325.. index:: CONFIGURE_MAXIMUM_POSIX_SHMS
326
327.. _CONFIGURE_MAXIMUM_POSIX_SHMS:
328
329CONFIGURE_MAXIMUM_POSIX_SHMS
330----------------------------
331
[1c8ce33]332.. rubric:: CONSTANT:
333
334``CONFIGURE_MAXIMUM_POSIX_SHMS``
335
336.. rubric:: OPTION TYPE:
[4032c96]337
[1c8ce33]338This configuration option is an integer define.
[4032c96]339
[1c8ce33]340.. rubric:: DEFAULT VALUE:
[4032c96]341
[1c8ce33]342The default value is 0.
[4032c96]343
[1c8ce33]344.. rubric:: DESCRIPTION:
[4032c96]345
[1c8ce33]346The value of this configuration option defines the maximum number of POSIX
347API Shared Memory objects that can be concurrently active.
[4032c96]348
[1c8ce33]349.. rubric:: NOTES:
[4032c96]350
[1c8ce33]351This object class can be configured in unlimited allocation mode, see
352:ref:`ConfigUnlimitedObjects`.
[4032c96]353
[1c8ce33]354.. rubric:: CONSTRAINTS:
[4032c96]355
[1c8ce33]356The following constraints apply to this configuration option:
[4032c96]357
[1c8ce33]358* The value of the configuration option shall be greater than or equal to zero.
359
360* The value of the configuration option shall be less than or equal to 65535.
361
362* The value of the configuration option shall be less than or equal to a
363  BSP-specific and application-specific value which depends on the size of the
364  memory available to the application.
365
366* The value of the configuration option shall be small enough so that the RTEMS
367  Workspace size calculation carried out by ``<rtems/confdefs.h>`` does not
368  overflow an integer of type `uintptr_t
369  <https://en.cppreference.com/w/c/types/integer>`_.
370
371* The value of the configuration option may be defined through
372  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
373  object class, if the value passed to :c:func:`rtems_resource_unlimited`
374  satisfies all other constraints of the configuration option.
[4032c96]375
[51a5138]376.. Generated from spec:/acfg/if/max-posix-threads
377
[1c8ce33]378.. raw:: latex
379
380    \clearpage
381
[f3076bc]382.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
[16b0d3f]383
[f3076bc]384.. _CONFIGURE_MAXIMUM_POSIX_THREADS:
[16b0d3f]385
[f3076bc]386CONFIGURE_MAXIMUM_POSIX_THREADS
387-------------------------------
[16b0d3f]388
[1c8ce33]389.. rubric:: CONSTANT:
390
391``CONFIGURE_MAXIMUM_POSIX_THREADS``
392
393.. rubric:: OPTION TYPE:
394
395This configuration option is an integer define.
[16b0d3f]396
[1c8ce33]397.. rubric:: DEFAULT VALUE:
[16b0d3f]398
[1c8ce33]399The default value is 0.
[16b0d3f]400
[1c8ce33]401.. rubric:: DESCRIPTION:
[7bad894]402
[1c8ce33]403The value of this configuration option defines the maximum number of POSIX
404API Threads that can be concurrently active.
[7bad894]405
[1c8ce33]406.. rubric:: NOTES:
[7bad894]407
[1c8ce33]408This object class can be configured in unlimited allocation mode, see
409:ref:`ConfigUnlimitedObjects`.
[7bad894]410
[1c8ce33]411This calculations for the required memory in the RTEMS Workspace for threads
412assume that each thread has a minimum stack size and has floating point
413support enabled.  The configuration option :ref:`CONFIGURE_EXTRA_TASK_STACKS` is used
414to specify thread stack requirements **above** the minimum size required.
[7bad894]415
[1c8ce33]416The maximum number of Classic API Tasks is specified by
417:ref:`CONFIGURE_MAXIMUM_TASKS`.
[16b0d3f]418
[1c8ce33]419All POSIX threads have floating point enabled.
[16b0d3f]420
[1c8ce33]421.. rubric:: CONSTRAINTS:
[16b0d3f]422
[1c8ce33]423The following constraints apply to this configuration option:
[16b0d3f]424
[1c8ce33]425* The value of the configuration option shall be greater than or equal to zero.
426
427* The value of the configuration option shall be less than or equal to 65535.
428
429* The value of the configuration option shall be less than or equal to a
430  BSP-specific and application-specific value which depends on the size of the
431  memory available to the application.
432
433* The value of the configuration option shall be small enough so that the task
434  stack space calculation carried out by ``<rtems/confdefs.h>`` does not
435  overflow an integer of type `uintptr_t
436  <https://en.cppreference.com/w/c/types/integer>`_.
[16b0d3f]437
[51a5138]438.. Generated from spec:/acfg/if/max-posix-timers
439
[1c8ce33]440.. raw:: latex
441
442    \clearpage
443
[f3076bc]444.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
445
446.. _CONFIGURE_MAXIMUM_POSIX_TIMERS:
447
448CONFIGURE_MAXIMUM_POSIX_TIMERS
449------------------------------
[16b0d3f]450
[1c8ce33]451.. rubric:: CONSTANT:
452
453``CONFIGURE_MAXIMUM_POSIX_TIMERS``
454
455.. rubric:: OPTION TYPE:
456
457This configuration option is an integer define.
458
459.. rubric:: DEFAULT VALUE:
[16b0d3f]460
[1c8ce33]461The default value is 0.
[16b0d3f]462
[1c8ce33]463.. rubric:: DESCRIPTION:
[16b0d3f]464
[1c8ce33]465The value of this configuration option defines the maximum number of POSIX
466API Timers that can be concurrently active.
[7bad894]467
[1c8ce33]468.. rubric:: NOTES:
[7bad894]469
[1c8ce33]470This object class can be configured in unlimited allocation mode, see
471:ref:`ConfigUnlimitedObjects`.
[7bad894]472
[9ba26e7]473Timers are only available if RTEMS was built with the POSIX API build
474configuration option enabled.
[7bad894]475
[1c8ce33]476.. rubric:: CONSTRAINTS:
[7bad894]477
[1c8ce33]478The following constraints apply to this configuration option:
[39ca06c]479
[9ba26e7]480* The value of the configuration option shall be greater than or equal
481to zero.
[16b0d3f]482
[9ba26e7]483* The value of the configuration option shall be less than or equal
484to 65535.
[16b0d3f]485
[1c8ce33]486* The value of the configuration option shall be less than or equal to a
[9ba26e7]487  BSP-specific and application-specific value which depends on the size
488  of the memory available to the application.
[1c8ce33]489
490* The value of the configuration option may be defined through
491  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
492  object class, if the value passed to :c:func:`rtems_resource_unlimited`
493  satisfies all other constraints of the configuration option.
494
[9ba26e7]495* The value of the configuration option shall be zero if the POSIX API
496is not
497  enabled (e.g. RTEMS was built without the ``RTEMS_POSIX_API = True``
498  build configuration option).  Otherwise a compile time error in the
499  configuration
[1c8ce33]500  file will occur.
[16b0d3f]501
[51a5138]502.. Generated from spec:/acfg/if/min-posix-thread-stack-size
503
[1c8ce33]504.. raw:: latex
505
506    \clearpage
507
[16b0d3f]508.. index:: CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
509.. index:: minimum POSIX thread stack size
510
511.. _CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE:
512
513CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
514-----------------------------------------
515
[1c8ce33]516.. rubric:: CONSTANT:
517
518``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
519
520.. rubric:: OPTION TYPE:
521
522This configuration option is an integer define.
523
524.. rubric:: DEFAULT VALUE:
[16b0d3f]525
[1c8ce33]526The default value is two times the value of
527:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
[16b0d3f]528
[1c8ce33]529.. rubric:: DESCRIPTION:
[7bad894]530
[1c8ce33]531The value of this configuration option defines the minimum stack size in
532bytes for every POSIX thread in the system.
[7bad894]533
[1c8ce33]534.. rubric:: CONSTRAINTS:
[7bad894]535
[1c8ce33]536The following constraints apply to this configuration option:
[16b0d3f]537
[1c8ce33]538* The value of the configuration option shall be small enough so that the task
539  stack space calculation carried out by ``<rtems/confdefs.h>`` does not
540  overflow an integer of type `uintptr_t
541  <https://en.cppreference.com/w/c/types/integer>`_.
[16b0d3f]542
[1c8ce33]543* The value of the configuration option shall be greater than or equal to a
544  BSP-specific and application-specific minimum value.
Note: See TracBrowser for help on using the repository browser.