_limits.h (0ac2d551f20a8769869f61ebfe742fd55cef70b9) _limits.h (49545b3891a707a543faab07822d56d86c4ee73c)
1/*
2 * Copyright (c) 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 86 unchanged lines hidden (view full) ---

95
96#define OFF_MAX LLONG_MAX /* max value for a off_t */
97#define OFF_MIN LLONG_MIN /* min value for a off_t */
98
99/* Quads and long longs are the same size. Ensure they stay in sync. */
100#define UQUAD_MAX ULLONG_MAX /* max value for a uquad_t */
101#define QUAD_MAX LLONG_MAX /* max value for a quad_t */
102#define QUAD_MIN LLONG_MIN /* min value for a quad_t */
1/*
2 * Copyright (c) 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 86 unchanged lines hidden (view full) ---

95
96#define OFF_MAX LLONG_MAX /* max value for a off_t */
97#define OFF_MIN LLONG_MIN /* min value for a off_t */
98
99/* Quads and long longs are the same size. Ensure they stay in sync. */
100#define UQUAD_MAX ULLONG_MAX /* max value for a uquad_t */
101#define QUAD_MAX LLONG_MAX /* max value for a quad_t */
102#define QUAD_MIN LLONG_MIN /* min value for a quad_t */
103
104#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
105/*
106 * ISO/IEC 9899:1999
107 * 7.18.2.1 Limits of exact-width integer types
108 */
109/* Minimum values of exact-width signed integer types. */
110#define INT8_MIN (-0x7f-1)
111#define INT16_MIN (-0x7fff-1)
112#define INT32_MIN (-0x7fffffff-1)
113#define INT64_MIN (-0x7fffffffffffffffLL-1)
114
115/* Maximum values of exact-width signed integer types. */
116#define INT8_MAX 0x7f
117#define INT16_MAX 0x7fff
118#define INT32_MAX 0x7fffffff
119#define INT64_MAX 0x7fffffffffffffffLL
120
121/* Maximum values of exact-width unsigned integer types. */
122#define UINT8_MAX 0xff
123#define UINT16_MAX 0xffff
124#define UINT32_MAX 0xffffffffU
125#define UINT64_MAX 0xffffffffffffffffULL
126
127/*
128 * ISO/IEC 9899:1999
129 * 7.18.2.2 Limits of minimum-width integer types
130 */
131/* Minimum values of minimum-width signed integer types. */
132#define INT_LEAST8_MIN SCHAR_MIN
133#define INT_LEAST16_MIN SHRT_MIN
134#define INT_LEAST32_MIN INT_MIN
135#define INT_LEAST64_MIN LLONG_MIN
136
137/* Maximum values of minimum-width signed integer types. */
138#define INT_LEAST8_MAX SCHAR_MAX
139#define INT_LEAST16_MAX SHRT_MAX
140#define INT_LEAST32_MAX INT_MAX
141#define INT_LEAST64_MAX LLONG_MAX
142
143/* Maximum values of minimum-width unsigned integer types. */
144#define UINT_LEAST8_MAX UCHAR_MAX
145#define UINT_LEAST16_MAX USHRT_MAX
146#define UINT_LEAST32_MAX UINT_MAX
147#define UINT_LEAST64_MAX ULLONG_MAX
148
149/*
150 * ISO/IEC 9899:1999
151 * 7.18.2.3 Limits of fastest minimum-width integer types
152 */
153/* Minimum values of fastest minimum-width signed integer types. */
154#define INT_FAST8_MIN INT_MIN
155#define INT_FAST16_MIN INT_MIN
156#define INT_FAST32_MIN INT_MIN
157#define INT_FAST64_MIN LLONG_MIN
158
159/* Maximum values of fastest minimum-width signed integer types. */
160#define INT_FAST8_MAX INT_MAX
161#define INT_FAST16_MAX INT_MAX
162#define INT_FAST32_MAX INT_MAX
163#define INT_FAST64_MAX LLONG_MAX
164
165/* Maximum values of fastest minimum-width unsigned integer types. */
166#define UINT_FAST8_MAX UINT_MAX
167#define UINT_FAST16_MAX UINT_MAX
168#define UINT_FAST32_MAX UINT_MAX
169#define UINT_FAST64_MAX ULLONG_MAX
170
171/*
172 * ISO/IEC 9899:1999
173 * 7.18.2.4 Limits of integer types capable of holding object pointers
174 */
175#define INTPTR_MIN INT_MIN
176#define INTPTR_MAX INT_MAX
177#define UINTPTR_MAX UINT_MAX
178
179/*
180 * ISO/IEC 9899:1999
181 * 7.18.2.5 Limits of greatest-width integer types
182 */
183#define INTMAX_MIN LLONG_MIN
184#define INTMAX_MAX LLONG_MAX
185#define UINTMAX_MAX ULLONG_MAX
186
187/*
188 * ISO/IEC 9899:1999
189 * 7.18.3 Limits of other integer types
190 */
191/* Limits of ptrdiff_t. */
192#define PTRDIFF_MIN INT_MIN
193#define PTRDIFF_MAX INT_MAX
194
195/* Limits of sig_atomic_t. */
196#define SIG_ATOMIC_MIN INT_MIN
197#define SIG_ATOMIC_MAX INT_MAX
198
199/* Limit of size_t. */
200#define SIZE_MAX UINT_MAX
201
202#ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
203/* Limits of wchar_t. */
204#define WCHAR_MIN INT_MIN
205#define WCHAR_MAX INT_MAX
206
207/* Limits of wint_t. */
208#define WINT_MIN INT_MIN
209#define WINT_MAX INT_MAX
210#endif
211#endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */
212#endif /* !_POSIX_SOURCE */
213#endif /* !_ANSI_SOURCE */
214
215#endif /* !_MACHINE_LIMITS_H_ */
103#endif /* !_POSIX_SOURCE */
104#endif /* !_ANSI_SOURCE */
105
106#endif /* !_MACHINE_LIMITS_H_ */