source: rtems-docs/c-user/config/posix-api.rst @ 79fb6fd

5
Last change on this file since 79fb6fd was 79fb6fd, checked in by Sebastian Huber <sebastian.huber@…>, on 03/17/20 at 08:10:15

c-user: Canonicalize configuration option groups

Update #3836.

  • Property mode set to 100644
File size: 6.4 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
4
5POSIX API Configuration
6=======================
7
8This section describes configuration options related to the POSIX API.  Most
9POSIX API objects are available by default since RTEMS 5.1.  The queued signals
10and timers are only available if RTEMS was built with the ``--enable-posix``
11build configuration option.
12
13.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
14
15.. _CONFIGURE_MAXIMUM_POSIX_KEYS:
16
17CONFIGURE_MAXIMUM_POSIX_KEYS
18----------------------------
19
20CONSTANT:
21    ``CONFIGURE_MAXIMUM_POSIX_KEYS``
22
23DATA TYPE:
24    Unsigned integer (``uint32_t``).
25
26RANGE:
27    Zero or positive.
28
29DEFAULT VALUE:
30    The default value is 0.
31
32DESCRIPTION:
33    ``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
34    that can be concurrently active.
35
36NOTES:
37    This object class can be configured in unlimited allocation mode.
38
39.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
40
41.. _CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS:
42
43CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
44---------------------------------------
45
46CONSTANT:
47    ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
48
49DATA TYPE:
50    Unsigned integer (``uint32_t``).
51
52RANGE:
53    Zero or positive.
54
55DEFAULT VALUE:
56    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
61DESCRIPTION:
62    ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
63    value pairs used by POSIX API Keys that can be concurrently active.
64
65NOTES:
66    This object class can be configured in unlimited allocation mode.
67
68    A key value pair is created by :c:func:`pthread_setspecific` if the value
69    is not :c:macro:`NULL`, otherwise it is deleted.
70
71.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
72
73.. _CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES:
74
75CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
76--------------------------------------
77
78CONSTANT:
79    ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
80
81DATA TYPE:
82    Unsigned integer (``uint32_t``).
83
84RANGE:
85    Zero or positive.
86
87DEFAULT VALUE:
88    The default value is 0.
89
90DESCRIPTION:
91    ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
92    API Message Queues that can be concurrently active.
93
94NOTES:
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`.
98
99.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
100
101.. _CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS:
102
103CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
104--------------------------------------
105
106CONSTANT:
107    ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
108
109DATA TYPE:
110    Unsigned integer (``uint32_t``).
111
112RANGE:
113    Zero or positive.
114
115DEFAULT VALUE:
116    The default value is 0.
117
118DESCRIPTION:
119    ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
120    API Queued Signals that can be concurrently active.
121
122NOTES:
123    Unlimited objects are not available for queued signals.
124
125    Queued signals are only available if RTEMS was built with the
126    ``--enable-posix`` build configuration option.
127
128.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
129
130.. _CONFIGURE_MAXIMUM_POSIX_SEMAPHORES:
131
132CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
133----------------------------------
134
135CONSTANT:
136    ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
137
138DATA TYPE:
139    Unsigned integer (``uint32_t``).
140
141RANGE:
142    Zero or positive.
143
144DEFAULT VALUE:
145    The default value is 0.
146
147DESCRIPTION:
148    ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
149    Named Semaphores that can be concurrently active.
150
151NOTES:
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.
157
158.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
159
160.. _CONFIGURE_MAXIMUM_POSIX_THREADS:
161
162CONFIGURE_MAXIMUM_POSIX_THREADS
163-------------------------------
164
165CONSTANT:
166    ``CONFIGURE_MAXIMUM_POSIX_THREADS``
167
168DATA TYPE:
169    Unsigned integer (``uint32_t``).
170
171RANGE:
172    Zero or positive.
173
174DEFAULT VALUE:
175    The default value is 0.
176
177DESCRIPTION:
178    ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
179    Threads that can be concurrently active.
180
181NOTES:
182    This object class can be configured in unlimited allocation mode.
183
184    This calculations for the required memory in the RTEMS Workspace for
185    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
189    Task/Thread Stack Memory Above Minimum` for more information about
190    ``CONFIGURE_EXTRA_TASK_STACKS``.
191
192    The maximum number of Classic API Tasks is specified by
193    :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
194
195    All POSIX threads have floating point enabled.
196
197.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
198
199.. _CONFIGURE_MAXIMUM_POSIX_TIMERS:
200
201CONFIGURE_MAXIMUM_POSIX_TIMERS
202------------------------------
203
204CONSTANT:
205    ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
206
207DATA TYPE:
208    Unsigned integer (``uint32_t``).
209
210RANGE:
211    Zero or positive.
212
213DEFAULT VALUE:
214    The default value is 0.
215
216DESCRIPTION:
217    ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
218    Timers that can be concurrently active.
219
220NOTES:
221    This object class can be configured in unlimited allocation mode.
222
223    Timers are only available if RTEMS was built with the
224    ``--enable-posix`` build configuration option.
225
226.. index:: CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
227.. index:: minimum POSIX thread stack size
228
229.. _CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE:
230
231CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
232-----------------------------------------
233
234CONSTANT:
235    ``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
236
237DATA TYPE:
238    Unsigned integer (``size_t``).
239
240RANGE:
241    Positive.
242
243DEFAULT VALUE:
244    The default value is two times the value of
245    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
246
247DESCRIPTION:
248    This configuration parameter defines the minimum stack size in bytes for
249    every POSIX thread in the system.
250
251NOTES:
252    None.
Note: See TracBrowser for help on using the repository browser.