1412042e2SAndrew Turner /*- 2412042e2SAndrew Turner * Copyright (c) 2001, 2002 Mike Barcroft <mike@FreeBSD.org> 3412042e2SAndrew Turner * Copyright (c) 2001 The NetBSD Foundation, Inc. 4412042e2SAndrew Turner * All rights reserved. 5412042e2SAndrew Turner * 6412042e2SAndrew Turner * This code is derived from software contributed to The NetBSD Foundation 7412042e2SAndrew Turner * by Klaus Klein. 8412042e2SAndrew Turner * 9412042e2SAndrew Turner * Redistribution and use in source and binary forms, with or without 10412042e2SAndrew Turner * modification, are permitted provided that the following conditions 11412042e2SAndrew Turner * are met: 12412042e2SAndrew Turner * 1. Redistributions of source code must retain the above copyright 13412042e2SAndrew Turner * notice, this list of conditions and the following disclaimer. 14412042e2SAndrew Turner * 2. Redistributions in binary form must reproduce the above copyright 15412042e2SAndrew Turner * notice, this list of conditions and the following disclaimer in the 16412042e2SAndrew Turner * documentation and/or other materials provided with the distribution. 17412042e2SAndrew Turner * 18412042e2SAndrew Turner * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19412042e2SAndrew Turner * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20412042e2SAndrew Turner * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21412042e2SAndrew Turner * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22412042e2SAndrew Turner * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23412042e2SAndrew Turner * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24412042e2SAndrew Turner * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25412042e2SAndrew Turner * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26412042e2SAndrew Turner * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27412042e2SAndrew Turner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28412042e2SAndrew Turner * POSSIBILITY OF SUCH DAMAGE. 29412042e2SAndrew Turner */ 30412042e2SAndrew Turner 31*d5d97bedSMike Karels #ifdef __arm__ 32*d5d97bedSMike Karels #include <arm/_stdint.h> 33*d5d97bedSMike Karels #else /* !__arm__ */ 34*d5d97bedSMike Karels 35412042e2SAndrew Turner #ifndef _MACHINE__STDINT_H_ 36412042e2SAndrew Turner #define _MACHINE__STDINT_H_ 37412042e2SAndrew Turner 38412042e2SAndrew Turner #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) 39412042e2SAndrew Turner 40412042e2SAndrew Turner #define INT8_C(c) (c) 41412042e2SAndrew Turner #define INT16_C(c) (c) 42412042e2SAndrew Turner #define INT32_C(c) (c) 43412042e2SAndrew Turner #define INT64_C(c) (c ## L) 44412042e2SAndrew Turner 45412042e2SAndrew Turner #define UINT8_C(c) (c) 46412042e2SAndrew Turner #define UINT16_C(c) (c) 47412042e2SAndrew Turner #define UINT32_C(c) (c ## U) 48412042e2SAndrew Turner #define UINT64_C(c) (c ## UL) 49412042e2SAndrew Turner 50412042e2SAndrew Turner #define INTMAX_C(c) INT64_C(c) 51412042e2SAndrew Turner #define UINTMAX_C(c) UINT64_C(c) 52412042e2SAndrew Turner 53412042e2SAndrew Turner #endif /* !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) */ 54412042e2SAndrew Turner 55412042e2SAndrew Turner #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) 56412042e2SAndrew Turner 57412042e2SAndrew Turner /* 58412042e2SAndrew Turner * ISO/IEC 9899:1999 59412042e2SAndrew Turner * 7.18.2.1 Limits of exact-width integer types 60412042e2SAndrew Turner */ 61412042e2SAndrew Turner /* Minimum values of exact-width signed integer types. */ 62412042e2SAndrew Turner #define INT8_MIN (-0x7f-1) 63412042e2SAndrew Turner #define INT16_MIN (-0x7fff-1) 64412042e2SAndrew Turner #define INT32_MIN (-0x7fffffff-1) 65412042e2SAndrew Turner #define INT64_MIN (-0x7fffffffffffffffL-1) 66412042e2SAndrew Turner 67412042e2SAndrew Turner /* Maximum values of exact-width signed integer types. */ 68412042e2SAndrew Turner #define INT8_MAX 0x7f 69412042e2SAndrew Turner #define INT16_MAX 0x7fff 70412042e2SAndrew Turner #define INT32_MAX 0x7fffffff 71412042e2SAndrew Turner #define INT64_MAX 0x7fffffffffffffffL 72412042e2SAndrew Turner 73412042e2SAndrew Turner /* Maximum values of exact-width unsigned integer types. */ 74412042e2SAndrew Turner #define UINT8_MAX 0xff 75412042e2SAndrew Turner #define UINT16_MAX 0xffff 76412042e2SAndrew Turner #define UINT32_MAX 0xffffffffU 77412042e2SAndrew Turner #define UINT64_MAX 0xffffffffffffffffUL 78412042e2SAndrew Turner 79412042e2SAndrew Turner /* 80412042e2SAndrew Turner * ISO/IEC 9899:1999 81412042e2SAndrew Turner * 7.18.2.2 Limits of minimum-width integer types 82412042e2SAndrew Turner */ 83412042e2SAndrew Turner /* Minimum values of minimum-width signed integer types. */ 84412042e2SAndrew Turner #define INT_LEAST8_MIN INT8_MIN 85412042e2SAndrew Turner #define INT_LEAST16_MIN INT16_MIN 86412042e2SAndrew Turner #define INT_LEAST32_MIN INT32_MIN 87412042e2SAndrew Turner #define INT_LEAST64_MIN INT64_MIN 88412042e2SAndrew Turner 89412042e2SAndrew Turner /* Maximum values of minimum-width signed integer types. */ 90412042e2SAndrew Turner #define INT_LEAST8_MAX INT8_MAX 91412042e2SAndrew Turner #define INT_LEAST16_MAX INT16_MAX 92412042e2SAndrew Turner #define INT_LEAST32_MAX INT32_MAX 93412042e2SAndrew Turner #define INT_LEAST64_MAX INT64_MAX 94412042e2SAndrew Turner 95412042e2SAndrew Turner /* Maximum values of minimum-width unsigned integer types. */ 96412042e2SAndrew Turner #define UINT_LEAST8_MAX UINT8_MAX 97412042e2SAndrew Turner #define UINT_LEAST16_MAX UINT16_MAX 98412042e2SAndrew Turner #define UINT_LEAST32_MAX UINT32_MAX 99412042e2SAndrew Turner #define UINT_LEAST64_MAX UINT64_MAX 100412042e2SAndrew Turner 101412042e2SAndrew Turner /* 102412042e2SAndrew Turner * ISO/IEC 9899:1999 103412042e2SAndrew Turner * 7.18.2.3 Limits of fastest minimum-width integer types 104412042e2SAndrew Turner */ 105412042e2SAndrew Turner /* Minimum values of fastest minimum-width signed integer types. */ 106412042e2SAndrew Turner #define INT_FAST8_MIN INT32_MIN 107412042e2SAndrew Turner #define INT_FAST16_MIN INT32_MIN 108412042e2SAndrew Turner #define INT_FAST32_MIN INT32_MIN 109412042e2SAndrew Turner #define INT_FAST64_MIN INT64_MIN 110412042e2SAndrew Turner 111412042e2SAndrew Turner /* Maximum values of fastest minimum-width signed integer types. */ 112412042e2SAndrew Turner #define INT_FAST8_MAX INT32_MAX 113412042e2SAndrew Turner #define INT_FAST16_MAX INT32_MAX 114412042e2SAndrew Turner #define INT_FAST32_MAX INT32_MAX 115412042e2SAndrew Turner #define INT_FAST64_MAX INT64_MAX 116412042e2SAndrew Turner 117412042e2SAndrew Turner /* Maximum values of fastest minimum-width unsigned integer types. */ 118412042e2SAndrew Turner #define UINT_FAST8_MAX UINT32_MAX 119412042e2SAndrew Turner #define UINT_FAST16_MAX UINT32_MAX 120412042e2SAndrew Turner #define UINT_FAST32_MAX UINT32_MAX 121412042e2SAndrew Turner #define UINT_FAST64_MAX UINT64_MAX 122412042e2SAndrew Turner 123412042e2SAndrew Turner /* 124412042e2SAndrew Turner * ISO/IEC 9899:1999 125412042e2SAndrew Turner * 7.18.2.4 Limits of integer types capable of holding object pointers 126412042e2SAndrew Turner */ 127412042e2SAndrew Turner #define INTPTR_MIN INT64_MIN 128412042e2SAndrew Turner #define INTPTR_MAX INT64_MAX 129412042e2SAndrew Turner #define UINTPTR_MAX UINT64_MAX 130412042e2SAndrew Turner 131412042e2SAndrew Turner /* 132412042e2SAndrew Turner * ISO/IEC 9899:1999 133412042e2SAndrew Turner * 7.18.2.5 Limits of greatest-width integer types 134412042e2SAndrew Turner */ 135412042e2SAndrew Turner #define INTMAX_MIN INT64_MIN 136412042e2SAndrew Turner #define INTMAX_MAX INT64_MAX 137412042e2SAndrew Turner #define UINTMAX_MAX UINT64_MAX 138412042e2SAndrew Turner 139412042e2SAndrew Turner /* 140412042e2SAndrew Turner * ISO/IEC 9899:1999 141412042e2SAndrew Turner * 7.18.3 Limits of other integer types 142412042e2SAndrew Turner */ 143412042e2SAndrew Turner /* Limits of ptrdiff_t. */ 144412042e2SAndrew Turner #define PTRDIFF_MIN INT64_MIN 145412042e2SAndrew Turner #define PTRDIFF_MAX INT64_MAX 146412042e2SAndrew Turner 147412042e2SAndrew Turner /* Limits of sig_atomic_t. */ 1483d2837f3SBrooks Davis #define SIG_ATOMIC_MIN INT64_MIN 1493d2837f3SBrooks Davis #define SIG_ATOMIC_MAX INT64_MAX 150412042e2SAndrew Turner 151412042e2SAndrew Turner /* Limit of size_t. */ 152412042e2SAndrew Turner #define SIZE_MAX UINT64_MAX 153412042e2SAndrew Turner 154412042e2SAndrew Turner /* Limits of wint_t. */ 155412042e2SAndrew Turner #define WINT_MIN INT32_MIN 156412042e2SAndrew Turner #define WINT_MAX INT32_MAX 157412042e2SAndrew Turner 158412042e2SAndrew Turner #endif /* !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) */ 159412042e2SAndrew Turner 160412042e2SAndrew Turner #endif /* !_MACHINE__STDINT_H_ */ 161*d5d97bedSMike Karels 162*d5d97bedSMike Karels #endif /* !__arm__ */ 163