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