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 <sys/param.h>
15#include <sys/sysproto.h>
16#include <time.h>
17#include <unistd.h>
18
19#ifndef ATEXIT_SIZE
20# define ATEXIT_SIZE	32 // from /usr/src/lib/libc/stdlib/atexit.h
21#endif
22
23#ifndef _PATH_ZONEINFO
24# define _PATH_ZONEINFO	"/usr/share/zoneinfo" // TZDATA from tzcode/stdtime/tzfile.h
25#endif
26*/
27import "C"
28
29// sysconf variables
30const (
31	SC_AIO_LISTIO_MAX               = C._SC_AIO_LISTIO_MAX
32	SC_AIO_MAX                      = C._SC_AIO_MAX
33	SC_AIO_PRIO_DELTA_MAX           = C._SC_AIO_PRIO_DELTA_MAX
34	SC_ARG_MAX                      = C._SC_ARG_MAX
35	SC_ATEXIT_MAX                   = C._SC_ATEXIT_MAX
36	SC_BC_BASE_MAX                  = C._SC_BC_BASE_MAX
37	SC_BC_DIM_MAX                   = C._SC_BC_DIM_MAX
38	SC_BC_SCALE_MAX                 = C._SC_BC_SCALE_MAX
39	SC_BC_STRING_MAX                = C._SC_BC_STRING_MAX
40	SC_CHILD_MAX                    = C._SC_CHILD_MAX
41	SC_CLK_TCK                      = C._SC_CLK_TCK
42	SC_COLL_WEIGHTS_MAX             = C._SC_COLL_WEIGHTS_MAX
43	SC_DELAYTIMER_MAX               = C._SC_DELAYTIMER_MAX
44	SC_EXPR_NEST_MAX                = C._SC_EXPR_NEST_MAX
45	SC_GETGR_R_SIZE_MAX             = C._SC_GETGR_R_SIZE_MAX
46	SC_GETPW_R_SIZE_MAX             = C._SC_GETPW_R_SIZE_MAX
47	SC_HOST_NAME_MAX                = C._SC_HOST_NAME_MAX
48	SC_IOV_MAX                      = C._SC_IOV_MAX
49	SC_LINE_MAX                     = C._SC_LINE_MAX
50	SC_LOGIN_NAME_MAX               = C._SC_LOGIN_NAME_MAX
51	SC_MQ_OPEN_MAX                  = C._SC_MQ_OPEN_MAX
52	SC_MQ_PRIO_MAX                  = C._SC_MQ_PRIO_MAX
53	SC_NGROUPS_MAX                  = C._SC_NGROUPS_MAX
54	SC_OPEN_MAX                     = C._SC_OPEN_MAX
55	SC_PAGE_SIZE                    = C._SC_PAGE_SIZE
56	SC_PAGESIZE                     = C._SC_PAGESIZE
57	SC_RE_DUP_MAX                   = C._SC_RE_DUP_MAX
58	SC_RTSIG_MAX                    = C._SC_RTSIG_MAX
59	SC_SEM_NSEMS_MAX                = C._SC_SEM_NSEMS_MAX
60	SC_SEM_VALUE_MAX                = C._SC_SEM_VALUE_MAX
61	SC_SIGQUEUE_MAX                 = C._SC_SIGQUEUE_MAX
62	SC_STREAM_MAX                   = C._SC_STREAM_MAX
63	SC_SYMLOOP_MAX                  = C._SC_SYMLOOP_MAX
64	SC_THREAD_DESTRUCTOR_ITERATIONS = C._SC_THREAD_DESTRUCTOR_ITERATIONS
65	SC_THREAD_KEYS_MAX              = C._SC_THREAD_KEYS_MAX
66	SC_THREAD_STACK_MIN             = C._SC_THREAD_STACK_MIN
67	SC_THREAD_THREADS_MAX           = C._SC_THREAD_THREADS_MAX
68	SC_TIMER_MAX                    = C._SC_TIMER_MAX
69	SC_TTY_NAME_MAX                 = C._SC_TTY_NAME_MAX
70	SC_TZNAME_MAX                   = C._SC_TZNAME_MAX
71
72	SC_ADVISORY_INFO              = C._SC_ADVISORY_INFO
73	SC_ASYNCHRONOUS_IO            = C._SC_ASYNCHRONOUS_IO
74	SC_BARRIERS                   = C._SC_BARRIERS
75	SC_CLOCK_SELECTION            = C._SC_CLOCK_SELECTION
76	SC_CPUTIME                    = C._SC_CPUTIME
77	SC_FSYNC                      = C._SC_FSYNC
78	SC_IPV6                       = C._SC_IPV6
79	SC_JOB_CONTROL                = C._SC_JOB_CONTROL
80	SC_MAPPED_FILES               = C._SC_MAPPED_FILES
81	SC_MEMLOCK                    = C._SC_MEMLOCK
82	SC_MEMLOCK_RANGE              = C._SC_MEMLOCK_RANGE
83	SC_MEMORY_PROTECTION          = C._SC_MEMORY_PROTECTION
84	SC_MESSAGE_PASSING            = C._SC_MESSAGE_PASSING
85	SC_MONOTONIC_CLOCK            = C._SC_MONOTONIC_CLOCK
86	SC_PRIORITIZED_IO             = C._SC_PRIORITIZED_IO
87	SC_PRIORITY_SCHEDULING        = C._SC_PRIORITY_SCHEDULING
88	SC_RAW_SOCKETS                = C._SC_RAW_SOCKETS
89	SC_READER_WRITER_LOCKS        = C._SC_READER_WRITER_LOCKS
90	SC_REALTIME_SIGNALS           = C._SC_REALTIME_SIGNALS
91	SC_REGEXP                     = C._SC_REGEXP
92	SC_SAVED_IDS                  = C._SC_SAVED_IDS
93	SC_SEMAPHORES                 = C._SC_SEMAPHORES
94	SC_SHARED_MEMORY_OBJECTS      = C._SC_SHARED_MEMORY_OBJECTS
95	SC_SHELL                      = C._SC_SHELL
96	SC_SPAWN                      = C._SC_SPAWN
97	SC_SPIN_LOCKS                 = C._SC_SPIN_LOCKS
98	SC_SPORADIC_SERVER            = C._SC_SPORADIC_SERVER
99	SC_SYNCHRONIZED_IO            = C._SC_SYNCHRONIZED_IO
100	SC_THREAD_ATTR_STACKADDR      = C._SC_THREAD_ATTR_STACKADDR
101	SC_THREAD_ATTR_STACKSIZE      = C._SC_THREAD_ATTR_STACKSIZE
102	SC_THREAD_CPUTIME             = C._SC_THREAD_CPUTIME
103	SC_THREAD_PRIO_INHERIT        = C._SC_THREAD_PRIO_INHERIT
104	SC_THREAD_PRIO_PROTECT        = C._SC_THREAD_PRIO_PROTECT
105	SC_THREAD_PRIORITY_SCHEDULING = C._SC_THREAD_PRIORITY_SCHEDULING
106	SC_THREAD_PROCESS_SHARED      = C._SC_THREAD_PROCESS_SHARED
107	SC_THREAD_SAFE_FUNCTIONS      = C._SC_THREAD_SAFE_FUNCTIONS
108	SC_THREAD_SPORADIC_SERVER     = C._SC_THREAD_SPORADIC_SERVER
109	SC_THREADS                    = C._SC_THREADS
110	SC_TIMEOUTS                   = C._SC_TIMEOUTS
111	SC_TIMERS                     = C._SC_TIMERS
112	SC_TRACE                      = C._SC_TRACE
113	SC_TRACE_EVENT_FILTER         = C._SC_TRACE_EVENT_FILTER
114	SC_TRACE_INHERIT              = C._SC_TRACE_INHERIT
115	SC_TRACE_LOG                  = C._SC_TRACE_LOG
116	SC_TYPED_MEMORY_OBJECTS       = C._SC_TYPED_MEMORY_OBJECTS
117	SC_VERSION                    = C._SC_VERSION
118
119	SC_V6_ILP32_OFF32  = C._SC_V6_ILP32_OFF32
120	SC_V6_ILP32_OFFBIG = C._SC_V6_ILP32_OFFBIG
121	SC_V6_LP64_OFF64   = C._SC_V6_LP64_OFF64
122	SC_V6_LPBIG_OFFBIG = C._SC_V6_LPBIG_OFFBIG
123
124	SC_2_C_BIND         = C._SC_2_C_BIND
125	SC_2_C_DEV          = C._SC_2_C_DEV
126	SC_2_CHAR_TERM      = C._SC_2_CHAR_TERM
127	SC_2_FORT_DEV       = C._SC_2_FORT_DEV
128	SC_2_FORT_RUN       = C._SC_2_FORT_RUN
129	SC_2_LOCALEDEF      = C._SC_2_LOCALEDEF
130	SC_2_PBS            = C._SC_2_PBS
131	SC_2_PBS_ACCOUNTING = C._SC_2_PBS_ACCOUNTING
132	SC_2_PBS_CHECKPOINT = C._SC_2_PBS_CHECKPOINT
133	SC_2_PBS_LOCATE     = C._SC_2_PBS_LOCATE
134	SC_2_PBS_MESSAGE    = C._SC_2_PBS_MESSAGE
135	SC_2_PBS_TRACK      = C._SC_2_PBS_TRACK
136	SC_2_SW_DEV         = C._SC_2_SW_DEV
137	SC_2_UPE            = C._SC_2_UPE
138	SC_2_VERSION        = C._SC_2_VERSION
139
140	SC_XOPEN_CRYPT            = C._SC_XOPEN_CRYPT
141	SC_XOPEN_ENH_I18N         = C._SC_XOPEN_ENH_I18N
142	SC_XOPEN_REALTIME         = C._SC_XOPEN_REALTIME
143	SC_XOPEN_REALTIME_THREADS = C._SC_XOPEN_REALTIME_THREADS
144	SC_XOPEN_SHM              = C._SC_XOPEN_SHM
145	SC_XOPEN_STREAMS          = C._SC_XOPEN_STREAMS
146	SC_XOPEN_UNIX             = C._SC_XOPEN_UNIX
147	SC_XOPEN_VERSION          = C._SC_XOPEN_VERSION
148	SC_XOPEN_XCU_VERSION      = C._SC_XOPEN_XCU_VERSION
149
150	// non-standard variables
151	SC_PHYS_PAGES       = C._SC_PHYS_PAGES
152	SC_NPROCESSORS_CONF = C._SC_NPROCESSORS_CONF
153	SC_NPROCESSORS_ONLN = C._SC_NPROCESSORS_ONLN
154)
155
156// sysconf values
157const (
158	_BC_BASE_MAX      = C.BC_BASE_MAX
159	_BC_DIM_MAX       = C.BC_DIM_MAX
160	_BC_SCALE_MAX     = C.BC_SCALE_MAX
161	_BC_STRING_MAX    = C.BC_STRING_MAX
162	_COLL_WEIGHTS_MAX = C.COLL_WEIGHTS_MAX
163	_EXPR_NEST_MAX    = C.EXPR_NEST_MAX
164	_LINE_MAX         = C.LINE_MAX
165	_MQ_PRIO_MAX      = C.MQ_PRIO_MAX
166	_RE_DUP_MAX       = C.RE_DUP_MAX
167	_SEM_VALUE_MAX    = C.SEM_VALUE_MAX
168
169	_CLK_TCK = C.CLK_TCK
170
171	_MAXHOSTNAMELEN = C.MAXHOSTNAMELEN
172	_MAXLOGNAME     = C.MAXLOGNAME
173	_MAXSYMLINKS    = C.MAXSYMLINKS
174	_ATEXIT_SIZE    = C.ATEXIT_SIZE
175
176	_POSIX_ADVISORY_INFO              = C._POSIX_ADVISORY_INFO
177	_POSIX_ARG_MAX                    = C._POSIX_ARG_MAX
178	_POSIX_ASYNCHRONOUS_IO            = C._POSIX_ASYNCHRONOUS_IO
179	_POSIX_BARRIERS                   = C._POSIX_BARRIERS
180	_POSIX_CHILD_MAX                  = C._POSIX_CHILD_MAX
181	_POSIX_CLOCK_SELECTION            = C._POSIX_CLOCK_SELECTION
182	_POSIX_CPUTIME                    = C._POSIX_CPUTIME
183	_POSIX_FSYNC                      = C._POSIX_FSYNC
184	_POSIX_IPV6                       = C._POSIX_IPV6
185	_POSIX_JOB_CONTROL                = C._POSIX_JOB_CONTROL
186	_POSIX_MAPPED_FILES               = C._POSIX_MAPPED_FILES
187	_POSIX_MEMLOCK                    = C._POSIX_MEMLOCK
188	_POSIX_MEMLOCK_RANGE              = C._POSIX_MEMLOCK_RANGE
189	_POSIX_MEMORY_PROTECTION          = C._POSIX_MEMORY_PROTECTION
190	_POSIX_MESSAGE_PASSING            = C._POSIX_MESSAGE_PASSING
191	_POSIX_MONOTONIC_CLOCK            = C._POSIX_MONOTONIC_CLOCK
192	_POSIX_PRIORITIZED_IO             = C._POSIX_PRIORITIZED_IO
193	_POSIX_PRIORITY_SCHEDULING        = C._POSIX_PRIORITY_SCHEDULING
194	_POSIX_RAW_SOCKETS                = C._POSIX_RAW_SOCKETS
195	_POSIX_READER_WRITER_LOCKS        = C._POSIX_READER_WRITER_LOCKS
196	_POSIX_REALTIME_SIGNALS           = C._POSIX_REALTIME_SIGNALS
197	_POSIX_REGEXP                     = C._POSIX_REGEXP
198	_POSIX_SEM_VALUE_MAX              = C._POSIX_SEM_VALUE_MAX
199	_POSIX_SEMAPHORES                 = C._POSIX_SEMAPHORES
200	_POSIX_SHARED_MEMORY_OBJECTS      = C._POSIX_SHARED_MEMORY_OBJECTS
201	_POSIX_SHELL                      = C._POSIX_SHELL
202	_POSIX_SPAWN                      = C._POSIX_SPAWN
203	_POSIX_SPIN_LOCKS                 = C._POSIX_SPIN_LOCKS
204	_POSIX_SPORADIC_SERVER            = C._POSIX_SPORADIC_SERVER
205	_POSIX_SYNCHRONIZED_IO            = C._POSIX_SYNCHRONIZED_IO
206	_POSIX_THREAD_ATTR_STACKADDR      = C._POSIX_THREAD_ATTR_STACKADDR
207	_POSIX_THREAD_ATTR_STACKSIZE      = C._POSIX_THREAD_ATTR_STACKSIZE
208	_POSIX_THREAD_CPUTIME             = C._POSIX_THREAD_CPUTIME
209	_POSIX_THREAD_PRIO_INHERIT        = C._POSIX_THREAD_PRIO_INHERIT
210	_POSIX_THREAD_PRIO_PROTECT        = C._POSIX_THREAD_PRIO_PROTECT
211	_POSIX_THREAD_PRIORITY_SCHEDULING = C._POSIX_THREAD_PRIORITY_SCHEDULING
212	_POSIX_THREAD_PROCESS_SHARED      = C._POSIX_THREAD_PROCESS_SHARED
213	_POSIX_THREAD_SAFE_FUNCTIONS      = C._POSIX_THREAD_SAFE_FUNCTIONS
214	_POSIX_THREADS                    = C._POSIX_THREADS
215	_POSIX_TIMEOUTS                   = C._POSIX_TIMEOUTS
216	_POSIX_TIMERS                     = C._POSIX_TIMERS
217	_POSIX_TRACE                      = C._POSIX_TRACE
218	_POSIX_TYPED_MEMORY_OBJECTS       = C._POSIX_TYPED_MEMORY_OBJECTS
219	_POSIX_VERSION                    = C._POSIX_VERSION
220
221	_V6_ILP32_OFF32  = C._V6_ILP32_OFF32
222	_V6_ILP32_OFFBIG = C._V6_ILP32_OFFBIG
223	_V6_LP64_OFF64   = C._V6_LP64_OFF64
224	_V6_LPBIG_OFFBIG = C._V6_LPBIG_OFFBIG
225
226	_POSIX2_C_BIND    = C._POSIX2_C_BIND
227	_POSIX2_C_DEV     = C._POSIX2_C_DEV
228	_POSIX2_CHAR_TERM = C._POSIX2_CHAR_TERM
229	_POSIX2_LOCALEDEF = C._POSIX2_LOCALEDEF
230	_POSIX2_PBS       = C._POSIX2_PBS
231	_POSIX2_SW_DEV    = C._POSIX2_SW_DEV
232	_POSIX2_UPE       = C._POSIX2_UPE
233	_POSIX2_VERSION   = C._POSIX2_VERSION
234
235	_XOPEN_CRYPT            = C._XOPEN_CRYPT
236	_XOPEN_ENH_I18N         = C._XOPEN_ENH_I18N
237	_XOPEN_REALTIME         = C._XOPEN_REALTIME
238	_XOPEN_REALTIME_THREADS = C._XOPEN_REALTIME_THREADS
239	_XOPEN_SHM              = C._XOPEN_SHM
240	_XOPEN_UNIX             = C._XOPEN_UNIX
241
242	_PTHREAD_DESTRUCTOR_ITERATIONS = C.PTHREAD_DESTRUCTOR_ITERATIONS
243	_PTHREAD_KEYS_MAX              = C.PTHREAD_KEYS_MAX
244	_PTHREAD_STACK_MIN             = C.PTHREAD_STACK_MIN
245)
246
247// pathconf variables
248const (
249	_PC_NAME_MAX = C._PC_NAME_MAX
250
251	_PATH_DEV      = C._PATH_DEV
252	_PATH_ZONEINFO = C._PATH_ZONEINFO
253)
254