blob: 4a076bb9ab7a1f42932a62a851baac581598a09b [file] [log] [blame]
Elliott Hughes13da6002025-02-03 10:42:13 -08001// Copyright (C) 2017 The Android Open Source Project
2// SPDX-License-Identifier: BSD-2-Clause
Elliott Hughes21b56eb2017-10-20 17:57:17 -07003
4#include <limits.h>
5
6#include "header_checks.h"
7
8static void limits_h() {
9 // These are only defined if they're constants.
Colin Crossb6830ca2023-01-18 15:55:48 -080010#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070011 MACRO(AIO_LISTIO_MAX);
12 MACRO(AIO_MAX);
13#endif
Colin Crossb6830ca2023-01-18 15:55:48 -080014#if !defined(__BIONIC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070015 MACRO(AIO_PRIO_DELTA_MAX);
16#endif
17#if !defined(__BIONIC__) && !defined(__GLIBC__)
18 MACRO(ARG_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080019#endif
20#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070021 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);
Colin Crossb6830ca2023-01-18 15:55:48 -080030#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070031 MACRO(MQ_OPEN_MAX);
32#endif
33#if !defined(__BIONIC__)
34 MACRO(MQ_PRIO_MAX);
35#endif
Elliott Hughes9bb08642025-01-28 07:29:11 -080036#if defined(__BIONIC__)
37 MACRO(NSIG_MAX);
38#endif
Colin Crossb6830ca2023-01-18 15:55:48 -080039#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070040 MACRO(OPEN_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080041#endif
42#if !defined(__BIONIC__) && !defined(__GLIBC__)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070043 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
Colin Crossb6830ca2023-01-18 15:55:48 -080051#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070052 MACRO(PTHREAD_THREADS_MAX);
53#endif
Colin Crossb6830ca2023-01-18 15:55:48 -080054#if !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070055 MACRO(RTSIG_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080056#endif
Elliott Hughes21b56eb2017-10-20 17:57:17 -070057#if !defined(__BIONIC__) && !defined(__GLIBC__)
58 MACRO(SEM_NSEMS_MAX);
59#endif
60 MACRO(SEM_VALUE_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080061#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070062 MACRO(SIGQUEUE_MAX);
63 MACRO(SS_REPL_MAX);
64 MACRO(STREAM_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080065#endif
66#if !defined(__BIONIC__) && !defined(__GLIBC__)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070067 MACRO(SYMLOOP_MAX);
Colin Crossb6830ca2023-01-18 15:55:48 -080068#endif
69#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070070 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);
Colin Crossb6830ca2023-01-18 15:55:48 -080081#endif
82#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070083 MACRO(LINK_MAX);
84#endif
Colin Crossb6830ca2023-01-18 15:55:48 -080085#if !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -070086 MACRO(MAX_CANON);
87 MACRO(MAX_INPUT);
Colin Crossb6830ca2023-01-18 15:55:48 -080088#endif
Elliott Hughes21b56eb2017-10-20 17:57:17 -070089 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
Colin Crossb6830ca2023-01-18 15:55:48 -080099#if !defined(__BIONIC__) && !defined(__GLIBC__) && !defined(ANDROID_HOST_MUSL)
Elliott Hughes21b56eb2017-10-20 17:57:17 -0700100 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);
Elliott Hughes21b56eb2017-10-20 17:57:17 -0700111 MACRO(NGROUPS_MAX);
112 MACRO(RE_DUP_MAX);
113#endif
Elliott Hughesb266f652024-04-09 15:41:10 +0000114 MACRO(LINE_MAX);
Elliott Hughes21b56eb2017-10-20 17:57:17 -0700115
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}