21#ifndef ZEPHYR_INCLUDE_POSIX_SYS_SYSCONF_H_
22#define ZEPHYR_INCLUDE_POSIX_SYS_SYSCONF_H_
26#include <zephyr/sys/util_macro.h>
32#if defined(CONFIG_MINIMAL_LIBC)
47 _SC_MEMORY_PROTECTION,
51 _SC_PRIORITY_SCHEDULING,
54 _SC_READER_WRITER_LOCKS,
59 _SC_SHARED_MEMORY_OBJECTS,
66 _SC_THREAD_ATTR_STACKADDR,
67 _SC_THREAD_ATTR_STACKSIZE,
69 _SC_THREAD_PRIO_INHERIT,
70 _SC_THREAD_PRIO_PROTECT,
71 _SC_THREAD_PRIORITY_SCHEDULING,
72 _SC_THREAD_PROCESS_SHARED,
73 _SC_THREAD_ROBUST_PRIO_INHERIT,
74 _SC_THREAD_ROBUST_PRIO_PROTECT,
75 _SC_THREAD_SAFE_FUNCTIONS,
76 _SC_THREAD_SPORADIC_SERVER,
81 _SC_TRACE_EVENT_FILTER,
82 _SC_TRACE_EVENT_NAME_MAX,
87 _SC_TRACE_USER_EVENT_MAX,
88 _SC_TYPED_MEMORY_OBJECTS,
105 _SC_COLL_WEIGHTS_MAX,
113 _SC_2_PBS_ACCOUNTING,
114 _SC_2_PBS_CHECKPOINT,
124 _SC_XOPEN_REALTIME_THREADS,
131 _SC_GETGR_R_SIZE_MAX,
132 _SC_GETPW_R_SIZE_MAX,
135 _SC_AIO_PRIO_DELTA_MAX,
148 _SC_THREAD_DESTRUCTOR_ITERATIONS,
150 _SC_THREAD_STACK_MIN,
151 _SC_THREAD_THREADS_MAX,
170#define __z_posix_sysconf_SC_ADVISORY_INFO (-1L)
171#define __z_posix_sysconf_SC_ASYNCHRONOUS_IO \
172 COND_CODE_1(CONFIG_POSIX_ASYNCHRONOUS_IO, (_POSIX_ASYNCHRONOUS_IO), (-1L))
173#define __z_posix_sysconf_SC_BARRIERS COND_CODE_1(CONFIG_POSIX_BARRIERS, (_POSIX_BARRIERS), (-1L))
174#define __z_posix_sysconf_SC_CLOCK_SELECTION \
175 COND_CODE_1(CONFIG_POSIX_CLOCK_SELECTION, (_POSIX_CLOCK_SELECTION), (-1L))
176#define __z_posix_sysconf_SC_CPUTIME \
177 COND_CODE_1(CONFIG_POSIX_CPUTIME, (_POSIX_CPUTIME), (-1L))
178#define __z_posix_sysconf_SC_FSYNC \
179 COND_CODE_1(CONFIG_POSIX_FSYNC, (_POSIX_FSYNC), (-1L))
180#define __z_posix_sysconf_SC_IPV6 COND_CODE_1(CONFIG_NET_IPV6, (_POSIX_VERSION), (-1L))
181#define __z_posix_sysconf_SC_JOB_CONTROL (-1L)
182#define __z_posix_sysconf_SC_MAPPED_FILES \
183 COND_CODE_1(CONFIG_POSIX_MAPPED_FILES, (_POSIX_MAPPED_FILES), (-1L))
184#define __z_posix_sysconf_SC_MEMLOCK \
185 COND_CODE_1(CONFIG_POSIX_MEMLOCK, (_POSIX_MEMLOCK), (-1L))
186#define __z_posix_sysconf_SC_MEMLOCK_RANGE \
187 COND_CODE_1(CONFIG_POSIX_MEMLOCK_RANGE, (_POSIX_MEMLOCK_RANGE), (-1L))
188#define __z_posix_sysconf_SC_MEMORY_PROTECTION \
189 COND_CODE_1(CONFIG_POSIX_MEMORY_PROTECTION, (_POSIX_MEMORY_PROTECTION), (-1L))
190#define __z_posix_sysconf_SC_MESSAGE_PASSING \
191 COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (_POSIX_MESSAGE_PASSING), (-1L))
192#define __z_posix_sysconf_SC_MONOTONIC_CLOCK \
193 COND_CODE_1(CONFIG_POSIX_MONOTONIC_CLOCK, (_POSIX_MONOTONIC_CLOCK), (-1L))
194#define __z_posix_sysconf_SC_PRIORITIZED_IO \
195 COND_CODE_1(CONFIG_POSIX_PRIORITIZED_IO, (_POSIX_PRIORITIZED_IO), (-1L))
196#define __z_posix_sysconf_SC_PRIORITY_SCHEDULING \
197 COND_CODE_1(CONFIG_POSIX_PRIORITY_SCHEDULING, (_POSIX_PRIORITY_SCHEDULING), (-1L))
198#define __z_posix_sysconf_SC_RAW_SOCKETS \
199 COND_CODE_1(CONFIG_NET_SOCKETS_PACKET, (_POSIX_RAW_SOCKETS), (-1L))
200#define __z_posix_sysconf_SC_RE_DUP_MAX _POSIX_RE_DUP_MAX
201#define __z_posix_sysconf_SC_READER_WRITER_LOCKS \
202 COND_CODE_1(CONFIG_POSIX_RW_LOCKS, (_POSIX_READER_WRITER_LOCKS), (-1L))
203#define __z_posix_sysconf_SC_REALTIME_SIGNALS (-1L)
204#define __z_posix_sysconf_SC_REGEXP (-1L)
205#define __z_posix_sysconf_SC_SAVED_IDS (-1L)
206#define __z_posix_sysconf_SC_SEMAPHORES \
207 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (_POSIX_SEMAPHORES), (-1L))
208#define __z_posix_sysconf_SC_SHARED_MEMORY_OBJECTS \
209 COND_CODE_1(CONFIG_POSIX_SHARED_MEMORY_OBJECTS, (_POSIX_SHARED_MEMORY_OBJECTS), (-1L))
210#define __z_posix_sysconf_SC_SHELL (-1L)
211#define __z_posix_sysconf_SC_SPAWN \
212 COND_CODE_1(CONFIG_POSIX_SPAWN, (_POSIX_SPAWN), (-1L))
213#define __z_posix_sysconf_SC_SPIN_LOCKS \
214 COND_CODE_1(CONFIG_POSIX_SPIN_LOCKS, (_POSIX_SPIN_LOCKS), (-1L))
215#define __z_posix_sysconf_SC_SPORADIC_SERVER \
216 COND_CODE_1(CONFIG_POSIX_SPORADIC_SERVER, (_POSIX_SPORADIC_SERVER), (-1L))
217#define __z_posix_sysconf_SC_SS_REPL_MAX _POSIX_SS_REPL_MAX
218#define __z_posix_sysconf_SC_SYNCHRONIZED_IO \
219 COND_CODE_1(CONFIG_POSIX_SYNCHRONIZED_IO, (_POSIX_SYNCHRONIZED_IO), (-1L))
220#define __z_posix_sysconf_SC_THREAD_ATTR_STACKADDR \
221 COND_CODE_1(CONFIG_POSIX_THREAD_ATTR_STACKADDR, (_POSIX_THREAD_ATTR_STACKADDR), (-1))
222#define __z_posix_sysconf_SC_THREAD_ATTR_STACKSIZE \
223 COND_CODE_1(CONFIG_POSIX_THREAD_ATTR_STACKSIZE, (_POSIX_THREAD_ATTR_STACKSIZE), (-1L))
224#define __z_posix_sysconf_SC_THREAD_CPUTIME (-1L)
225#define __z_posix_sysconf_SC_THREAD_PRIO_INHERIT \
226 COND_CODE_1(CONFIG_POSIX_THREAD_PRIO_INHERIT, (_POSIX_THREAD_PRIO_INHERIT), (-1L))
227#define __z_posix_sysconf_SC_THREAD_PRIO_PROTECT \
228 COND_CODE_1(CONFIG_POSIX_THREAD_PRIO_PROTECT, (_POSIX_THREAD_PRIO_PROTECT), (-1L))
229#define __z_posix_sysconf_SC_THREAD_PRIORITY_SCHEDULING \
230 COND_CODE_1(CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING, (_POSIX_THREAD_PRIORITY_SCHEDULING), \
232#define __z_posix_sysconf_SC_THREAD_PROCESS_SHARED \
233 COND_CODE_1(CONFIG_POSIX_THREAD_PROCESS_SHARED, (_POSIX_THREAD_PROCESS_SHARED), (-1L))
234#define __z_posix_sysconf_SC_THREAD_ROBUST_PRIO_INHERIT (-1L)
235#define __z_posix_sysconf_SC_THREAD_ROBUST_PRIO_PROTECT (-1L)
236#define __z_posix_sysconf_SC_THREAD_SAFE_FUNCTIONS \
237 COND_CODE_1(IS_ENABLED(CONFIG_POSIX_FILE_SYSTEM_R) && \
238 IS_ENABLED(CONFIG_POSIX_C_LANG_SUPPORT_R), \
239 (_POSIX_THREAD_SAFE_FUNCTIONS), (-1L))
240#define __z_posix_sysconf_SC_THREAD_SPORADIC_SERVER \
241 COND_CODE_1(CONFIG_POSIX_THREAD_SPORADIC_SERVER, (_POSIX_THREAD_SPORADIC_SERVER), (-1L))
242#define __z_posix_sysconf_SC_THREADS \
243 COND_CODE_1(CONFIG_POSIX_THREADS, (_POSIX_THREADS), (-1L))
244#define __z_posix_sysconf_SC_TIMEOUTS \
245 COND_CODE_1(IS_ENABLED(CONFIG_POSIX_TIMERS), (_POSIX_TIMEOUTS), (-1L))
246#define __z_posix_sysconf_SC_TIMERS \
247 COND_CODE_1(CONFIG_POSIX_TIMERS, (_POSIX_TIMERS), (-1))
248#define __z_posix_sysconf_SC_TRACE (-1L)
249#define __z_posix_sysconf_SC_TRACE_EVENT_FILTER (-1L)
250#define __z_posix_sysconf_SC_TRACE_EVENT_NAME_MAX _POSIX_TRACE_NAME_MAX
251#define __z_posix_sysconf_SC_TRACE_INHERIT (-1L)
252#define __z_posix_sysconf_SC_TRACE_LOG (-1L)
253#define __z_posix_sysconf_SC_TRACE_NAME_MAX _POSIX_TRACE_NAME_MAX
254#define __z_posix_sysconf_SC_TRACE_SYS_MAX _POSIX_TRACE_SYS_MAX
255#define __z_posix_sysconf_SC_TRACE_USER_EVENT_MAX _POSIX_TRACE_USER_EVENT_MAX
256#define __z_posix_sysconf_SC_TYPED_MEMORY_OBJECTS (-1L)
257#define __z_posix_sysconf_SC_VERSION \
258 COND_CODE_1(CONFIG_POSIX_SYSTEM_INTERFACES, (_POSIX_VERSION), (0))
259#define __z_posix_sysconf_SC_V6_ILP32_OFF32 (-1L)
260#define __z_posix_sysconf_SC_V6_ILP32_OFFBIG (-1L)
261#define __z_posix_sysconf_SC_V6_LP64_OFF64 (-1L)
262#define __z_posix_sysconf_SC_V6_LPBIG_OFFBIG (-1L)
263#define __z_posix_sysconf_SC_V7_ILP32_OFF32 (-1L)
264#define __z_posix_sysconf_SC_V7_ILP32_OFFBIG (-1L)
265#define __z_posix_sysconf_SC_V7_LP64_OFF64 (-1L)
266#define __z_posix_sysconf_SC_V7_LPBIG_OFFBIG (-1L)
267#define __z_posix_sysconf_SC_BC_BASE_MAX _POSIX2_BC_BASE_MAX
268#define __z_posix_sysconf_SC_BC_DIM_MAX _POSIX2_BC_DIM_MAX
269#define __z_posix_sysconf_SC_BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
270#define __z_posix_sysconf_SC_BC_STRING_MAX _POSIX2_BC_STRING_MAX
271#define __z_posix_sysconf_SC_2_C_BIND _POSIX2_C_BIND
272#define __z_posix_sysconf_SC_2_C_DEV \
273 COND_CODE_1(_POSIX2_C_DEV > 0, (_POSIX2_C_DEV), (-1))
274#define __z_posix_sysconf_SC_2_CHAR_TERM (-1L)
275#define __z_posix_sysconf_SC_COLL_WEIGHTS_MAX _POSIX2_COLL_WEIGHTS_MAX
276#define __z_posix_sysconf_SC_DELAYTIMER_MAX \
277 COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_DELAYTIMER_MAX), (0))
278#define __z_posix_sysconf_SC_EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
279#define __z_posix_sysconf_SC_2_FORT_DEV (-1L)
280#define __z_posix_sysconf_SC_2_FORT_RUN (-1L)
281#define __z_posix_sysconf_SC_LINE_MAX (-1L)
282#define __z_posix_sysconf_SC_2_LOCALEDEF (-1L)
283#define __z_posix_sysconf_SC_2_PBS (-1L)
284#define __z_posix_sysconf_SC_2_PBS_ACCOUNTING (-1L)
285#define __z_posix_sysconf_SC_2_PBS_CHECKPOINT (-1L)
286#define __z_posix_sysconf_SC_2_PBS_LOCATE (-1L)
287#define __z_posix_sysconf_SC_2_PBS_MESSAGE (-1L)
288#define __z_posix_sysconf_SC_2_PBS_TRACK (-1L)
289#define __z_posix_sysconf_SC_2_SW_DEV (-1L)
290#define __z_posix_sysconf_SC_2_UPE (-1L)
291#define __z_posix_sysconf_SC_2_VERSION \
292 COND_CODE_1(_POSIX2_VERSION > 0, (_POSIX2_VERSION), (-1))
293#define __z_posix_sysconf_SC_XOPEN_CRYPT (-1L)
294#define __z_posix_sysconf_SC_XOPEN_ENH_I18N (-1L)
295#define __z_posix_sysconf_SC_XOPEN_REALTIME \
296 COND_CODE_1(CONFIG_XSI_REALTIME, (_XOPEN_VERSION), (-1))
297#define __z_posix_sysconf_SC_XOPEN_REALTIME_THREADS (-1L)
298#define __z_posix_sysconf_SC_XOPEN_SHM (-1L)
299#define __z_posix_sysconf_SC_XOPEN_STREAMS \
300 COND_CODE_1(CONFIG_XSI_STREAMS, (_XOPEN_STREAMS), (-1))
301#define __z_posix_sysconf_SC_XOPEN_UNIX \
302 COND_CODE_1(CONFIG_XSI, (_XOPEN_UNIX), (-1))
303#define __z_posix_sysconf_SC_XOPEN_UUCP (-1L)
304#define __z_posix_sysconf_SC_XOPEN_VERSION \
305 COND_CODE_1(CONFIG_XSI, (_XOPEN_VERSION), (0))
306#define __z_posix_sysconf_SC_CLK_TCK (100L)
307#define __z_posix_sysconf_SC_GETGR_R_SIZE_MAX \
308 COND_CODE_1(CONFIG_POSIX_SYSTEM_DATABASE_R, (CONFIG_POSIX_GETGR_R_SIZE_MAX), (0L))
309#define __z_posix_sysconf_SC_GETPW_R_SIZE_MAX \
310 COND_CODE_1(CONFIG_POSIX_SYSTEM_DATABASE_R, (CONFIG_POSIX_GETPW_R_SIZE_MAX), (0L))
311#define __z_posix_sysconf_SC_AIO_LISTIO_MAX AIO_LISTIO_MAX
312#define __z_posix_sysconf_SC_AIO_MAX AIO_MAX
313#define __z_posix_sysconf_SC_AIO_PRIO_DELTA_MAX 0
314#define __z_posix_sysconf_SC_ARG_MAX _POSIX_ARG_MAX
315#define __z_posix_sysconf_SC_ATEXIT_MAX 32
316#define __z_posix_sysconf_SC_CHILD_MAX _POSIX_CHILD_MAX
317#define __z_posix_sysconf_SC_HOST_NAME_MAX \
318 COND_CODE_1(CONFIG_POSIX_NETWORKING, (CONFIG_POSIX_HOST_NAME_MAX), (0))
319#define __z_posix_sysconf_SC_IOV_MAX 16
320#define __z_posix_sysconf_SC_LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX
321#define __z_posix_sysconf_SC_NGROUPS_MAX _POSIX_NGROUPS_MAX
322#define __z_posix_sysconf_SC_MQ_OPEN_MAX \
323 COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (CONFIG_POSIX_MQ_OPEN_MAX), (0))
324#define __z_posix_sysconf_SC_MQ_PRIO_MAX _POSIX_MQ_PRIO_MAX
325#define __z_posix_sysconf_SC_OPEN_MAX OPEN_MAX
326#define __z_posix_sysconf_SC_PAGE_SIZE CONFIG_POSIX_PAGE_SIZE
327#define __z_posix_sysconf_SC_PAGESIZE CONFIG_POSIX_PAGE_SIZE
328#define __z_posix_sysconf_SC_THREAD_DESTRUCTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS
329#define __z_posix_sysconf_SC_THREAD_KEYS_MAX \
330 COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_KEYS_MAX), (0))
331#define __z_posix_sysconf_SC_THREAD_STACK_MIN 0
332#define __z_posix_sysconf_SC_THREAD_THREADS_MAX \
333 COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_THREADS_MAX), (0))
334#define __z_posix_sysconf_SC_RTSIG_MAX \
335 COND_CODE_1(CONFIG_POSIX_REALTIME_SIGNALS, (CONFIG_POSIX_RTSIG_MAX), (0))
336#define __z_posix_sysconf_SC_SEM_NSEMS_MAX \
337 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_NSEMS_MAX), (0))
338#define __z_posix_sysconf_SC_SEM_VALUE_MAX \
339 COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_VALUE_MAX), (0))
340#define __z_posix_sysconf_SC_SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX
341#define __z_posix_sysconf_SC_STREAM_MAX _POSIX_STREAM_MAX
342#define __z_posix_sysconf_SC_SYMLOOP_MAX _POSIX_SYMLOOP_MAX
343#define __z_posix_sysconf_SC_TIMER_MAX \
344 COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_TIMER_MAX), (0))
345#define __z_posix_sysconf_SC_TTY_NAME_MAX _POSIX_TTY_NAME_MAX
346#define __z_posix_sysconf_SC_TZNAME_MAX _POSIX_TZNAME_MAX
348#ifdef CONFIG_POSIX_SYSCONF_IMPL_MACRO
349#define sysconf(x) (long)CONCAT(__z_posix_sysconf, x)