xref: /aosp_15_r20/bionic/tests/headers/posix/unistd_h.c (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * Copyright (C) 2017 The Android Open Source Project
3*8d67ca89SAndroid Build Coastguard Worker  * All rights reserved.
4*8d67ca89SAndroid Build Coastguard Worker  *
5*8d67ca89SAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
6*8d67ca89SAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
7*8d67ca89SAndroid Build Coastguard Worker  * are met:
8*8d67ca89SAndroid Build Coastguard Worker  *  * Redistributions of source code must retain the above copyright
9*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
10*8d67ca89SAndroid Build Coastguard Worker  *  * Redistributions in binary form must reproduce the above copyright
11*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in
12*8d67ca89SAndroid Build Coastguard Worker  *    the documentation and/or other materials provided with the
13*8d67ca89SAndroid Build Coastguard Worker  *    distribution.
14*8d67ca89SAndroid Build Coastguard Worker  *
15*8d67ca89SAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16*8d67ca89SAndroid Build Coastguard Worker  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17*8d67ca89SAndroid Build Coastguard Worker  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18*8d67ca89SAndroid Build Coastguard Worker  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19*8d67ca89SAndroid Build Coastguard Worker  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20*8d67ca89SAndroid Build Coastguard Worker  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21*8d67ca89SAndroid Build Coastguard Worker  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22*8d67ca89SAndroid Build Coastguard Worker  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23*8d67ca89SAndroid Build Coastguard Worker  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24*8d67ca89SAndroid Build Coastguard Worker  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25*8d67ca89SAndroid Build Coastguard Worker  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*8d67ca89SAndroid Build Coastguard Worker  * SUCH DAMAGE.
27*8d67ca89SAndroid Build Coastguard Worker  */
28*8d67ca89SAndroid Build Coastguard Worker 
29*8d67ca89SAndroid Build Coastguard Worker #include <unistd.h>
30*8d67ca89SAndroid Build Coastguard Worker 
31*8d67ca89SAndroid Build Coastguard Worker #include "header_checks.h"
32*8d67ca89SAndroid Build Coastguard Worker 
unistd_h()33*8d67ca89SAndroid Build Coastguard Worker static void unistd_h() {
34*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_VERSION);
35*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_VERSION);
36*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_VERSION);
37*8d67ca89SAndroid Build Coastguard Worker 
38*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_ADVISORY_INFO);
39*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_ASYNCHRONOUS_IO);
40*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_BARRIERS);
41*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_CHOWN_RESTRICTED);
42*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_CLOCK_SELECTION);
43*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_CPUTIME);
44*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_FSYNC);
45*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_IPV6);
46*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_JOB_CONTROL);
47*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MAPPED_FILES);
48*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MEMLOCK);
49*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MEMLOCK_RANGE);
50*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MEMORY_PROTECTION);
51*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MESSAGE_PASSING);
52*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_MONOTONIC_CLOCK);
53*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_NO_TRUNC);
54*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
55*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_PRIORITIZED_IO);
56*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_PRIORITY_SCHEDULING);
57*8d67ca89SAndroid Build Coastguard Worker #endif
58*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_RAW_SOCKETS);
59*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_READER_WRITER_LOCKS);
60*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_REALTIME_SIGNALS);
61*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_REGEXP);
62*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SAVED_IDS);
63*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SEMAPHORES);
64*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SHARED_MEMORY_OBJECTS);
65*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SHELL);
66*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SPAWN);
67*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SPIN_LOCKS);
68*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
69*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SPORADIC_SERVER);
70*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_SYNCHRONIZED_IO);
71*8d67ca89SAndroid Build Coastguard Worker #endif
72*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_ATTR_STACKADDR);
73*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_ATTR_STACKSIZE);
74*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_CPUTIME);
75*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
76*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_PRIO_INHERIT);
77*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_PRIO_PROTECT);
78*8d67ca89SAndroid Build Coastguard Worker #endif
79*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_PRIORITY_SCHEDULING);
80*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_PROCESS_SHARED);
81*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
82*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_ROBUST_PRIO_INHERIT);
83*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_ROBUST_PRIO_PROTECT);
84*8d67ca89SAndroid Build Coastguard Worker #endif
85*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_SAFE_FUNCTIONS);
86*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
87*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREAD_SPORADIC_SERVER);
88*8d67ca89SAndroid Build Coastguard Worker #endif
89*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_THREADS);
90*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_TIMEOUTS);
91*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_TIMERS);
92*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
93*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_TYPED_MEMORY_OBJECTS);
94*8d67ca89SAndroid Build Coastguard Worker #endif
95*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_C_BIND);
96*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
97*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_CHAR_TERM);
98*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_LOCALEDEF);
99*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_SW_DEV);
100*8d67ca89SAndroid Build Coastguard Worker #endif
101*8d67ca89SAndroid Build Coastguard Worker #if 0 // No libc I can find actually has this.
102*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX2_UPE);
103*8d67ca89SAndroid Build Coastguard Worker #endif
104*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
105*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_CRYPT);
106*8d67ca89SAndroid Build Coastguard Worker #endif
107*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_ENH_I18N);
108*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
109*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_REALTIME);
110*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_REALTIME_THREADS);
111*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_SHM);
112*8d67ca89SAndroid Build Coastguard Worker #endif
113*8d67ca89SAndroid Build Coastguard Worker   MACRO(_XOPEN_UNIX);
114*8d67ca89SAndroid Build Coastguard Worker #if defined(_XOPEN_UUCP)
115*8d67ca89SAndroid Build Coastguard Worker #if _XOPEN_UUCP != -1 && _XOPEN_UUCP != 0 && _XOPEN_UUCP != 200809L
116*8d67ca89SAndroid Build Coastguard Worker #error _XOPEN_UUCP
117*8d67ca89SAndroid Build Coastguard Worker #endif
118*8d67ca89SAndroid Build Coastguard Worker #endif
119*8d67ca89SAndroid Build Coastguard Worker 
120*8d67ca89SAndroid Build Coastguard Worker   MACRO(NULL);
121*8d67ca89SAndroid Build Coastguard Worker 
122*8d67ca89SAndroid Build Coastguard Worker   MACRO(F_OK);
123*8d67ca89SAndroid Build Coastguard Worker   MACRO(R_OK);
124*8d67ca89SAndroid Build Coastguard Worker   MACRO(W_OK);
125*8d67ca89SAndroid Build Coastguard Worker   MACRO(X_OK);
126*8d67ca89SAndroid Build Coastguard Worker 
127*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) // No confstr on Android.
128*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_PATH);
129*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFF32_CFLAGS);
130*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFF32_LDFLAGS);
131*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFF32_LIBS);
132*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS);
133*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS);
134*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_ILP32_OFFBIG_LIBS);
135*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LP64_OFF64_CFLAGS);
136*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LP64_OFF64_LDFLAGS);
137*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LP64_OFF64_LIBS);
138*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS);
139*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS);
140*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_LPBIG_OFFBIG_LIBS);
141*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS);
142*8d67ca89SAndroid Build Coastguard Worker   MACRO(_CS_V7_ENV);
143*8d67ca89SAndroid Build Coastguard Worker #endif
144*8d67ca89SAndroid Build Coastguard Worker 
145*8d67ca89SAndroid Build Coastguard Worker   MACRO(SEEK_CUR);
146*8d67ca89SAndroid Build Coastguard Worker   MACRO(SEEK_END);
147*8d67ca89SAndroid Build Coastguard Worker   MACRO(SEEK_SET);
148*8d67ca89SAndroid Build Coastguard Worker 
149*8d67ca89SAndroid Build Coastguard Worker   MACRO(F_LOCK);
150*8d67ca89SAndroid Build Coastguard Worker   MACRO(F_TEST);
151*8d67ca89SAndroid Build Coastguard Worker   MACRO(F_TLOCK);
152*8d67ca89SAndroid Build Coastguard Worker   MACRO(F_ULOCK);
153*8d67ca89SAndroid Build Coastguard Worker 
154*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_2_SYMLINKS);
155*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_ALLOC_SIZE_MIN);
156*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_ASYNC_IO);
157*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_CHOWN_RESTRICTED);
158*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_FILESIZEBITS);
159*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_LINK_MAX);
160*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_MAX_CANON);
161*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_MAX_INPUT);
162*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_NAME_MAX);
163*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_NO_TRUNC);
164*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_PATH_MAX);
165*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_PIPE_BUF);
166*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_PRIO_IO);
167*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_REC_INCR_XFER_SIZE);
168*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_REC_MAX_XFER_SIZE);
169*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_REC_MIN_XFER_SIZE);
170*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_REC_XFER_ALIGN);
171*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_SYMLINK_MAX);
172*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_SYNC_IO);
173*8d67ca89SAndroid Build Coastguard Worker #if 0 // No libc I can find actually has this.
174*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_TIMESTAMP_RESOLUTION);
175*8d67ca89SAndroid Build Coastguard Worker #endif
176*8d67ca89SAndroid Build Coastguard Worker   MACRO(_PC_VDISABLE);
177*8d67ca89SAndroid Build Coastguard Worker 
178*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_C_BIND);
179*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_C_DEV);
180*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_CHAR_TERM);
181*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_FORT_DEV);
182*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_FORT_RUN);
183*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_LOCALEDEF);
184*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_SW_DEV);
185*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_UPE);
186*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_2_VERSION);
187*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_ADVISORY_INFO);
188*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_AIO_LISTIO_MAX);
189*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_AIO_MAX);
190*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_AIO_PRIO_DELTA_MAX);
191*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_ARG_MAX);
192*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_ASYNCHRONOUS_IO);
193*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_ATEXIT_MAX);
194*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_BARRIERS);
195*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_BC_BASE_MAX);
196*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_BC_DIM_MAX);
197*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_BC_SCALE_MAX);
198*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_BC_STRING_MAX);
199*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_CHILD_MAX);
200*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_CLK_TCK);
201*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_CLOCK_SELECTION);
202*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_COLL_WEIGHTS_MAX);
203*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_CPUTIME);
204*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_DELAYTIMER_MAX);
205*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_EXPR_NEST_MAX);
206*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_FSYNC);
207*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_GETGR_R_SIZE_MAX);
208*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_GETPW_R_SIZE_MAX);
209*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_HOST_NAME_MAX);
210*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_IOV_MAX);
211*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_IPV6);
212*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_JOB_CONTROL);
213*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_LINE_MAX);
214*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_LOGIN_NAME_MAX);
215*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MAPPED_FILES);
216*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MEMLOCK);
217*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MEMLOCK_RANGE);
218*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MEMORY_PROTECTION);
219*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MESSAGE_PASSING);
220*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MONOTONIC_CLOCK);
221*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MQ_OPEN_MAX);
222*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_MQ_PRIO_MAX);
223*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_NGROUPS_MAX);
224*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_OPEN_MAX);
225*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_PAGE_SIZE);
226*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_PAGESIZE);
227*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_PRIORITIZED_IO);
228*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_PRIORITY_SCHEDULING);
229*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_RAW_SOCKETS);
230*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_RE_DUP_MAX);
231*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_READER_WRITER_LOCKS);
232*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_REALTIME_SIGNALS);
233*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_REGEXP);
234*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_RTSIG_MAX);
235*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SAVED_IDS);
236*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SEM_NSEMS_MAX);
237*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SEM_VALUE_MAX);
238*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SEMAPHORES);
239*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SHARED_MEMORY_OBJECTS);
240*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SHELL);
241*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SIGQUEUE_MAX);
242*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SPAWN);
243*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SPIN_LOCKS);
244*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SPORADIC_SERVER);
245*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SS_REPL_MAX);
246*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_STREAM_MAX);
247*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SYMLOOP_MAX);
248*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_SYNCHRONIZED_IO);
249*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_ATTR_STACKADDR);
250*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_ATTR_STACKSIZE);
251*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_CPUTIME);
252*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_DESTRUCTOR_ITERATIONS);
253*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_KEYS_MAX);
254*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_PRIO_INHERIT);
255*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_PRIO_PROTECT);
256*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_PRIORITY_SCHEDULING);
257*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_PROCESS_SHARED);
258*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_ROBUST_PRIO_INHERIT);
259*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_ROBUST_PRIO_PROTECT);
260*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_SAFE_FUNCTIONS);
261*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_SPORADIC_SERVER);
262*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_STACK_MIN);
263*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREAD_THREADS_MAX);
264*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_THREADS);
265*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TIMEOUTS);
266*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TIMER_MAX);
267*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TIMERS);
268*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE);
269*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_EVENT_FILTER);
270*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_EVENT_NAME_MAX);
271*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_INHERIT);
272*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_LOG);
273*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_NAME_MAX);
274*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_SYS_MAX);
275*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TRACE_USER_EVENT_MAX);
276*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TYPED_MEMORY_OBJECTS);
277*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_TZNAME_MAX);
278*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_V7_ILP32_OFF32);
279*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_VERSION);
280*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_CRYPT);
281*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_ENH_I18N);
282*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_REALTIME);
283*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_REALTIME_THREADS);
284*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_SHM);
285*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_STREAMS);
286*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_UNIX);
287*8d67ca89SAndroid Build Coastguard Worker #if 0 // No libc I can find actually has this.
288*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_UUCP);
289*8d67ca89SAndroid Build Coastguard Worker #endif
290*8d67ca89SAndroid Build Coastguard Worker   MACRO(_SC_XOPEN_VERSION);
291*8d67ca89SAndroid Build Coastguard Worker 
292*8d67ca89SAndroid Build Coastguard Worker   MACRO_VALUE(STDERR_FILENO, 2);
293*8d67ca89SAndroid Build Coastguard Worker   MACRO_VALUE(STDIN_FILENO, 0);
294*8d67ca89SAndroid Build Coastguard Worker   MACRO_VALUE(STDOUT_FILENO, 1);
295*8d67ca89SAndroid Build Coastguard Worker 
296*8d67ca89SAndroid Build Coastguard Worker   MACRO(_POSIX_VDISABLE);
297*8d67ca89SAndroid Build Coastguard Worker 
298*8d67ca89SAndroid Build Coastguard Worker   TYPE(size_t);
299*8d67ca89SAndroid Build Coastguard Worker   TYPE(ssize_t);
300*8d67ca89SAndroid Build Coastguard Worker   TYPE(uid_t);
301*8d67ca89SAndroid Build Coastguard Worker   TYPE(gid_t);
302*8d67ca89SAndroid Build Coastguard Worker   TYPE(off_t);
303*8d67ca89SAndroid Build Coastguard Worker   TYPE(pid_t);
304*8d67ca89SAndroid Build Coastguard Worker   TYPE(intptr_t);
305*8d67ca89SAndroid Build Coastguard Worker 
306*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(access, int (*f)(const char*, int));
307*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(alarm, unsigned (*f)(unsigned));
308*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(chdir, int (*f)(const char*));
309*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(chown, int (*f)(const char*, uid_t, gid_t));
310*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(close, int (*f)(int));
311*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
312*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(confstr, size_t (*f)(int, char*, size_t));
313*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(crypt, char* (*f)(const char*, const char*));
314*8d67ca89SAndroid Build Coastguard Worker #endif
315*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(dup, int (*f)(int));
316*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(dup2, int (*f)(int, int));
317*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(_exit, void (*f)(int));
318*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
319*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(encrypt, void (*f)(char[64], int));
320*8d67ca89SAndroid Build Coastguard Worker #endif
321*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execl, int (*f)(const char*, const char*, ...));
322*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execle, int (*f)(const char*, const char*, ...));
323*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execlp, int (*f)(const char*, const char*, ...));
324*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execv, int (*f)(const char*, char* const[]));
325*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execve, int (*f)(const char*, char* const[], char* const[]));
326*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(execvp, int (*f)(const char*, char* const[]));
327*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(faccessat, int (*f)(int, const char*, int, int));
328*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fchdir, int (*f)(int));
329*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fchown, int (*f)(int, uid_t, gid_t));
330*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fchownat, int (*f)(int, const char*, uid_t, gid_t, int));
331*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fdatasync, int (*f)(int));
332*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fexecve, int (*f)(int, char* const[], char* const[]));
333*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fork, pid_t (*f)(void));
334*8d67ca89SAndroid Build Coastguard Worker #if !defined(__GLIBC__) // Our glibc is too old.
335*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(_Fork, pid_t (*f)(void));
336*8d67ca89SAndroid Build Coastguard Worker #endif
337*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fpathconf, long (*f)(int, int));
338*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(fsync, int (*f)(int));
339*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(ftruncate, int (*f)(int, off_t));
340*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getcwd, char* (*f)(char*, size_t));
341*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getegid, gid_t (*f)(void));
342*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(geteuid, uid_t (*f)(void));
343*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getgid, gid_t (*f)(void));
344*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getgroups, int (*f)(int, gid_t[]));
345*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
346*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(gethostid, long (*f)(void));
347*8d67ca89SAndroid Build Coastguard Worker #endif
348*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(gethostname, int (*f)(char*, size_t));
349*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getlogin, char* (*f)(void));
350*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getlogin_r, int (*f)(char*, size_t));
351*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getopt, int (*f)(int, char* const[], const char*));
352*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getpgid, pid_t (*f)(pid_t));
353*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getpgrp, pid_t (*f)(void));
354*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getpid, pid_t (*f)(void));
355*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getppid, pid_t (*f)(void));
356*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getsid, pid_t (*f)(pid_t));
357*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(getuid, uid_t (*f)(void));
358*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(isatty, int (*f)(int));
359*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(lchown, int (*f)(const char*, uid_t, gid_t));
360*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(link, int (*f)(const char*, const char*));
361*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(linkat, int (*f)(int, const char*, int, const char*, int));
362*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(lockf, int (*f)(int, int, off_t));
363*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(lseek, off_t (*f)(int, off_t, int));
364*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(nice, int (*f)(int));
365*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(pathconf, long (*f)(const char*, int));
366*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(pause, int (*f)(void));
367*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(pipe, int (*f)(int[2]));
368*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(pread, ssize_t (*f)(int, void*, size_t, off_t));
369*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(pwrite, ssize_t (*f)(int, const void*, size_t, off_t));
370*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(read, ssize_t (*f)(int, void*, size_t));
371*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(readlink, ssize_t (*f)(const char*, char*, size_t));
372*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(readlinkat, ssize_t (*f)(int, const char*, char*, size_t));
373*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(rmdir, int (*f)(const char*));
374*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setegid, int (*f)(gid_t));
375*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(seteuid, int (*f)(uid_t));
376*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setgid, int (*f)(gid_t));
377*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setpgid, int (*f)(pid_t, pid_t));
378*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setpgrp, pid_t (*f)(void));
379*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setregid, int (*f)(gid_t, gid_t));
380*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setreuid, int (*f)(uid_t, uid_t));
381*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setsid, pid_t (*f)(void));
382*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(setuid, int (*f)(uid_t));
383*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(sleep, unsigned (*f)(unsigned));
384*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(swab, void (*f)(const void*, void*, ssize_t));
385*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(symlink, int (*f)(const char*, const char*));
386*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(symlinkat, int (*f)(const char*, int, const char*));
387*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(sync, void (*f)(void));
388*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(sysconf, long (*f)(int));
389*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(tcgetpgrp, pid_t (*f)(int));
390*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(tcsetpgrp, int (*f)(int, pid_t));
391*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(truncate, int (*f)(const char*, off_t));
392*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(ttyname, char* (*f)(int));
393*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(ttyname_r, int (*f)(int, char*, size_t));
394*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(unlink, int (*f)(const char*));
395*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(unlinkat, int (*f)(int, const char*, int));
396*8d67ca89SAndroid Build Coastguard Worker   FUNCTION(write, ssize_t (*f)(int, const void*, size_t));
397*8d67ca89SAndroid Build Coastguard Worker 
398*8d67ca89SAndroid Build Coastguard Worker   char* cp;
399*8d67ca89SAndroid Build Coastguard Worker   cp = optarg;
400*8d67ca89SAndroid Build Coastguard Worker   int i;
401*8d67ca89SAndroid Build Coastguard Worker   i = opterr;
402*8d67ca89SAndroid Build Coastguard Worker   i = optind;
403*8d67ca89SAndroid Build Coastguard Worker   i = optopt;
404*8d67ca89SAndroid Build Coastguard Worker }
405