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 <limits.h>
30*8d67ca89SAndroid Build Coastguard Worker
31*8d67ca89SAndroid Build Coastguard Worker #include "header_checks.h"
32*8d67ca89SAndroid Build Coastguard Worker
limits_h()33*8d67ca89SAndroid Build Coastguard Worker static void limits_h() {
34*8d67ca89SAndroid Build Coastguard Worker // These are only defined if they're constants.
35*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
36*8d67ca89SAndroid Build Coastguard Worker MACRO(AIO_LISTIO_MAX);
37*8d67ca89SAndroid Build Coastguard Worker MACRO(AIO_MAX);
38*8d67ca89SAndroid Build Coastguard Worker #endif
39*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(ANDROID_HOST_MUSL)
40*8d67ca89SAndroid Build Coastguard Worker MACRO(AIO_PRIO_DELTA_MAX);
41*8d67ca89SAndroid Build Coastguard Worker #endif
42*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
43*8d67ca89SAndroid Build Coastguard Worker MACRO(ARG_MAX);
44*8d67ca89SAndroid Build Coastguard Worker #endif
45*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
46*8d67ca89SAndroid Build Coastguard Worker MACRO(ATEXIT_MAX);
47*8d67ca89SAndroid Build Coastguard Worker MACRO(CHILD_MAX);
48*8d67ca89SAndroid Build Coastguard Worker #endif
49*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
50*8d67ca89SAndroid Build Coastguard Worker MACRO(DELAYTIMER_MAX);
51*8d67ca89SAndroid Build Coastguard Worker #endif
52*8d67ca89SAndroid Build Coastguard Worker MACRO(HOST_NAME_MAX);
53*8d67ca89SAndroid Build Coastguard Worker MACRO(IOV_MAX);
54*8d67ca89SAndroid Build Coastguard Worker MACRO(LOGIN_NAME_MAX);
55*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
56*8d67ca89SAndroid Build Coastguard Worker MACRO(MQ_OPEN_MAX);
57*8d67ca89SAndroid Build Coastguard Worker #endif
58*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
59*8d67ca89SAndroid Build Coastguard Worker MACRO(MQ_PRIO_MAX);
60*8d67ca89SAndroid Build Coastguard Worker #endif
61*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
62*8d67ca89SAndroid Build Coastguard Worker MACRO(OPEN_MAX);
63*8d67ca89SAndroid Build Coastguard Worker #endif
64*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
65*8d67ca89SAndroid Build Coastguard Worker MACRO(PAGESIZE);
66*8d67ca89SAndroid Build Coastguard Worker MACRO(PAGE_SIZE);
67*8d67ca89SAndroid Build Coastguard Worker #endif
68*8d67ca89SAndroid Build Coastguard Worker MACRO(PTHREAD_DESTRUCTOR_ITERATIONS);
69*8d67ca89SAndroid Build Coastguard Worker MACRO(PTHREAD_KEYS_MAX);
70*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
71*8d67ca89SAndroid Build Coastguard Worker MACRO(PTHREAD_STACK_MIN);
72*8d67ca89SAndroid Build Coastguard Worker #endif
73*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
74*8d67ca89SAndroid Build Coastguard Worker MACRO(PTHREAD_THREADS_MAX);
75*8d67ca89SAndroid Build Coastguard Worker #endif
76*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
77*8d67ca89SAndroid Build Coastguard Worker MACRO(RTSIG_MAX);
78*8d67ca89SAndroid Build Coastguard Worker #endif
79*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
80*8d67ca89SAndroid Build Coastguard Worker MACRO(SEM_NSEMS_MAX);
81*8d67ca89SAndroid Build Coastguard Worker #endif
82*8d67ca89SAndroid Build Coastguard Worker MACRO(SEM_VALUE_MAX);
83*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
84*8d67ca89SAndroid Build Coastguard Worker MACRO(SIGQUEUE_MAX);
85*8d67ca89SAndroid Build Coastguard Worker MACRO(SS_REPL_MAX);
86*8d67ca89SAndroid Build Coastguard Worker MACRO(STREAM_MAX);
87*8d67ca89SAndroid Build Coastguard Worker #endif
88*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
89*8d67ca89SAndroid Build Coastguard Worker MACRO(SYMLOOP_MAX);
90*8d67ca89SAndroid Build Coastguard Worker #endif
91*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
92*8d67ca89SAndroid Build Coastguard Worker MACRO(TIMER_MAX);
93*8d67ca89SAndroid Build Coastguard Worker #endif
94*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
95*8d67ca89SAndroid Build Coastguard Worker MACRO(TTY_NAME_MAX);
96*8d67ca89SAndroid Build Coastguard Worker #endif
97*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
98*8d67ca89SAndroid Build Coastguard Worker MACRO(TZNAME_MAX);
99*8d67ca89SAndroid Build Coastguard Worker #endif
100*8d67ca89SAndroid Build Coastguard Worker
101*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__)
102*8d67ca89SAndroid Build Coastguard Worker MACRO(FILESIZEBITS);
103*8d67ca89SAndroid Build Coastguard Worker #endif
104*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
105*8d67ca89SAndroid Build Coastguard Worker MACRO(LINK_MAX);
106*8d67ca89SAndroid Build Coastguard Worker #endif
107*8d67ca89SAndroid Build Coastguard Worker #if !defined(ANDROID_HOST_MUSL)
108*8d67ca89SAndroid Build Coastguard Worker MACRO(MAX_CANON);
109*8d67ca89SAndroid Build Coastguard Worker MACRO(MAX_INPUT);
110*8d67ca89SAndroid Build Coastguard Worker #endif
111*8d67ca89SAndroid Build Coastguard Worker MACRO(NAME_MAX);
112*8d67ca89SAndroid Build Coastguard Worker MACRO(PATH_MAX);
113*8d67ca89SAndroid Build Coastguard Worker MACRO(PIPE_BUF);
114*8d67ca89SAndroid Build Coastguard Worker #if 0 // No libc has these.
115*8d67ca89SAndroid Build Coastguard Worker MACRO(POSIX_ALLOC_SIZE_MIN);
116*8d67ca89SAndroid Build Coastguard Worker MACRO(POSIX_REC_INCR_XFER_SIZE);
117*8d67ca89SAndroid Build Coastguard Worker MACRO(POSIX_REC_MAX_XFER_SIZE);
118*8d67ca89SAndroid Build Coastguard Worker MACRO(POSIX_REC_MIN_XFER_SIZE);
119*8d67ca89SAndroid Build Coastguard Worker MACRO(POSIX_REC_XFER_ALIGN);
120*8d67ca89SAndroid Build Coastguard Worker #endif
121*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
122*8d67ca89SAndroid Build Coastguard Worker MACRO(SYMLINK_MAX);
123*8d67ca89SAndroid Build Coastguard Worker #endif
124*8d67ca89SAndroid Build Coastguard Worker
125*8d67ca89SAndroid Build Coastguard Worker #if !defined(__BIONIC__)
126*8d67ca89SAndroid Build Coastguard Worker MACRO(BC_BASE_MAX);
127*8d67ca89SAndroid Build Coastguard Worker MACRO(BC_DIM_MAX);
128*8d67ca89SAndroid Build Coastguard Worker MACRO(BC_SCALE_MAX);
129*8d67ca89SAndroid Build Coastguard Worker MACRO(BC_STRING_MAX);
130*8d67ca89SAndroid Build Coastguard Worker MACRO(CHARCLASS_NAME_MAX);
131*8d67ca89SAndroid Build Coastguard Worker MACRO(COLL_WEIGHTS_MAX);
132*8d67ca89SAndroid Build Coastguard Worker MACRO(EXPR_NEST_MAX);
133*8d67ca89SAndroid Build Coastguard Worker MACRO(NGROUPS_MAX);
134*8d67ca89SAndroid Build Coastguard Worker MACRO(RE_DUP_MAX);
135*8d67ca89SAndroid Build Coastguard Worker #endif
136*8d67ca89SAndroid Build Coastguard Worker MACRO(LINE_MAX);
137*8d67ca89SAndroid Build Coastguard Worker
138*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_CLOCKRES_MIN, 20000000);
139*8d67ca89SAndroid Build Coastguard Worker
140*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_AIO_LISTIO_MAX, 2);
141*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_AIO_MAX, 1);
142*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_ARG_MAX, 4096);
143*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_CHILD_MAX, 25);
144*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_DELAYTIMER_MAX, 32);
145*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_HOST_NAME_MAX, 255);
146*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_LINK_MAX, 8);
147*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_LOGIN_NAME_MAX, 9);
148*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_MAX_CANON, 255);
149*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_MAX_INPUT, 255);
150*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_MQ_OPEN_MAX, 8);
151*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_MQ_PRIO_MAX, 32);
152*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_NAME_MAX, 14);
153*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_NGROUPS_MAX, 8);
154*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_OPEN_MAX, 20);
155*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_PATH_MAX, 256);
156*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_PIPE_BUF, 512);
157*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_RE_DUP_MAX, 255);
158*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_RTSIG_MAX, 8);
159*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SEM_NSEMS_MAX, 256);
160*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SEM_VALUE_MAX, 32767);
161*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SIGQUEUE_MAX, 32);
162*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SSIZE_MAX, 32767);
163*8d67ca89SAndroid Build Coastguard Worker #if !defined(__GLIBC__)
164*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SS_REPL_MAX, 4);
165*8d67ca89SAndroid Build Coastguard Worker #endif
166*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_STREAM_MAX, 8);
167*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SYMLINK_MAX, 255);
168*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_SYMLOOP_MAX, 8);
169*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_THREAD_DESTRUCTOR_ITERATIONS, 4);
170*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_THREAD_KEYS_MAX, 128);
171*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_THREAD_THREADS_MAX, 64);
172*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TIMER_MAX, 32);
173*8d67ca89SAndroid Build Coastguard Worker #if !defined(__GLIBC__)
174*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TRACE_EVENT_NAME_MAX, 30);
175*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TRACE_NAME_MAX, 8);
176*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TRACE_SYS_MAX, 8);
177*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TRACE_USER_EVENT_MAX, 32);
178*8d67ca89SAndroid Build Coastguard Worker #endif
179*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TTY_NAME_MAX, 9);
180*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX_TZNAME_MAX, 6);
181*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_BC_BASE_MAX, 99);
182*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_BC_DIM_MAX, 2048);
183*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_BC_SCALE_MAX, 99);
184*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_BC_STRING_MAX, 1000);
185*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_CHARCLASS_NAME_MAX, 14);
186*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_COLL_WEIGHTS_MAX, 2);
187*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_EXPR_NEST_MAX, 32);
188*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_LINE_MAX, 2048);
189*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_POSIX2_RE_DUP_MAX, 255);
190*8d67ca89SAndroid Build Coastguard Worker #if !defined(__GLIBC__)
191*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_XOPEN_IOV_MAX, 16);
192*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_XOPEN_NAME_MAX, 255);
193*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(_XOPEN_PATH_MAX, 1024);
194*8d67ca89SAndroid Build Coastguard Worker #endif
195*8d67ca89SAndroid Build Coastguard Worker
196*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(CHAR_BIT, 8);
197*8d67ca89SAndroid Build Coastguard Worker MACRO(CHAR_MAX);
198*8d67ca89SAndroid Build Coastguard Worker MACRO(CHAR_MIN);
199*8d67ca89SAndroid Build Coastguard Worker MACRO(INT_MAX);
200*8d67ca89SAndroid Build Coastguard Worker MACRO(INT_MIN);
201*8d67ca89SAndroid Build Coastguard Worker MACRO(LLONG_MAX);
202*8d67ca89SAndroid Build Coastguard Worker MACRO(LLONG_MIN);
203*8d67ca89SAndroid Build Coastguard Worker MACRO(LONG_BIT);
204*8d67ca89SAndroid Build Coastguard Worker MACRO(LONG_MAX);
205*8d67ca89SAndroid Build Coastguard Worker MACRO(LONG_MIN);
206*8d67ca89SAndroid Build Coastguard Worker MACRO(MB_LEN_MAX);
207*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(SCHAR_MAX, 127);
208*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(SCHAR_MIN, -128);
209*8d67ca89SAndroid Build Coastguard Worker MACRO(SHRT_MAX);
210*8d67ca89SAndroid Build Coastguard Worker MACRO(SHRT_MIN);
211*8d67ca89SAndroid Build Coastguard Worker MACRO(SSIZE_MAX);
212*8d67ca89SAndroid Build Coastguard Worker MACRO_VALUE(UCHAR_MAX, 255);
213*8d67ca89SAndroid Build Coastguard Worker MACRO(UINT_MAX);
214*8d67ca89SAndroid Build Coastguard Worker MACRO(ULLONG_MAX);
215*8d67ca89SAndroid Build Coastguard Worker MACRO(ULONG_MAX);
216*8d67ca89SAndroid Build Coastguard Worker MACRO(USHRT_MAX);
217*8d67ca89SAndroid Build Coastguard Worker MACRO(WORD_BIT);
218*8d67ca89SAndroid Build Coastguard Worker
219*8d67ca89SAndroid Build Coastguard Worker MACRO(NL_ARGMAX);
220*8d67ca89SAndroid Build Coastguard Worker MACRO(NL_LANGMAX);
221*8d67ca89SAndroid Build Coastguard Worker MACRO(NL_MSGMAX);
222*8d67ca89SAndroid Build Coastguard Worker MACRO(NL_SETMAX);
223*8d67ca89SAndroid Build Coastguard Worker MACRO(NL_TEXTMAX);
224*8d67ca89SAndroid Build Coastguard Worker MACRO(NZERO);
225*8d67ca89SAndroid Build Coastguard Worker }
226