1// Copyright 2018 Tobias Klauser. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build ignore
6// +build ignore
7
8package sysconf
9
10/*
11#include <limits.h>
12#include <paths.h>
13#include <pthread.h>
14#include <stdio.h>
15#include <sys/param.h>
16#include <time.h>
17#include <unistd.h>
18
19#include <grp.h> // for _GR_BUF_LEN
20#include <pwd.h> // for _PW_BUF_LEN
21
22#ifndef _PATH_ZONEINFO
23# define _PATH_ZONEINFO	"/usr/share/zoneinfo" // TZDATA from tzcode/stdtime/tzfile.h
24#endif
25
26// off_t is always __int64_t on OpenBSD, see /usr/include/_types.h
27enum {
28	sizeofOffT = sizeof(__int64_t)
29};
30*/
31import "C"
32
33// sysconf variables
34const (
35	SC_AIO_LISTIO_MAX               = C._SC_AIO_LISTIO_MAX
36	SC_AIO_MAX                      = C._SC_AIO_MAX
37	SC_AIO_PRIO_DELTA_MAX           = C._SC_AIO_PRIO_DELTA_MAX
38	SC_ARG_MAX                      = C._SC_ARG_MAX
39	SC_ATEXIT_MAX                   = C._SC_ATEXIT_MAX
40	SC_BC_BASE_MAX                  = C._SC_BC_BASE_MAX
41	SC_BC_DIM_MAX                   = C._SC_BC_DIM_MAX
42	SC_BC_SCALE_MAX                 = C._SC_BC_SCALE_MAX
43	SC_BC_STRING_MAX                = C._SC_BC_STRING_MAX
44	SC_CHILD_MAX                    = C._SC_CHILD_MAX
45	SC_CLK_TCK                      = C._SC_CLK_TCK
46	SC_COLL_WEIGHTS_MAX             = C._SC_COLL_WEIGHTS_MAX
47	SC_DELAYTIMER_MAX               = C._SC_DELAYTIMER_MAX
48	SC_EXPR_NEST_MAX                = C._SC_EXPR_NEST_MAX
49	SC_GETGR_R_SIZE_MAX             = C._SC_GETGR_R_SIZE_MAX
50	SC_GETPW_R_SIZE_MAX             = C._SC_GETPW_R_SIZE_MAX
51	SC_HOST_NAME_MAX                = C._SC_HOST_NAME_MAX
52	SC_IOV_MAX                      = C._SC_IOV_MAX
53	SC_LINE_MAX                     = C._SC_LINE_MAX
54	SC_LOGIN_NAME_MAX               = C._SC_LOGIN_NAME_MAX
55	SC_MQ_OPEN_MAX                  = C._SC_MQ_OPEN_MAX
56	SC_MQ_PRIO_MAX                  = C._SC_MQ_PRIO_MAX
57	SC_NGROUPS_MAX                  = C._SC_NGROUPS_MAX
58	SC_OPEN_MAX                     = C._SC_OPEN_MAX
59	SC_PAGE_SIZE                    = C._SC_PAGE_SIZE
60	SC_PAGESIZE                     = C._SC_PAGESIZE
61	SC_THREAD_DESTRUCTOR_ITERATIONS = C._SC_THREAD_DESTRUCTOR_ITERATIONS
62	SC_THREAD_KEYS_MAX              = C._SC_THREAD_KEYS_MAX
63	SC_THREAD_STACK_MIN             = C._SC_THREAD_STACK_MIN
64	SC_THREAD_THREADS_MAX           = C._SC_THREAD_THREADS_MAX
65	SC_RE_DUP_MAX                   = C._SC_RE_DUP_MAX
66	SC_SEM_NSEMS_MAX                = C._SC_SEM_NSEMS_MAX
67	SC_SEM_VALUE_MAX                = C._SC_SEM_VALUE_MAX
68	SC_SIGQUEUE_MAX                 = C._SC_SIGQUEUE_MAX
69	SC_STREAM_MAX                   = C._SC_STREAM_MAX
70	SC_SYMLOOP_MAX                  = C._SC_SYMLOOP_MAX
71	SC_TIMER_MAX                    = C._SC_TIMER_MAX
72	SC_TTY_NAME_MAX                 = C._SC_TTY_NAME_MAX
73	SC_TZNAME_MAX                   = C._SC_TZNAME_MAX
74
75	SC_ADVISORY_INFO              = C._SC_ADVISORY_INFO
76	SC_ASYNCHRONOUS_IO            = C._SC_ASYNCHRONOUS_IO
77	SC_BARRIERS                   = C._SC_BARRIERS
78	SC_CLOCK_SELECTION            = C._SC_CLOCK_SELECTION
79	SC_CPUTIME                    = C._SC_CPUTIME
80	SC_FSYNC                      = C._SC_FSYNC
81	SC_IPV6                       = C._SC_IPV6
82	SC_JOB_CONTROL                = C._SC_JOB_CONTROL
83	SC_MAPPED_FILES               = C._SC_MAPPED_FILES
84	SC_MEMLOCK                    = C._SC_MEMLOCK
85	SC_MEMLOCK_RANGE              = C._SC_MEMLOCK_RANGE
86	SC_MEMORY_PROTECTION          = C._SC_MEMORY_PROTECTION
87	SC_MESSAGE_PASSING            = C._SC_MESSAGE_PASSING
88	SC_MONOTONIC_CLOCK            = C._SC_MONOTONIC_CLOCK
89	SC_PRIORITIZED_IO             = C._SC_PRIORITIZED_IO
90	SC_PRIORITY_SCHEDULING        = C._SC_PRIORITY_SCHEDULING
91	SC_RAW_SOCKETS                = C._SC_RAW_SOCKETS
92	SC_READER_WRITER_LOCKS        = C._SC_READER_WRITER_LOCKS
93	SC_REALTIME_SIGNALS           = C._SC_REALTIME_SIGNALS
94	SC_REGEXP                     = C._SC_REGEXP
95	SC_SAVED_IDS                  = C._SC_SAVED_IDS
96	SC_SEMAPHORES                 = C._SC_SEMAPHORES
97	SC_SHARED_MEMORY_OBJECTS      = C._SC_SHARED_MEMORY_OBJECTS
98	SC_SHELL                      = C._SC_SHELL
99	SC_SPAWN                      = C._SC_SPAWN
100	SC_SPIN_LOCKS                 = C._SC_SPIN_LOCKS
101	SC_SPORADIC_SERVER            = C._SC_SPORADIC_SERVER
102	SC_SS_REPL_MAX                = C._SC_SS_REPL_MAX
103	SC_SYNCHRONIZED_IO            = C._SC_SYNCHRONIZED_IO
104	SC_THREAD_ATTR_STACKADDR      = C._SC_THREAD_ATTR_STACKADDR
105	SC_THREAD_ATTR_STACKSIZE      = C._SC_THREAD_ATTR_STACKSIZE
106	SC_THREAD_CPUTIME             = C._SC_THREAD_CPUTIME
107	SC_THREAD_PRIO_INHERIT        = C._SC_THREAD_PRIO_INHERIT
108	SC_THREAD_PRIO_PROTECT        = C._SC_THREAD_PRIO_PROTECT
109	SC_THREAD_PRIORITY_SCHEDULING = C._SC_THREAD_PRIORITY_SCHEDULING
110	SC_THREAD_PROCESS_SHARED      = C._SC_THREAD_PROCESS_SHARED
111	SC_THREAD_ROBUST_PRIO_INHERIT = C._SC_THREAD_ROBUST_PRIO_INHERIT
112	SC_THREAD_ROBUST_PRIO_PROTECT = C._SC_THREAD_ROBUST_PRIO_PROTECT
113	SC_THREAD_SAFE_FUNCTIONS      = C._SC_THREAD_SAFE_FUNCTIONS
114	SC_THREAD_SPORADIC_SERVER     = C._SC_THREAD_SPORADIC_SERVER
115	SC_THREADS                    = C._SC_THREADS
116	SC_TIMEOUTS                   = C._SC_TIMEOUTS
117	SC_TIMERS                     = C._SC_TIMERS
118	SC_TRACE                      = C._SC_TRACE
119	SC_TRACE_EVENT_FILTER         = C._SC_TRACE_EVENT_FILTER
120	SC_TRACE_EVENT_NAME_MAX       = C._SC_TRACE_EVENT_NAME_MAX
121	SC_TRACE_INHERIT              = C._SC_TRACE_INHERIT
122	SC_TRACE_LOG                  = C._SC_TRACE_LOG
123	SC_TRACE_NAME_MAX             = C._SC_TRACE_NAME_MAX
124	SC_TRACE_SYS_MAX              = C._SC_TRACE_SYS_MAX
125	SC_TRACE_USER_EVENT_MAX       = C._SC_TRACE_USER_EVENT_MAX
126	SC_TYPED_MEMORY_OBJECTS       = C._SC_TYPED_MEMORY_OBJECTS
127	SC_VERSION                    = C._SC_VERSION
128
129	SC_V7_ILP32_OFF32  = C._SC_V7_ILP32_OFF32
130	SC_V7_ILP32_OFFBIG = C._SC_V7_ILP32_OFFBIG
131	SC_V7_LP64_OFF64   = C._SC_V7_LP64_OFF64
132	SC_V7_LPBIG_OFFBIG = C._SC_V7_LPBIG_OFFBIG
133
134	SC_V6_ILP32_OFF32  = C._SC_V6_ILP32_OFF32
135	SC_V6_ILP32_OFFBIG = C._SC_V6_ILP32_OFFBIG
136	SC_V6_LP64_OFF64   = C._SC_V6_LP64_OFF64
137	SC_V6_LPBIG_OFFBIG = C._SC_V6_LPBIG_OFFBIG
138
139	SC_2_C_BIND         = C._SC_2_C_BIND
140	SC_2_C_DEV          = C._SC_2_C_DEV
141	SC_2_CHAR_TERM      = C._SC_2_CHAR_TERM
142	SC_2_FORT_DEV       = C._SC_2_FORT_DEV
143	SC_2_FORT_RUN       = C._SC_2_FORT_RUN
144	SC_2_LOCALEDEF      = C._SC_2_LOCALEDEF
145	SC_2_PBS            = C._SC_2_PBS
146	SC_2_PBS_ACCOUNTING = C._SC_2_PBS_ACCOUNTING
147	SC_2_PBS_CHECKPOINT = C._SC_2_PBS_CHECKPOINT
148	SC_2_PBS_LOCATE     = C._SC_2_PBS_LOCATE
149	SC_2_PBS_MESSAGE    = C._SC_2_PBS_MESSAGE
150	SC_2_PBS_TRACK      = C._SC_2_PBS_TRACK
151	SC_2_SW_DEV         = C._SC_2_SW_DEV
152	SC_2_UPE            = C._SC_2_UPE
153	SC_2_VERSION        = C._SC_2_VERSION
154
155	SC_XOPEN_CRYPT            = C._SC_XOPEN_CRYPT
156	SC_XOPEN_ENH_I18N         = C._SC_XOPEN_ENH_I18N
157	SC_XOPEN_REALTIME         = C._SC_XOPEN_REALTIME
158	SC_XOPEN_REALTIME_THREADS = C._SC_XOPEN_REALTIME_THREADS
159	SC_XOPEN_SHM              = C._SC_XOPEN_SHM
160	SC_XOPEN_STREAMS          = C._SC_XOPEN_STREAMS
161	SC_XOPEN_UNIX             = C._SC_XOPEN_UNIX
162	SC_XOPEN_UUCP             = C._SC_XOPEN_UUCP
163	SC_XOPEN_VERSION          = C._SC_XOPEN_VERSION
164
165	// non-standard variables
166	SC_AVPHYS_PAGES     = C._SC_AVPHYS_PAGES
167	SC_PHYS_PAGES       = C._SC_PHYS_PAGES
168	SC_NPROCESSORS_CONF = C._SC_NPROCESSORS_CONF
169	SC_NPROCESSORS_ONLN = C._SC_NPROCESSORS_ONLN
170)
171
172// sysconf values
173const (
174	_HOST_NAME_MAX                 = C.HOST_NAME_MAX
175	_IOV_MAX                       = C.IOV_MAX
176	_LOGIN_NAME_MAX                = C.LOGIN_NAME_MAX
177	_PTHREAD_DESTRUCTOR_ITERATIONS = C.PTHREAD_DESTRUCTOR_ITERATIONS
178	_PTHREAD_KEYS_MAX              = C.PTHREAD_KEYS_MAX
179	_PTHREAD_STACK_MIN             = C.PTHREAD_STACK_MIN
180	_PTHREAD_THREADS_MAX           = C.PTHREAD_THREADS_MAX
181	_SEM_VALUE_MAX                 = C.SEM_VALUE_MAX
182	_SYMLOOP_MAX                   = C.SYMLOOP_MAX
183	_TTY_NAME_MAX                  = C.TTY_NAME_MAX
184
185	_GR_BUF_LEN = C._GR_BUF_LEN
186	_PW_BUF_LEN = C._PW_BUF_LEN
187
188	_CLK_TCK = C.CLK_TCK
189
190	_POSIX_ADVISORY_INFO              = C._POSIX_ADVISORY_INFO
191	_POSIX_ARG_MAX                    = C._POSIX_ARG_MAX
192	_POSIX_ASYNCHRONOUS_IO            = C._POSIX_ASYNCHRONOUS_IO
193	_POSIX_BARRIERS                   = C._POSIX_BARRIERS
194	_POSIX_CHILD_MAX                  = C._POSIX_CHILD_MAX
195	_POSIX_CLOCK_SELECTION            = C._POSIX_CLOCK_SELECTION
196	_POSIX_CPUTIME                    = C._POSIX_CPUTIME
197	_POSIX_FSYNC                      = C._POSIX_FSYNC
198	_POSIX_IPV6                       = C._POSIX_IPV6
199	_POSIX_JOB_CONTROL                = C._POSIX_JOB_CONTROL
200	_POSIX_MAPPED_FILES               = C._POSIX_MAPPED_FILES
201	_POSIX_MEMLOCK                    = C._POSIX_MEMLOCK
202	_POSIX_MEMLOCK_RANGE              = C._POSIX_MEMLOCK_RANGE
203	_POSIX_MEMORY_PROTECTION          = C._POSIX_MEMORY_PROTECTION
204	_POSIX_MESSAGE_PASSING            = C._POSIX_MESSAGE_PASSING
205	_POSIX_MONOTONIC_CLOCK            = C._POSIX_MONOTONIC_CLOCK
206	_POSIX_PRIORITIZED_IO             = C._POSIX_PRIORITIZED_IO
207	_POSIX_PRIORITY_SCHEDULING        = C._POSIX_PRIORITY_SCHEDULING
208	_POSIX_RAW_SOCKETS                = C._POSIX_RAW_SOCKETS
209	_POSIX_READER_WRITER_LOCKS        = C._POSIX_READER_WRITER_LOCKS
210	_POSIX_REALTIME_SIGNALS           = C._POSIX_REALTIME_SIGNALS
211	_POSIX_REGEXP                     = C._POSIX_REGEXP
212	_POSIX_SAVED_IDS                  = C._POSIX_SAVED_IDS
213	_POSIX_SEMAPHORES                 = C._POSIX_SEMAPHORES
214	_POSIX_SHARED_MEMORY_OBJECTS      = C._POSIX_SHARED_MEMORY_OBJECTS
215	_POSIX_SHELL                      = C._POSIX_SHELL
216	_POSIX_SPAWN                      = C._POSIX_SPAWN
217	_POSIX_SPIN_LOCKS                 = C._POSIX_SPIN_LOCKS
218	_POSIX_SPORADIC_SERVER            = C._POSIX_SPORADIC_SERVER
219	_POSIX_SYNCHRONIZED_IO            = C._POSIX_SYNCHRONIZED_IO
220	_POSIX_THREAD_ATTR_STACKADDR      = C._POSIX_THREAD_ATTR_STACKADDR
221	_POSIX_THREAD_ATTR_STACKSIZE      = C._POSIX_THREAD_ATTR_STACKSIZE
222	_POSIX_THREAD_CPUTIME             = C._POSIX_THREAD_CPUTIME
223	_POSIX_THREAD_KEYS_MAX            = C._POSIX_THREAD_KEYS_MAX
224	_POSIX_THREAD_PRIO_INHERIT        = C._POSIX_THREAD_PRIO_INHERIT
225	_POSIX_THREAD_PRIO_PROTECT        = C._POSIX_THREAD_PRIO_PROTECT
226	_POSIX_THREAD_PRIORITY_SCHEDULING = C._POSIX_THREAD_PRIORITY_SCHEDULING
227	_POSIX_THREAD_PROCESS_SHARED      = C._POSIX_THREAD_PROCESS_SHARED
228	_POSIX_THREAD_ROBUST_PRIO_INHERIT = C._POSIX_THREAD_ROBUST_PRIO_INHERIT
229	_POSIX_THREAD_ROBUST_PRIO_PROTECT = C._POSIX_THREAD_ROBUST_PRIO_PROTECT
230	_POSIX_THREAD_SAFE_FUNCTIONS      = C._POSIX_THREAD_SAFE_FUNCTIONS
231	_POSIX_THREAD_SPORADIC_SERVER     = C._POSIX_THREAD_SPORADIC_SERVER
232	_POSIX_THREADS                    = C._POSIX_THREADS
233	_POSIX_TIMERS                     = C._POSIX_TIMERS
234	_POSIX_TIMEOUTS                   = C._POSIX_TIMEOUTS
235	_POSIX_TRACE                      = C._POSIX_TRACE
236	_POSIX_TYPED_MEMORY_OBJECTS       = C._POSIX_TYPED_MEMORY_OBJECTS
237	_POSIX_VERSION                    = C._POSIX_VERSION
238
239	_POSIX_V7_ILP32_OFF32  = C._POSIX_V7_ILP32_OFF32
240	_POSIX_V7_ILP32_OFFBIG = C._POSIX_V7_ILP32_OFFBIG
241	_POSIX_V7_LP64_OFF64   = C._POSIX_V7_LP64_OFF64
242	_POSIX_V7_LPBIG_OFFBIG = C._POSIX_V7_LPBIG_OFFBIG
243
244	_POSIX_V6_ILP32_OFF32  = C._POSIX_V6_ILP32_OFF32
245	_POSIX_V6_ILP32_OFFBIG = C._POSIX_V6_ILP32_OFFBIG
246	_POSIX_V6_LP64_OFF64   = C._POSIX_V6_LP64_OFF64
247	_POSIX_V6_LPBIG_OFFBIG = C._POSIX_V6_LPBIG_OFFBIG
248
249	_POSIX2_C_BIND    = C._POSIX2_C_BIND
250	_POSIX2_C_DEV     = C._POSIX2_C_DEV
251	_POSIX2_CHAR_TERM = C._POSIX2_CHAR_TERM
252	_POSIX2_LOCALEDEF = C._POSIX2_LOCALEDEF
253	_POSIX2_PBS       = C._POSIX2_PBS
254	_POSIX2_SW_DEV    = C._POSIX2_SW_DEV
255	_POSIX2_UPE       = C._POSIX2_UPE
256	_POSIX2_VERSION   = C._POSIX2_VERSION
257
258	_XOPEN_CRYPT            = C._XOPEN_CRYPT
259	_XOPEN_ENH_I18N         = C._XOPEN_ENH_I18N
260	_XOPEN_REALTIME         = C._XOPEN_REALTIME
261	_XOPEN_REALTIME_THREADS = C._XOPEN_REALTIME_THREADS
262	_XOPEN_SHM              = C._XOPEN_SHM
263	_XOPEN_STREAMS          = C._XOPEN_STREAMS
264	_XOPEN_UNIX             = C._XOPEN_UNIX
265	_XOPEN_UUCP             = C._XOPEN_UUCP
266
267	_FOPEN_MAX  = C.FOPEN_MAX
268	_NAME_MAX   = C.NAME_MAX
269	_RE_DUP_MAX = C.RE_DUP_MAX
270
271	_BC_BASE_MAX      = C.BC_BASE_MAX
272	_BC_DIM_MAX       = C.BC_DIM_MAX
273	_BC_SCALE_MAX     = C.BC_SCALE_MAX
274	_BC_STRING_MAX    = C.BC_STRING_MAX
275	_COLL_WEIGHTS_MAX = C.COLL_WEIGHTS_MAX
276	_EXPR_NEST_MAX    = C.EXPR_NEST_MAX
277	_LINE_MAX         = C.LINE_MAX
278
279	_SHRT_MAX = C.SHRT_MAX
280
281	_PATH_ZONEINFO = C._PATH_ZONEINFO
282)
283
284// integer sizes
285const (
286	_CHAR_BIT = C.CHAR_BIT
287
288	_INT_MAX = C.INT_MAX
289
290	sizeofOffT = C.sizeofOffT
291)
292