Zephyr Project API 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sysconf.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024, Meta
3 * Copyright (c) 2024, Tenstorrent AI ULC
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7#ifndef ZEPHYR_INCLUDE_POSIX_SYS_SYSCONF_H_
8#define ZEPHYR_INCLUDE_POSIX_SYS_SYSCONF_H_
9
10#include <limits.h>
11
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18enum {
19 _SC_ADVISORY_INFO,
20 _SC_ASYNCHRONOUS_IO,
21 _SC_BARRIERS,
22 _SC_CLOCK_SELECTION,
23 _SC_CPUTIME,
24 _SC_FSYNC,
25 _SC_IPV6,
26 _SC_JOB_CONTROL,
27 _SC_MAPPED_FILES,
28 _SC_MEMLOCK,
29 _SC_MEMLOCK_RANGE,
30 _SC_MEMORY_PROTECTION,
31 _SC_MESSAGE_PASSING,
32 _SC_MONOTONIC_CLOCK,
33 _SC_PRIORITIZED_IO,
34 _SC_PRIORITY_SCHEDULING,
35 _SC_RAW_SOCKETS,
36 _SC_RE_DUP_MAX,
37 _SC_READER_WRITER_LOCKS,
38 _SC_REALTIME_SIGNALS,
39 _SC_REGEXP,
40 _SC_SAVED_IDS,
41 _SC_SEMAPHORES,
42 _SC_SHARED_MEMORY_OBJECTS,
43 _SC_SHELL,
44 _SC_SPAWN,
45 _SC_SPIN_LOCKS,
46 _SC_SPORADIC_SERVER,
47 _SC_SS_REPL_MAX,
48 _SC_SYNCHRONIZED_IO,
49 _SC_THREAD_ATTR_STACKADDR,
50 _SC_THREAD_ATTR_STACKSIZE,
51 _SC_THREAD_CPUTIME,
52 _SC_THREAD_PRIO_INHERIT,
53 _SC_THREAD_PRIO_PROTECT,
54 _SC_THREAD_PRIORITY_SCHEDULING,
55 _SC_THREAD_PROCESS_SHARED,
56 _SC_THREAD_ROBUST_PRIO_INHERIT,
57 _SC_THREAD_ROBUST_PRIO_PROTECT,
58 _SC_THREAD_SAFE_FUNCTIONS,
59 _SC_THREAD_SPORADIC_SERVER,
60 _SC_THREADS,
61 _SC_TIMEOUTS,
62 _SC_TIMERS,
63 _SC_TRACE,
64 _SC_TRACE_EVENT_FILTER,
65 _SC_TRACE_EVENT_NAME_MAX,
66 _SC_TRACE_INHERIT,
67 _SC_TRACE_LOG,
68 _SC_TRACE_NAME_MAX,
69 _SC_TRACE_SYS_MAX,
70 _SC_TRACE_USER_EVENT_MAX,
71 _SC_TYPED_MEMORY_OBJECTS,
72 _SC_VERSION,
73 _SC_V7_ILP32_OFF32,
74 _SC_V7_ILP32_OFFBIG,
75 _SC_V7_LP64_OFF64,
76 _SC_V7_LPBIG_OFFBIG,
77 _SC_V6_ILP32_OFF32,
78 _SC_V6_ILP32_OFFBIG,
79 _SC_V6_LP64_OFF64,
80 _SC_V6_LPBIG_OFFBIG,
81 _SC_BC_BASE_MAX,
82 _SC_BC_DIM_MAX,
83 _SC_BC_SCALE_MAX,
84 _SC_BC_STRING_MAX,
85 _SC_2_C_BIND,
86 _SC_2_C_DEV,
87 _SC_2_CHAR_TERM,
88 _SC_COLL_WEIGHTS_MAX,
89 _SC_DELAYTIMER_MAX,
90 _SC_EXPR_NEST_MAX,
91 _SC_2_FORT_DEV,
92 _SC_2_FORT_RUN,
93 _SC_LINE_MAX,
94 _SC_2_LOCALEDEF,
95 _SC_2_PBS,
96 _SC_2_PBS_ACCOUNTING,
97 _SC_2_PBS_CHECKPOINT,
98 _SC_2_PBS_LOCATE,
99 _SC_2_PBS_MESSAGE,
100 _SC_2_PBS_TRACK,
101 _SC_2_SW_DEV,
102 _SC_2_UPE,
103 _SC_2_VERSION,
104 _SC_XOPEN_CRYPT,
105 _SC_XOPEN_ENH_I18N,
106 _SC_XOPEN_REALTIME,
107 _SC_XOPEN_REALTIME_THREADS,
108 _SC_XOPEN_SHM,
109 _SC_XOPEN_STREAMS,
110 _SC_XOPEN_UNIX,
111 _SC_XOPEN_UUCP,
112 _SC_XOPEN_VERSION,
113 _SC_CLK_TCK,
114 _SC_GETGR_R_SIZE_MAX,
115 _SC_GETPW_R_SIZE_MAX,
116 _SC_AIO_LISTIO_MAX,
117 _SC_AIO_MAX,
118 _SC_AIO_PRIO_DELTA_MAX,
119 _SC_ARG_MAX,
120 _SC_ATEXIT_MAX,
121 _SC_CHILD_MAX,
122 _SC_HOST_NAME_MAX,
123 _SC_IOV_MAX,
124 _SC_LOGIN_NAME_MAX,
125 _SC_NGROUPS_MAX,
126 _SC_MQ_OPEN_MAX,
127 _SC_MQ_PRIO_MAX,
128 _SC_OPEN_MAX,
129 _SC_PAGE_SIZE,
130 _SC_PAGESIZE,
131 _SC_THREAD_DESTRUCTOR_ITERATIONS,
132 _SC_THREAD_KEYS_MAX,
133 _SC_THREAD_STACK_MIN,
134 _SC_THREAD_THREADS_MAX,
135 _SC_RTSIG_MAX,
136 _SC_SEM_NSEMS_MAX,
137 _SC_SEM_VALUE_MAX,
138 _SC_SIGQUEUE_MAX,
139 _SC_STREAM_MAX,
140 _SC_SYMLOOP_MAX,
141 _SC_TIMER_MAX,
142 _SC_TTY_NAME_MAX,
143 _SC_TZNAME_MAX,
144};
145
146/*
147 * clang-format and checkpatch disagree on formatting here, so rely on checkpatch and disable
148 * clang-format since checkpatch cannot be selectively disabled.
149 */
150
151/* clang-format off */
152
153#define __z_posix_sysconf_SC_ADVISORY_INFO (-1L)
154#define __z_posix_sysconf_SC_ASYNCHRONOUS_IO \
155 COND_CODE_1(CONFIG_POSIX_ASYNCHRONOUS_IO, (_POSIX_ASYNCHRONOUS_IO), (-1L))
156#define __z_posix_sysconf_SC_BARRIERS COND_CODE_1(CONFIG_POSIX_BARRIERS, (_POSIX_BARRIERS), (-1L))
157#define __z_posix_sysconf_SC_CLOCK_SELECTION \
158 COND_CODE_1(CONFIG_POSIX_CLOCK_SELECTION, (_POSIX_CLOCK_SELECTION), (-1L))
159#define __z_posix_sysconf_SC_CPUTIME \
160 COND_CODE_1(CONFIG_POSIX_CPUTIME, (_POSIX_CPUTIME), (-1L))
161#define __z_posix_sysconf_SC_FSYNC \
162 COND_CODE_1(CONFIG_POSIX_FSYNC, (_POSIX_FSYNC), (-1L))
163#define __z_posix_sysconf_SC_IPV6 COND_CODE_1(CONFIG_NET_IPV6, (_POSIX_IPV6), (-1L))
164#define __z_posix_sysconf_SC_JOB_CONTROL (-1L)
165#define __z_posix_sysconf_SC_MAPPED_FILES \
166 COND_CODE_1(CONFIG_POSIX_MAPPED_FILES, (_POSIX_MAPPED_FILES), (-1L))
167#define __z_posix_sysconf_SC_MEMLOCK \
168 COND_CODE_1(CONFIG_POSIX_MEMLOCK, (_POSIX_MEMLOCK), (-1L))
169#define __z_posix_sysconf_SC_MEMLOCK_RANGE \
170 COND_CODE_1(CONFIG_POSIX_MEMLOCK_RANGE, (_POSIX_MEMLOCK_RANGE), (-1L))
171#define __z_posix_sysconf_SC_MEMORY_PROTECTION \
172 COND_CODE_1(CONFIG_POSIX_MEMORY_PROTECTION, (_POSIX_MEMORY_PROTECTION), (-1L))
173#define __z_posix_sysconf_SC_MESSAGE_PASSING \
174 COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (_POSIX_MESSAGE_PASSING), (-1L))
175#define __z_posix_sysconf_SC_MONOTONIC_CLOCK \
176 COND_CODE_1(CONFIG_POSIX_MONOTONIC_CLOCK, (_POSIX_MONOTONIC_CLOCK), (-1L))
177#define __z_posix_sysconf_SC_PRIORITIZED_IO (-1L)
178#define __z_posix_sysconf_SC_PRIORITY_SCHEDULING \
179 COND_CODE_1(CONFIG_POSIX_PRIORITY_SCHEDULING, (_POSIX_PRIORITY_SCHEDULING), (-1L))
180#define __z_posix_sysconf_SC_RAW_SOCKETS \
181 COND_CODE_1(CONFIG_NET_SOCKETS_PACKET, (_POSIX_RAW_SOCKETS), (-1L))
182#define __z_posix_sysconf_SC_RE_DUP_MAX _POSIX_RE_DUP_MAX
183#define __z_posix_sysconf_SC_READER_WRITER_LOCKS \
184 COND_CODE_1(CONFIG_POSIX_READER_WRITER_LOCKS, (_POSIX_READER_WRITER_LOCKS), (-1L))
185#define __z_posix_sysconf_SC_REALTIME_SIGNALS (-1L)
186#define __z_posix_sysconf_SC_REGEXP (-1L)
187#define __z_posix_sysconf_SC_SAVED_IDS (-1L)
188#define __z_posix_sysconf_SC_SEMAPHORES \
189 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (_POSIX_SEMAPHORES), (-1L))
190#define __z_posix_sysconf_SC_SHARED_MEMORY_OBJECTS \
191 COND_CODE_1(CONFIG_POSIX_SHARED_MEMORY_OBJECTS, (_POSIX_SHARED_MEMORY_OBJECTS), (-1L))
192#define __z_posix_sysconf_SC_SHELL (-1L)
193#define __z_posix_sysconf_SC_SPAWN (-1L)
194#define __z_posix_sysconf_SC_SPIN_LOCKS \
195 COND_CODE_1(CONFIG_POSIX_SPIN_LOCKS, (_POSIX_SPIN_LOCKS), (-1L))
196#define __z_posix_sysconf_SC_SPORADIC_SERVER (-1L)
197#define __z_posix_sysconf_SC_SS_REPL_MAX _POSIX_SS_REPL_MAX
198#define __z_posix_sysconf_SC_SYNCHRONIZED_IO (-1L)
199#define __z_posix_sysconf_SC_THREAD_ATTR_STACKADDR \
200 COND_CODE_1(CONFIG_POSIX_THREAD_ATTR_STACKADDR, (_POSIX_THREAD_ATTR_STACKADDR), (-1))
201#define __z_posix_sysconf_SC_THREAD_ATTR_STACKSIZE \
202 COND_CODE_1(CONFIG_POSIX_THREAD_ATTR_STACKSIZE, (_POSIX_THREAD_ATTR_STACKSIZE), (-1L))
203#define __z_posix_sysconf_SC_THREAD_CPUTIME (-1L)
204#define __z_posix_sysconf_SC_THREAD_PRIO_INHERIT \
205 COND_CODE_1(CONFIG_POSIX_THREAD_PRIO_INHERIT, (_POSIX_THREAD_PRIO_INHERIT), (-1L))
206#define __z_posix_sysconf_SC_THREAD_PRIO_PROTECT (-1L)
207#define __z_posix_sysconf_SC_THREAD_PRIORITY_SCHEDULING \
208 COND_CODE_1(CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING, (_POSIX_THREAD_PRIORITY_SCHEDULING), \
209 (-1L))
210#define __z_posix_sysconf_SC_THREAD_PROCESS_SHARED (-1L)
211#define __z_posix_sysconf_SC_THREAD_ROBUST_PRIO_INHERIT (-1L)
212#define __z_posix_sysconf_SC_THREAD_ROBUST_PRIO_PROTECT (-1L)
213#define __z_posix_sysconf_SC_THREAD_SAFE_FUNCTIONS \
214 COND_CODE_1(CONFIG_POSIX_THREAD_SAFE_FUNCTIONS, (_POSIX_THREAD_SAFE_FUNCTIONS), (-1L))
215#define __z_posix_sysconf_SC_THREAD_SPORADIC_SERVER (-1L)
216#define __z_posix_sysconf_SC_THREADS \
217 COND_CODE_1(CONFIG_POSIX_THREADS, (_POSIX_THREADS), (-1L))
218#define __z_posix_sysconf_SC_TIMEOUTS \
219 COND_CODE_1(CONFIG_POSIX_TIMEOUTS, (_POSIX_TIMEOUTS), (-1L))
220#define __z_posix_sysconf_SC_TIMERS \
221 COND_CODE_1(CONFIG_POSIX_TIMEOUTS, (_POSIX_TIMERS), (-1))
222#define __z_posix_sysconf_SC_TRACE (-1L)
223#define __z_posix_sysconf_SC_TRACE_EVENT_FILTER (-1L)
224#define __z_posix_sysconf_SC_TRACE_EVENT_NAME_MAX _POSIX_TRACE_NAME_MAX
225#define __z_posix_sysconf_SC_TRACE_INHERIT (-1L)
226#define __z_posix_sysconf_SC_TRACE_LOG (-1L)
227#define __z_posix_sysconf_SC_TRACE_NAME_MAX _POSIX_TRACE_NAME_MAX
228#define __z_posix_sysconf_SC_TRACE_SYS_MAX _POSIX_TRACE_SYS_MAX
229#define __z_posix_sysconf_SC_TRACE_USER_EVENT_MAX _POSIX_TRACE_USER_EVENT_MAX
230#define __z_posix_sysconf_SC_TYPED_MEMORY_OBJECTS (-1L)
231#define __z_posix_sysconf_SC_VERSION _POSIX_VERSION
232#define __z_posix_sysconf_SC_V6_ILP32_OFF32 (-1L)
233#define __z_posix_sysconf_SC_V6_ILP32_OFFBIG (-1L)
234#define __z_posix_sysconf_SC_V6_LP64_OFF64 (-1L)
235#define __z_posix_sysconf_SC_V6_LPBIG_OFFBIG (-1L)
236#define __z_posix_sysconf_SC_V7_ILP32_OFF32 (-1L)
237#define __z_posix_sysconf_SC_V7_ILP32_OFFBIG (-1L)
238#define __z_posix_sysconf_SC_V7_LP64_OFF64 (-1L)
239#define __z_posix_sysconf_SC_V7_LPBIG_OFFBIG (-1L)
240#define __z_posix_sysconf_SC_BC_BASE_MAX _POSIX2_BC_BASE_MAX
241#define __z_posix_sysconf_SC_BC_DIM_MAX _POSIX2_BC_DIM_MAX
242#define __z_posix_sysconf_SC_BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
243#define __z_posix_sysconf_SC_BC_STRING_MAX _POSIX2_BC_STRING_MAX
244#define __z_posix_sysconf_SC_2_C_BIND _POSIX2_C_BIND
245#define __z_posix_sysconf_SC_2_C_DEV \
246 COND_CODE_1(_POSIX2_C_DEV > 0, (_POSIX2_C_DEV), (-1))
247#define __z_posix_sysconf_SC_2_CHAR_TERM (-1L)
248#define __z_posix_sysconf_SC_COLL_WEIGHTS_MAX _POSIX2_COLL_WEIGHTS_MAX
249#define __z_posix_sysconf_SC_DELAYTIMER_MAX \
250 COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_DELAYTIMER_MAX), (0))
251#define __z_posix_sysconf_SC_EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
252#define __z_posix_sysconf_SC_2_FORT_DEV (-1L)
253#define __z_posix_sysconf_SC_2_FORT_RUN (-1L)
254#define __z_posix_sysconf_SC_LINE_MAX (-1L)
255#define __z_posix_sysconf_SC_2_LOCALEDEF (-1L)
256#define __z_posix_sysconf_SC_2_PBS (-1L)
257#define __z_posix_sysconf_SC_2_PBS_ACCOUNTING (-1L)
258#define __z_posix_sysconf_SC_2_PBS_CHECKPOINT (-1L)
259#define __z_posix_sysconf_SC_2_PBS_LOCATE (-1L)
260#define __z_posix_sysconf_SC_2_PBS_MESSAGE (-1L)
261#define __z_posix_sysconf_SC_2_PBS_TRACK (-1L)
262#define __z_posix_sysconf_SC_2_SW_DEV (-1L)
263#define __z_posix_sysconf_SC_2_UPE (-1L)
264#define __z_posix_sysconf_SC_2_VERSION \
265 COND_CODE_1(_POSIX2_VERSION > 0, (_POSIX2_VERSION), (-1))
266#define __z_posix_sysconf_SC_XOPEN_CRYPT (-1L)
267#define __z_posix_sysconf_SC_XOPEN_ENH_I18N (-1L)
268#define __z_posix_sysconf_SC_XOPEN_REALTIME (-1L)
269#define __z_posix_sysconf_SC_XOPEN_REALTIME_THREADS (-1L)
270#define __z_posix_sysconf_SC_XOPEN_SHM (-1L)
271#define __z_posix_sysconf_SC_XOPEN_STREAMS \
272 COND_CODE_1(CONFIG_XOPEN_STREAMS, (_XOPEN_STREAMS), (-1))
273#define __z_posix_sysconf_SC_XOPEN_UNIX (-1L)
274#define __z_posix_sysconf_SC_XOPEN_UUCP (-1L)
275#define __z_posix_sysconf_SC_XOPEN_VERSION _XOPEN_VERSION
276#define __z_posix_sysconf_SC_CLK_TCK (100L)
277#define __z_posix_sysconf_SC_GETGR_R_SIZE_MAX (0L)
278#define __z_posix_sysconf_SC_GETPW_R_SIZE_MAX (0L)
279#define __z_posix_sysconf_SC_AIO_LISTIO_MAX _POSIX_AIO_LISTIO_MAX
280#define __z_posix_sysconf_SC_AIO_MAX _POSIX_AIO_MAX
281#define __z_posix_sysconf_SC_AIO_PRIO_DELTA_MAX 0
282#define __z_posix_sysconf_SC_ARG_MAX _POSIX_ARG_MAX
283#define __z_posix_sysconf_SC_ATEXIT_MAX 32
284#define __z_posix_sysconf_SC_CHILD_MAX _POSIX_CHILD_MAX
285#define __z_posix_sysconf_SC_HOST_NAME_MAX \
286 COND_CODE_1(CONFIG_POSIX_NETWORKING, (CONFIG_POSIX_HOST_NAME_MAX), (0))
287#define __z_posix_sysconf_SC_IOV_MAX 16 /* _XOPEN_IOV_MAX */
288#define __z_posix_sysconf_SC_LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX
289#define __z_posix_sysconf_SC_NGROUPS_MAX _POSIX_NGROUPS_MAX
290#define __z_posix_sysconf_SC_MQ_OPEN_MAX \
291 COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (CONFIG_POSIX_MQ_OPEN_MAX), (0))
292#define __z_posix_sysconf_SC_MQ_PRIO_MAX _POSIX_MQ_PRIO_MAX
293#define __z_posix_sysconf_SC_OPEN_MAX CONFIG_POSIX_OPEN_MAX
294#define __z_posix_sysconf_SC_PAGE_SIZE CONFIG_POSIX_PAGE_SIZE
295#define __z_posix_sysconf_SC_PAGESIZE CONFIG_POSIX_PAGE_SIZE
296#define __z_posix_sysconf_SC_THREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
297#define __z_posix_sysconf_SC_THREAD_KEYS_MAX \
298 COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_KEYS_MAX), (0))
299#define __z_posix_sysconf_SC_THREAD_STACK_MIN 0
300#define __z_posix_sysconf_SC_THREAD_THREADS_MAX \
301 COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_THREADS_MAX), (0))
302#define __z_posix_sysconf_SC_RTSIG_MAX \
303 COND_CODE_1(CONFIG_POSIX_REALTIME_SIGNALS, (CONFIG_POSIX_RTSIG_MAX), (0))
304#define __z_posix_sysconf_SC_SEM_NSEMS_MAX \
305 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_NSEMS_MAX), (0))
306#define __z_posix_sysconf_SC_SEM_VALUE_MAX \
307 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_VALUE_MAX), (0))
308#define __z_posix_sysconf_SC_SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX
309#define __z_posix_sysconf_SC_STREAM_MAX _POSIX_STREAM_MAX
310#define __z_posix_sysconf_SC_SYMLOOP_MAX _POSIX_SYMLOOP_MAX
311#define __z_posix_sysconf_SC_TIMER_MAX \
312 COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_TIMER_MAX), (0))
313#define __z_posix_sysconf_SC_TTY_NAME_MAX _POSIX_TTY_NAME_MAX
314#define __z_posix_sysconf_SC_TZNAME_MAX _POSIX_TZNAME_MAX
315
316#ifdef CONFIG_POSIX_SYSCONF_IMPL_MACRO
317#define sysconf(x) (long)CONCAT(__z_posix_sysconf, x)
318#endif
319
320/* clang-format on */
321
322#ifdef __cplusplus
323}
324#endif
325
326#endif /* ZEPHYR_INCLUDE_POSIX_SYS_SYSCONF_H_ */
Macro utilities.