source: rtems-docs/c-user/config/posix-api.rst @ 1af97ad

5
Last change on this file since 1af97ad was 16b0d3f, checked in by Sebastian Huber <sebastian.huber@…>, on 03/09/20 at 07:48:01

c-user: Move "POSIX API Configuration"

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
8The parameters in this section are used to configure resources for the POSIX
9API supported by RTEMS.  Most POSIX API objects are available by default since
10RTEMS 5.1.  The queued signals and timers are only available if RTEMS was built
11with the ``--enable-posix`` build 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_TIMERS
159
160.. _CONFIGURE_MAXIMUM_POSIX_TIMERS:
161
162CONFIGURE_MAXIMUM_POSIX_TIMERS
163------------------------------
164
165CONSTANT:
166    ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
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_TIMERS`` is the maximum number of POSIX API
179    Timers that can be concurrently active.
180
181NOTES:
182    This object class can be configured in unlimited allocation mode.
183
184    Timers are only available if RTEMS was built with the
185    ``--enable-posix`` build configuration option.
186
187.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
188
189.. _CONFIGURE_MAXIMUM_POSIX_THREADS:
190
191CONFIGURE_MAXIMUM_POSIX_THREADS
192-------------------------------
193
194CONSTANT:
195    ``CONFIGURE_MAXIMUM_POSIX_THREADS``
196
197DATA TYPE:
198    Unsigned integer (``uint32_t``).
199
200RANGE:
201    Zero or positive.
202
203DEFAULT VALUE:
204    The default value is 0.
205
206DESCRIPTION:
207    ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
208    Threads that can be concurrently active.
209
210NOTES:
211    This object class can be configured in unlimited allocation mode.
212
213    This calculations for the required memory in the RTEMS Workspace for
214    threads assume that each thread has a minimum stack size and has floating
215    point support enabled.  The configuration parameter
216    ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
217    requirements *ABOVE* the minimum size required.  See :ref:`Reserve
218    Task/Thread Stack Memory Above Minimum` for more information about
219    ``CONFIGURE_EXTRA_TASK_STACKS``.
220
221    The maximum number of Classic API Tasks is specified by
222    :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
223
224    All POSIX threads have floating point enabled.
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.