Zephyr API Documentation
4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
posix_features.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2024 BayLibre SAS
3
* Copyright (c) 2024 Tenstorrent AI ULC
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
#ifndef INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_
9
#define INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_
10
11
#include <zephyr/autoconf.h>
/* CONFIG_* */
12
#include <
zephyr/sys/util_macro.h
>
/* COND_CODE_1() */
13
14
/*
15
* POSIX Application Environment Profiles (AEP - IEEE Std 1003.13-2003)
16
*/
17
18
#ifdef CONFIG_POSIX_AEP_REALTIME_MINIMAL
19
#define _POSIX_AEP_REALTIME_MINIMAL 200312L
20
#endif
21
22
#ifdef CONFIG_POSIX_AEP_REALTIME_CONTROLLER
23
#define _POSIX_AEP_REALTIME_CONTROLLER 200312L
24
#endif
25
26
#ifdef CONFIG_POSIX_AEP_REALTIME_DEDICATED
27
#define _POSIX_AEP_REALTIME_DEDICATED 200312L
28
#endif
29
30
/*
31
* POSIX System Interfaces
32
*/
33
34
#define _POSIX_VERSION 200809L
35
36
#define _POSIX_CHOWN_RESTRICTED (0)
37
#define _POSIX_NO_TRUNC (0)
38
#define _POSIX_VDISABLE ('\0')
39
40
/* #define _POSIX_ADVISORY_INFO (-1L) */
41
42
#ifdef CONFIG_POSIX_ASYNCHRONOUS_IO
43
#define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION
44
#endif
45
46
#ifdef CONFIG_POSIX_BARRIERS
47
#define _POSIX_BARRIERS _POSIX_VERSION
48
#endif
49
50
#ifdef CONFIG_POSIX_CLOCK_SELECTION
51
#define _POSIX_CLOCK_SELECTION _POSIX_VERSION
52
#endif
53
54
#ifdef CONFIG_POSIX_CPUTIME
55
#define _POSIX_CPUTIME _POSIX_VERSION
56
#endif
57
58
#ifdef CONFIG_POSIX_FSYNC
59
#define _POSIX_FSYNC _POSIX_VERSION
60
#endif
61
62
#ifdef CONFIG_NET_IPV6
63
#define _POSIX_IPV6 _POSIX_VERSION
64
#endif
65
66
/* #define _POSIX_JOB_CONTROL (-1L) */
67
68
#ifdef CONFIG_POSIX_MAPPED_FILES
69
#define _POSIX_MAPPED_FILES _POSIX_VERSION
70
#endif
71
72
#ifdef CONFIG_POSIX_MEMLOCK
73
#define _POSIX_MEMLOCK _POSIX_VERSION
74
#endif
75
76
#ifdef CONFIG_POSIX_MEMLOCK_RANGE
77
#define _POSIX_MEMLOCK_RANGE _POSIX_VERSION
78
#endif
79
80
#ifdef CONFIG_POSIX_MEMORY_PROTECTION
81
#define _POSIX_MEMORY_PROTECTION _POSIX_VERSION
82
#endif
83
84
#ifdef CONFIG_POSIX_MESSAGE_PASSING
85
#define _POSIX_MESSAGE_PASSING _POSIX_VERSION
86
#endif
87
88
#ifdef CONFIG_POSIX_MONOTONIC_CLOCK
89
#define _POSIX_MONOTONIC_CLOCK _POSIX_VERSION
90
#endif
91
92
/* #define _POSIX_PRIORITIZED_IO (-1L) */
93
94
#ifdef CONFIG_POSIX_PRIORITY_SCHEDULING
95
#define _POSIX_PRIORITY_SCHEDULING _POSIX_VERSION
96
#endif
97
98
#ifdef CONFIG_NET_SOCKETS_PACKET
99
#define _POSIX_RAW_SOCKETS _POSIX_VERSION
100
#endif
101
102
#ifdef CONFIG_POSIX_READER_WRITER_LOCKS
103
#define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION
104
#endif
105
106
/* #define _POSIX_REALTIME_SIGNALS (-1L) */
107
/* #define _POSIX_REGEXP (-1L) */
108
/* #define _POSIX_SAVED_IDS (-1L) */
109
110
#ifdef CONFIG_POSIX_SEMAPHORES
111
#define _POSIX_SEMAPHORES _POSIX_VERSION
112
#endif
113
114
#ifdef CONFIG_POSIX_SHARED_MEMORY_OBJECTS
115
#define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION
116
#endif
117
118
/* #define _POSIX_SHELL (-1L) */
119
/* #define _POSIX_SPAWN (-1L) */
120
121
#ifdef CONFIG_POSIX_SPIN_LOCKS
122
#define _POSIX_SPIN_LOCKS _POSIX_VERSION
123
#endif
124
125
/* #define _POSIX_SPORADIC_SERVER (-1L) */
126
127
#ifdef CONFIG_POSIX_SYNCHRONIZED_IO
128
#define _POSIX_SYNCHRONIZED_IO _POSIX_VERSION
129
#endif
130
131
#ifdef CONFIG_POSIX_THREAD_ATTR_STACKADDR
132
#define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION
133
#endif
134
135
#ifdef CONFIG_POSIX_THREAD_ATTR_STACKSIZE
136
#define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION
137
#endif
138
139
#ifdef CONFIG_POSIX_THREAD_CPUTIME
140
#define _POSIX_THREAD_CPUTIME _POSIX_VERSION
141
#endif
142
143
#ifdef CONFIG_POSIX_THREAD_PRIO_INHERIT
144
#define _POSIX_THREAD_PRIO_INHERIT _POSIX_VERSION
145
#endif
146
147
#ifdef CONFIG_POSIX_THREAD_PRIO_PROTECT
148
#define _POSIX_THREAD_PRIO_PROTECT _POSIX_VERSION
149
#endif
150
151
#ifdef CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING
152
#define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION
153
#endif
154
155
/* #define _POSIX_THREAD_PROCESS_SHARED (-1L) */
156
/* #define _POSIX_THREAD_ROBUST_PRIO_INHERIT (-1L) */
157
/* #define _POSIX_THREAD_ROBUST_PRIO_PROTECT (-1L) */
158
159
#ifdef CONFIG_POSIX_THREAD_SAFE_FUNCTIONS
160
#define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION
161
#endif
162
163
/* #define _POSIX_THREAD_SPORADIC_SERVER (-1L) */
164
165
#ifdef CONFIG_POSIX_THREADS
166
#ifndef _POSIX_THREADS
167
#define _POSIX_THREADS _POSIX_VERSION
168
#endif
169
#endif
170
171
#ifdef CONFIG_POSIX_TIMEOUTS
172
#define _POSIX_TIMEOUTS _POSIX_VERSION
173
#endif
174
175
#ifdef CONFIG_POSIX_TIMERS
176
#define _POSIX_TIMERS _POSIX_VERSION
177
#endif
178
179
/* #define _POSIX_TRACE (-1L) */
180
/* #define _POSIX_TRACE_EVENT_FILTER (-1L) */
181
/* #define _POSIX_TRACE_INHERIT (-1L) */
182
/* #define _POSIX_TRACE_LOG (-1L) */
183
/* #define _POSIX_TYPED_MEMORY_OBJECTS (-1L) */
184
185
/*
186
* POSIX v6 Options
187
*/
188
/* #define _POSIX_V6_ILP32_OFF32 (-1L) */
189
/* #define _POSIX_V6_ILP32_OFFBIG (-1L) */
190
/* #define _POSIX_V6_LP64_OFF64 (-1L) */
191
/* #define _POSIX_V6_LPBIG_OFFBIG (-1L) */
192
193
/*
194
* POSIX v7 Options
195
*/
196
/* #define _POSIX_V7_ILP32_OFF32 (-1L) */
197
/* #define _POSIX_V7_ILP32_OFFBIG (-1L) */
198
/* #define _POSIX_V7_LP64_OFF64 (-1L) */
199
/* #define _POSIX_V7_LPBIG_OFFBIG (-1L) */
200
201
/*
202
* POSIX2 Options
203
*/
204
#define _POSIX2_VERSION _POSIX_VERSION
205
#define _POSIX2_C_BIND _POSIX2_VERSION
206
#define _POSIX2_C_DEV _POSIX2_VERSION
207
/* #define _POSIX2_CHAR_TERM (-1L) */
208
/* #define _POSIX2_FORT_DEV (-1L) */
209
/* #define _POSIX2_FORT_RUN (-1L) */
210
/* #define _POSIX2_LOCALEDEF (-1L) */
211
/* #define _POSIX2_PBS (-1L) */
212
/* #define _POSIX2_PBS_ACCOUNTING (-1L) */
213
/* #define _POSIX2_PBS_CHECKPOINT (-1L) */
214
/* #define _POSIX2_PBS_LOCATE (-1L) */
215
/* #define _POSIX2_PBS_MESSAGE (-1L) */
216
/* #define _POSIX2_PBS_TRACK (-1L) */
217
/* #define _POSIX2_SW_DEV (-1L) */
218
/* #define _POSIX2_UPE (-1L) */
219
220
/*
221
* X/Open System Interfaces
222
*/
223
#define _XOPEN_VERSION 700
224
/* #define _XOPEN_CRYPT (-1L) */
225
/* #define _XOPEN_ENH_I18N (-1L) */
226
/* #define _XOPEN_REALTIME (-1L) */
227
/* #define _XOPEN_REALTIME_THREADS (-1L) */
228
/* #define _XOPEN_SHM (-1L) */
229
230
#ifdef CONFIG_XOPEN_STREAMS
231
#define _XOPEN_STREAMS _XOPEN_VERSION
232
#endif
233
234
/* #define _XOPEN_UNIX (-1L) */
235
/* #define _XOPEN_UUCP (-1L) */
236
237
/* Maximum values */
238
#define _POSIX_CLOCKRES_MIN (20000000L)
239
240
/* Minimum values */
241
#define _POSIX_AIO_LISTIO_MAX (2)
242
#define _POSIX_AIO_MAX (1)
243
#define _POSIX_ARG_MAX (4096)
244
#define _POSIX_CHILD_MAX (25)
245
#define _POSIX_DELAYTIMER_MAX \
246
COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_DELAYTIMER_MAX), (0))
247
#define _POSIX_HOST_NAME_MAX \
248
COND_CODE_1(CONFIG_POSIX_NETWORKING, (CONFIG_POSIX_HOST_NAME_MAX), (0))
249
#define _POSIX_LINK_MAX (8)
250
#define _POSIX_LOGIN_NAME_MAX (9)
251
#define _POSIX_MAX_CANON (255)
252
#define _POSIX_MAX_INPUT (255)
253
#define _POSIX_MQ_OPEN_MAX \
254
COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (CONFIG_POSIX_MQ_OPEN_MAX), (0))
255
#define _POSIX_MQ_PRIO_MAX (32)
256
#define _POSIX_NAME_MAX (14)
257
#define _POSIX_NGROUPS_MAX (8)
258
#define _POSIX_OPEN_MAX CONFIG_POSIX_OPEN_MAX
259
#define _POSIX_PATH_MAX (256)
260
#define _POSIX_PIPE_BUF (512)
261
#define _POSIX_RE_DUP_MAX (255)
262
#define _POSIX_RTSIG_MAX \
263
COND_CODE_1(CONFIG_POSIX_REALTIME_SIGNALS, (CONFIG_POSIX_RTSIG_MAX), (0))
264
#define _POSIX_SEM_NSEMS_MAX \
265
COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_NSEMS_MAX), (0))
266
#define _POSIX_SEM_VALUE_MAX \
267
COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_VALUE_MAX), (0))
268
#define _POSIX_SIGQUEUE_MAX (32)
269
#define _POSIX_SSIZE_MAX (32767)
270
#define _POSIX_SS_REPL_MAX (4)
271
#define _POSIX_STREAM_MAX (8)
272
#define _POSIX_SYMLINK_MAX (255)
273
#define _POSIX_SYMLOOP_MAX (8)
274
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS (4)
275
#define _POSIX_THREAD_KEYS_MAX \
276
COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_KEYS_MAX), (0))
277
#define _POSIX_THREAD_THREADS_MAX \
278
COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_THREADS_MAX), (0))
279
#define _POSIX_TIMER_MAX \
280
COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_TIMER_MAX), (0))
281
#define _POSIX_TRACE_EVENT_NAME_MAX (30)
282
#define _POSIX_TRACE_NAME_MAX (8)
283
#define _POSIX_TRACE_SYS_MAX (8)
284
#define _POSIX_TRACE_USER_EVENT_MAX (32)
285
#define _POSIX_TTY_NAME_MAX (9)
286
#define _POSIX_TZNAME_MAX (6)
287
#define _POSIX2_BC_BASE_MAX (99)
288
#define _POSIX2_BC_DIM_MAX (2048)
289
#define _POSIX2_BC_SCALE_MAX (99)
290
#define _POSIX2_BC_STRING_MAX (1000)
291
#define _POSIX2_CHARCLASS_NAME_MAX (14)
292
#define _POSIX2_COLL_WEIGHTS_MAX (2)
293
#define _POSIX2_EXPR_NEST_MAX (32)
294
#define _POSIX2_LINE_MAX (2048)
295
#define _XOPEN_IOV_MAX (16)
296
#define _XOPEN_NAME_MAX (255)
297
#define _XOPEN_PATH_MAX (1024)
298
299
/* Other invariant values */
300
#define NL_LANGMAX (14)
301
#define NL_MSGMAX (32767)
302
#define NL_SETMAX (255)
303
#define NL_TEXTMAX (_POSIX2_LINE_MAX)
304
#define NZERO (20)
305
306
/* Runtime invariant values */
307
#define AIO_LISTIO_MAX _POSIX_AIO_LISTIO_MAX
308
#define AIO_MAX _POSIX_AIO_MAX
309
#define AIO_PRIO_DELTA_MAX (0)
310
#define DELAYTIMER_MAX _POSIX_DELAYTIMER_MAX
311
#define HOST_NAME_MAX _POSIX_HOST_NAME_MAX
312
#define LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX
313
#define MQ_OPEN_MAX _POSIX_MQ_OPEN_MAX
314
#define MQ_PRIO_MAX _POSIX_MQ_PRIO_MAX
315
316
#ifndef ATEXIT_MAX
317
#define ATEXIT_MAX 8
318
#endif
319
320
#define PAGE_SIZE CONFIG_POSIX_PAGE_SIZE
321
#define PAGESIZE PAGE_SIZE
322
323
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
324
#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX
325
#define PTHREAD_THREADS_MAX _POSIX_THREAD_THREADS_MAX
326
#define RTSIG_MAX _POSIX_RTSIG_MAX
327
#define SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX
328
#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX
329
#define SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX
330
#define STREAM_MAX _POSIX_STREAM_MAX
331
#define SYMLOOP_MAX _POSIX_SYMLOOP_MAX
332
#define TIMER_MAX _POSIX_TIMER_MAX
333
#define TTY_NAME_MAX _POSIX_TTY_NAME_MAX
334
#ifndef TZNAME_MAX
335
#define TZNAME_MAX _POSIX_TZNAME_MAX
336
#endif
337
338
/* Pathname variable values */
339
#define FILESIZEBITS (32)
340
#define POSIX_ALLOC_SIZE_MIN (256)
341
#define POSIX_REC_INCR_XFER_SIZE (1024)
342
#define POSIX_REC_MAX_XFER_SIZE (32767)
343
#define POSIX_REC_MIN_XFER_SIZE (1)
344
#define POSIX_REC_XFER_ALIGN (4)
345
#define SYMLINK_MAX _POSIX_SYMLINK_MAX
346
347
#endif
/* INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_ */
util_macro.h
Macro utilities.
zephyr
posix
posix_features.h
Generated on Sat Nov 16 2024 04:55:04 for Zephyr API Documentation by
1.12.0