Zephyr Project API 4.4.99
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 ZEPHYR_INCLUDE_POSIX_POSIX_FEATURES_H_
9#define ZEPHYR_INCLUDE_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 * Subprofiling Considerations
32 */
33#define _POSIX_SUBPROFILE 1
34
35/*
36 * POSIX System Interfaces
37 */
38
39#define _POSIX_VERSION 200809L
40
41#define _POSIX_CHOWN_RESTRICTED (0)
42#define _POSIX_NO_TRUNC (0)
43#define _POSIX_VDISABLE ('\0')
44
45/* _POSIX_ADVISORY_INFO: not supported */
46
47#ifdef CONFIG_POSIX_ASYNCHRONOUS_IO
48#define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION
49#endif
50
51#ifdef CONFIG_POSIX_BARRIERS
52#define _POSIX_BARRIERS _POSIX_VERSION
53#endif
54
55#ifdef CONFIG_POSIX_FSYNC
56#define _POSIX_FSYNC _POSIX_VERSION
57#endif
58
59#ifdef CONFIG_NET_IPV6
60#define _POSIX_IPV6 _POSIX_VERSION
61#endif
62
63/* _POSIX_JOB_CONTROL: not supported */
64
65#ifdef CONFIG_POSIX_MAPPED_FILES
66#define _POSIX_MAPPED_FILES _POSIX_VERSION
67#endif
68
69#ifdef CONFIG_POSIX_MEMLOCK
70#define _POSIX_MEMLOCK _POSIX_VERSION
71#endif
72
73#ifdef CONFIG_POSIX_MEMLOCK_RANGE
74#define _POSIX_MEMLOCK_RANGE _POSIX_VERSION
75#endif
76
77#ifdef CONFIG_POSIX_MEMORY_PROTECTION
78#define _POSIX_MEMORY_PROTECTION _POSIX_VERSION
79#endif
80
81#ifdef CONFIG_POSIX_MESSAGE_PASSING
82#define _POSIX_MESSAGE_PASSING _POSIX_VERSION
83#endif
84
85/* _POSIX_PRIORITIZED_IO: not supported */
86
87#ifdef CONFIG_POSIX_PRIORITY_SCHEDULING
88#define _POSIX_PRIORITY_SCHEDULING _POSIX_VERSION
89#endif
90
91#ifdef CONFIG_NET_SOCKETS_PACKET
92#define _POSIX_RAW_SOCKETS _POSIX_VERSION
93#endif
94
95#ifdef CONFIG_POSIX_RW_LOCKS
96#define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION
97#endif
98
99/* _POSIX_REGEXP: not supported */
100/* _POSIX_SAVED_IDS: not supported */
101
102#ifdef CONFIG_POSIX_SEMAPHORES
103#define _POSIX_SEMAPHORES _POSIX_VERSION
104#endif
105
106#ifdef CONFIG_POSIX_SHARED_MEMORY_OBJECTS
107#define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION
108#endif
109
110/* _POSIX_SHELL: not supported */
111/* _POSIX_SPAWN: not supported */
112
113#ifdef CONFIG_POSIX_SPIN_LOCKS
114#define _POSIX_SPIN_LOCKS _POSIX_VERSION
115#endif
116
117/* _POSIX_SPORADIC_SERVER: not supported */
118
119#ifdef CONFIG_POSIX_SYNCHRONIZED_IO
120#define _POSIX_SYNCHRONIZED_IO _POSIX_VERSION
121#endif
122
123#ifdef CONFIG_POSIX_THREAD_ATTR_STACKADDR
124#define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION
125#endif
126
127#ifdef CONFIG_POSIX_THREAD_ATTR_STACKSIZE
128#define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION
129#endif
130
131#ifdef CONFIG_POSIX_THREAD_CPUTIME
132#define _POSIX_THREAD_CPUTIME _POSIX_VERSION
133#endif
134
135#ifdef CONFIG_POSIX_THREAD_PRIO_INHERIT
136#define _POSIX_THREAD_PRIO_INHERIT _POSIX_VERSION
137#endif
138
139#ifdef CONFIG_POSIX_THREAD_PRIO_PROTECT
140#define _POSIX_THREAD_PRIO_PROTECT _POSIX_VERSION
141#endif
142
143#ifdef CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING
144#define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION
145#endif
146
147/* _POSIX_THREAD_PROCESS_SHARED: not supported */
148/* _POSIX_THREAD_ROBUST_PRIO_INHERIT: not supported */
149/* _POSIX_THREAD_ROBUST_PRIO_PROTECT: not supported */
150
151/* _POSIX_THREAD_SPORADIC_SERVER: not supported */
152
153#ifdef CONFIG_POSIX_THREADS
154#ifndef _POSIX_THREADS
155#define _POSIX_THREADS _POSIX_VERSION
156#endif
157#endif
158
159#ifdef CONFIG_POSIX_TIMEOUTS
160#define _POSIX_TIMEOUTS _POSIX_VERSION
161#endif
162
163/* _POSIX_TRACE: not supported */
164/* _POSIX_TRACE_EVENT_FILTER: not supported */
165/* _POSIX_TRACE_INHERIT: not supported */
166/* _POSIX_TRACE_LOG: not supported */
167/* _POSIX_TYPED_MEMORY_OBJECTS: not supported */
168
169/*
170 * POSIX v6 Options
171 */
172/* _POSIX_V6_ILP32_OFF32: not supported */
173/* _POSIX_V6_ILP32_OFFBIG: not supported */
174/* _POSIX_V6_LP64_OFF64: not supported */
175/* _POSIX_V6_LPBIG_OFFBIG: not supported */
176
177/*
178 * POSIX v7 Options
179 */
180/* _POSIX_V7_ILP32_OFF32: not supported */
181/* _POSIX_V7_ILP32_OFFBIG: not supported */
182/* _POSIX_V7_LP64_OFF64: not supported */
183/* _POSIX_V7_LPBIG_OFFBIG: not supported */
184
185/*
186 * POSIX2 Options
187 */
188/* _POSIX2_VERSION: not supported */
189#define _POSIX2_C_BIND _POSIX_VERSION
190/* _POSIX2_C_DEV: not supported */
191/* _POSIX2_CHAR_TERM: not supported */
192/* _POSIX2_FORT_DEV: not supported */
193/* _POSIX2_FORT_RUN: not supported */
194/* _POSIX2_LOCALEDEF: not supported */
195/* _POSIX2_PBS: not supported */
196/* _POSIX2_PBS_ACCOUNTING: not supported */
197/* _POSIX2_PBS_CHECKPOINT: not supported */
198/* _POSIX2_PBS_LOCATE: not supported */
199/* _POSIX2_PBS_MESSAGE: not supported */
200/* _POSIX2_PBS_TRACK: not supported */
201/* _POSIX2_SW_DEV: not supported */
202/* _POSIX2_UPE: not supported */
203
204/*
205 * X/Open System Interfaces
206 */
207#define _XOPEN_VERSION 700
208/* _XOPEN_CRYPT: not supported */
209/* _XOPEN_ENH_I18N: not supported */
210#if defined(CONFIG_XSI_REALTIME) || \
211 (defined(CONFIG_POSIX_FSYNC) && defined(CONFIG_POSIX_MEMLOCK) && \
212 defined(CONFIG_POSIX_MEMLOCK_RANGE) && defined(CONFIG_POSIX_MESSAGE_PASSING) && \
213 defined(CONFIG_POSIX_PRIORITY_SCHEDULING) && \
214 defined(CONFIG_POSIX_SHARED_MEMORY_OBJECTS) && defined(CONFIG_POSIX_SYNCHRONIZED_IO))
215#define _XOPEN_REALTIME _XOPEN_VERSION
216#endif
217/* _XOPEN_REALTIME_THREADS: not supported */
218/* _XOPEN_SHM: not supported */
219
220#ifdef CONFIG_XOPEN_STREAMS
221#define _XOPEN_STREAMS _XOPEN_VERSION
222#endif
223
224/* _XOPEN_UNIX: not supported */
225/* _XOPEN_UUCP: not supported */
226
227#endif /* ZEPHYR_INCLUDE_POSIX_POSIX_FEATURES_H_ */
Macro utilities.