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 <linux/uio.h>
13#include <stdio.h>
14#include <unistd.h>
15
16#include <grp.h> // for NSS_BUFLEN_GROUP
17#include <pwd.h> // for NSS_BUFLEN_PASSWD
18
19// This comes from the Linux kernel header.
20#ifndef OPEN_MAX
21# define OPEN_MAX	256
22#endif
23// POSIX_STREAM_MAX is 8, but glibc returns FOPEN_MAX if STREAM_MAX is not
24// defined.
25#ifndef STREAM_MAX
26# define STREAM_MAX	FOPEN_MAX
27#endif
28#ifndef SYMLOOP_MAX
29# define SYMLOOP_MAX	-1	// undefined
30#endif
31*/
32import "C"
33
34// sysconf variables
35const (
36	SC_AIO_LISTIO_MAX               = C._SC_AIO_LISTIO_MAX
37	SC_AIO_MAX                      = C._SC_AIO_MAX
38	SC_AIO_PRIO_DELTA_MAX           = C._SC_AIO_PRIO_DELTA_MAX
39	SC_ARG_MAX                      = C._SC_ARG_MAX
40	SC_ATEXIT_MAX                   = C._SC_ATEXIT_MAX
41	SC_BC_BASE_MAX                  = C._SC_BC_BASE_MAX
42	SC_BC_DIM_MAX                   = C._SC_BC_DIM_MAX
43	SC_BC_SCALE_MAX                 = C._SC_BC_SCALE_MAX
44	SC_BC_STRING_MAX                = C._SC_BC_STRING_MAX
45	SC_CHILD_MAX                    = C._SC_CHILD_MAX
46	SC_CLK_TCK                      = C._SC_CLK_TCK
47	SC_COLL_WEIGHTS_MAX             = C._SC_COLL_WEIGHTS_MAX
48	SC_DELAYTIMER_MAX               = C._SC_DELAYTIMER_MAX
49	SC_EXPR_NEST_MAX                = C._SC_EXPR_NEST_MAX
50	SC_GETGR_R_SIZE_MAX             = C._SC_GETGR_R_SIZE_MAX
51	SC_GETPW_R_SIZE_MAX             = C._SC_GETPW_R_SIZE_MAX
52	SC_HOST_NAME_MAX                = C._SC_HOST_NAME_MAX
53	SC_IOV_MAX                      = C._SC_IOV_MAX
54	SC_LINE_MAX                     = C._SC_LINE_MAX
55	SC_LOGIN_NAME_MAX               = C._SC_LOGIN_NAME_MAX
56	SC_MQ_OPEN_MAX                  = C._SC_MQ_OPEN_MAX
57	SC_MQ_PRIO_MAX                  = C._SC_MQ_PRIO_MAX
58	SC_NGROUPS_MAX                  = C._SC_NGROUPS_MAX
59	SC_OPEN_MAX                     = C._SC_OPEN_MAX
60	SC_PAGE_SIZE                    = C._SC_PAGE_SIZE
61	SC_PAGESIZE                     = C._SC_PAGESIZE
62	SC_THREAD_DESTRUCTOR_ITERATIONS = C._SC_THREAD_DESTRUCTOR_ITERATIONS
63	SC_THREAD_KEYS_MAX              = C._SC_THREAD_KEYS_MAX
64	SC_THREAD_STACK_MIN             = C._SC_THREAD_STACK_MIN
65	SC_THREAD_THREADS_MAX           = C._SC_THREAD_THREADS_MAX
66	SC_RE_DUP_MAX                   = C._SC_RE_DUP_MAX
67	SC_RTSIG_MAX                    = C._SC_RTSIG_MAX
68	SC_SEM_NSEMS_MAX                = C._SC_SEM_NSEMS_MAX
69	SC_SEM_VALUE_MAX                = C._SC_SEM_VALUE_MAX
70	SC_SIGQUEUE_MAX                 = C._SC_SIGQUEUE_MAX
71	SC_STREAM_MAX                   = C._SC_STREAM_MAX
72	SC_SYMLOOP_MAX                  = C._SC_SYMLOOP_MAX
73	SC_TIMER_MAX                    = C._SC_TIMER_MAX
74	SC_TTY_NAME_MAX                 = C._SC_TTY_NAME_MAX
75	SC_TZNAME_MAX                   = C._SC_TZNAME_MAX
76
77	SC_ADVISORY_INFO              = C._SC_ADVISORY_INFO
78	SC_ASYNCHRONOUS_IO            = C._SC_ASYNCHRONOUS_IO
79	SC_BARRIERS                   = C._SC_BARRIERS
80	SC_CLOCK_SELECTION            = C._SC_CLOCK_SELECTION
81	SC_CPUTIME                    = C._SC_CPUTIME
82	SC_FSYNC                      = C._SC_FSYNC
83	SC_IPV6                       = C._SC_IPV6
84	SC_JOB_CONTROL                = C._SC_JOB_CONTROL
85	SC_MAPPED_FILES               = C._SC_MAPPED_FILES
86	SC_MEMLOCK                    = C._SC_MEMLOCK
87	SC_MEMLOCK_RANGE              = C._SC_MEMLOCK_RANGE
88	SC_MEMORY_PROTECTION          = C._SC_MEMORY_PROTECTION
89	SC_MESSAGE_PASSING            = C._SC_MESSAGE_PASSING
90	SC_MONOTONIC_CLOCK            = C._SC_MONOTONIC_CLOCK
91	SC_PRIORITIZED_IO             = C._SC_PRIORITIZED_IO
92	SC_PRIORITY_SCHEDULING        = C._SC_PRIORITY_SCHEDULING
93	SC_RAW_SOCKETS                = C._SC_RAW_SOCKETS
94	SC_READER_WRITER_LOCKS        = C._SC_READER_WRITER_LOCKS
95	SC_REALTIME_SIGNALS           = C._SC_REALTIME_SIGNALS
96	SC_REGEXP                     = C._SC_REGEXP
97	SC_SAVED_IDS                  = C._SC_SAVED_IDS
98	SC_SEMAPHORES                 = C._SC_SEMAPHORES
99	SC_SHARED_MEMORY_OBJECTS      = C._SC_SHARED_MEMORY_OBJECTS
100	SC_SHELL                      = C._SC_SHELL
101	SC_SPAWN                      = C._SC_SPAWN
102	SC_SPIN_LOCKS                 = C._SC_SPIN_LOCKS
103	SC_SPORADIC_SERVER            = C._SC_SPORADIC_SERVER
104	SC_SS_REPL_MAX                = C._SC_SS_REPL_MAX
105	SC_SYNCHRONIZED_IO            = C._SC_SYNCHRONIZED_IO
106	SC_THREAD_ATTR_STACKADDR      = C._SC_THREAD_ATTR_STACKADDR
107	SC_THREAD_ATTR_STACKSIZE      = C._SC_THREAD_ATTR_STACKSIZE
108	SC_THREAD_CPUTIME             = C._SC_THREAD_CPUTIME
109	SC_THREAD_PRIO_INHERIT        = C._SC_THREAD_PRIO_INHERIT
110	SC_THREAD_PRIO_PROTECT        = C._SC_THREAD_PRIO_PROTECT
111	SC_THREAD_PRIORITY_SCHEDULING = C._SC_THREAD_PRIORITY_SCHEDULING
112	SC_THREAD_PROCESS_SHARED      = C._SC_THREAD_PROCESS_SHARED
113	SC_THREAD_ROBUST_PRIO_INHERIT = C._SC_THREAD_ROBUST_PRIO_INHERIT
114	SC_THREAD_ROBUST_PRIO_PROTECT = C._SC_THREAD_ROBUST_PRIO_PROTECT
115	SC_THREAD_SAFE_FUNCTIONS      = C._SC_THREAD_SAFE_FUNCTIONS
116	SC_THREAD_SPORADIC_SERVER     = C._SC_THREAD_SPORADIC_SERVER
117	SC_THREADS                    = C._SC_THREADS
118	SC_TIMEOUTS                   = C._SC_TIMEOUTS
119	SC_TIMERS                     = C._SC_TIMERS
120	SC_TRACE                      = C._SC_TRACE
121	SC_TRACE_EVENT_FILTER         = C._SC_TRACE_EVENT_FILTER
122	SC_TRACE_EVENT_NAME_MAX       = C._SC_TRACE_EVENT_NAME_MAX
123	SC_TRACE_INHERIT              = C._SC_TRACE_INHERIT
124	SC_TRACE_LOG                  = C._SC_TRACE_LOG
125	SC_TRACE_NAME_MAX             = C._SC_TRACE_NAME_MAX
126	SC_TRACE_SYS_MAX              = C._SC_TRACE_SYS_MAX
127	SC_TRACE_USER_EVENT_MAX       = C._SC_TRACE_USER_EVENT_MAX
128	SC_TYPED_MEMORY_OBJECTS       = C._SC_TYPED_MEMORY_OBJECTS
129	SC_VERSION                    = C._SC_VERSION
130
131	SC_V7_ILP32_OFF32  = C._SC_V7_ILP32_OFF32
132	SC_V7_ILP32_OFFBIG = C._SC_V7_ILP32_OFFBIG
133	SC_V7_LP64_OFF64   = C._SC_V7_LP64_OFF64
134	SC_V7_LPBIG_OFFBIG = C._SC_V7_LPBIG_OFFBIG
135
136	SC_V6_ILP32_OFF32  = C._SC_V6_ILP32_OFF32
137	SC_V6_ILP32_OFFBIG = C._SC_V6_ILP32_OFFBIG
138	SC_V6_LP64_OFF64   = C._SC_V6_LP64_OFF64
139	SC_V6_LPBIG_OFFBIG = C._SC_V6_LPBIG_OFFBIG
140
141	SC_2_C_BIND         = C._SC_2_C_BIND
142	SC_2_C_DEV          = C._SC_2_C_DEV
143	SC_2_C_VERSION      = C._SC_2_C_VERSION
144	SC_2_CHAR_TERM      = C._SC_2_CHAR_TERM
145	SC_2_FORT_DEV       = C._SC_2_FORT_DEV
146	SC_2_FORT_RUN       = C._SC_2_FORT_RUN
147	SC_2_LOCALEDEF      = C._SC_2_LOCALEDEF
148	SC_2_PBS            = C._SC_2_PBS
149	SC_2_PBS_ACCOUNTING = C._SC_2_PBS_ACCOUNTING
150	SC_2_PBS_CHECKPOINT = C._SC_2_PBS_CHECKPOINT
151	SC_2_PBS_LOCATE     = C._SC_2_PBS_LOCATE
152	SC_2_PBS_MESSAGE    = C._SC_2_PBS_MESSAGE
153	SC_2_PBS_TRACK      = C._SC_2_PBS_TRACK
154	SC_2_SW_DEV         = C._SC_2_SW_DEV
155	SC_2_UPE            = C._SC_2_UPE
156	SC_2_VERSION        = C._SC_2_VERSION
157
158	SC_XOPEN_CRYPT            = C._SC_XOPEN_CRYPT
159	SC_XOPEN_ENH_I18N         = C._SC_XOPEN_ENH_I18N
160	SC_XOPEN_REALTIME         = C._SC_XOPEN_REALTIME
161	SC_XOPEN_REALTIME_THREADS = C._SC_XOPEN_REALTIME_THREADS
162	SC_XOPEN_SHM              = C._SC_XOPEN_SHM
163	SC_XOPEN_STREAMS          = C._SC_XOPEN_STREAMS
164	SC_XOPEN_UNIX             = C._SC_XOPEN_UNIX
165	SC_XOPEN_VERSION          = C._SC_XOPEN_VERSION
166	SC_XOPEN_XCU_VERSION      = C._SC_XOPEN_XCU_VERSION
167
168	// non-standard variables
169	SC_PHYS_PAGES       = C._SC_PHYS_PAGES
170	SC_AVPHYS_PAGES     = C._SC_AVPHYS_PAGES
171	SC_NPROCESSORS_CONF = C._SC_NPROCESSORS_CONF
172	SC_NPROCESSORS_ONLN = C._SC_NPROCESSORS_ONLN
173	SC_UIO_MAXIOV       = C._SC_UIO_MAXIOV
174)
175