123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- #ifndef __c_stdint_h
- #define __c_stdint_h
- #include "c_types.h"
- #if 0
- /*
- * Depending on compiler version __int64 or __INT64_TYPE__ should be defined.
- */
- #ifndef __int64
- #ifdef __INT64_TYPE__
- #define __int64 __INT64_TYPE__
- #else
- #define __int64 long long
- #endif
- /* On some architectures neither of these may be defined - if so, fall
- through and error out if used. */
- #endif
- #ifndef __STDINT_DECLS
- #define __STDINT_DECLS
- #undef __CLIBNS
- #ifdef __cplusplus
- namespace std {
- #define __CLIBNS std::
- extern "C" {
- #else
- #define __CLIBNS
- #endif /* __cplusplus */
- /*
- * 'signed' is redundant below, except for 'signed char' and if
- * the typedef is used to declare a bitfield.
- * '__int64' is used instead of 'long long' so that this header
- * can be used in --strict mode.
- */
- /* 7.18.1.1 */
- /* exact-width signed integer types */
- typedef signed char int8_t;
- typedef signed short int int16_t;
- typedef signed int int32_t;
- typedef signed __int64 int64_t;
- /* exact-width unsigned integer types */
- typedef unsigned char uint8_t;
- typedef unsigned short int uint16_t;
- typedef unsigned int uint32_t;
- typedef unsigned __int64 uint64_t;
- /* 7.18.1.2 */
- /* smallest type of at least n bits */
- /* minimum-width signed integer types */
- typedef signed char int_least8_t;
- typedef signed short int int_least16_t;
- typedef signed int int_least32_t;
- typedef signed __int64 int_least64_t;
- /* minimum-width unsigned integer types */
- typedef unsigned char uint_least8_t;
- typedef unsigned short int uint_least16_t;
- typedef unsigned int uint_least32_t;
- typedef unsigned __int64 uint_least64_t;
- /* 7.18.1.3 */
- /* fastest minimum-width signed integer types */
- typedef signed int int_fast8_t;
- typedef signed int int_fast16_t;
- typedef signed int int_fast32_t;
- typedef signed __int64 int_fast64_t;
- /* fastest minimum-width unsigned integer types */
- typedef unsigned int uint_fast8_t;
- typedef unsigned int uint_fast16_t;
- typedef unsigned int uint_fast32_t;
- typedef unsigned __int64 uint_fast64_t;
- /* 7.18.1.4 integer types capable of holding object pointers */
- typedef signed int intptr_t;
- typedef unsigned int uintptr_t;
- /* 7.18.1.5 greatest-width integer types */
- typedef signed __int64 intmax_t;
- typedef unsigned __int64 uintmax_t;
- #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
- /* 7.18.2.1 */
- /* minimum values of exact-width signed integer types */
- #define INT8_MIN -128
- #define INT16_MIN -32768
- #define INT32_MIN (~0x7fffffff) /* -2147483648 is unsigned */
- #define INT64_MIN __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned */
- /* maximum values of exact-width signed integer types */
- #define INT8_MAX 127
- #define INT16_MAX 32767
- #define INT32_MAX 2147483647
- #define INT64_MAX __ESCAPE__(9223372036854775807ll)
- /* maximum values of exact-width unsigned integer types */
- #define UINT8_MAX 255
- #define UINT16_MAX 65535
- #define UINT32_MAX 4294967295u
- #define UINT64_MAX __ESCAPE__(18446744073709551615ull)
- /* 7.18.2.2 */
- /* minimum values of minimum-width signed integer types */
- #define INT_LEAST8_MIN -128
- #define INT_LEAST16_MIN -32768
- #define INT_LEAST32_MIN (~0x7fffffff)
- #define INT_LEAST64_MIN __ESCAPE__(~0x7fffffffffffffffll)
- /* maximum values of minimum-width signed integer types */
- #define INT_LEAST8_MAX 127
- #define INT_LEAST16_MAX 32767
- #define INT_LEAST32_MAX 2147483647
- #define INT_LEAST64_MAX __ESCAPE__(9223372036854775807ll)
- /* maximum values of minimum-width unsigned integer types */
- #define UINT_LEAST8_MAX 255
- #define UINT_LEAST16_MAX 65535
- #define UINT_LEAST32_MAX 4294967295u
- #define UINT_LEAST64_MAX __ESCAPE__(18446744073709551615ull)
- /* 7.18.2.3 */
- /* minimum values of fastest minimum-width signed integer types */
- #define INT_FAST8_MIN (~0x7fffffff)
- #define INT_FAST16_MIN (~0x7fffffff)
- #define INT_FAST32_MIN (~0x7fffffff)
- #define INT_FAST64_MIN __ESCAPE__(~0x7fffffffffffffffll)
- /* maximum values of fastest minimum-width signed integer types */
- #define INT_FAST8_MAX 2147483647
- #define INT_FAST16_MAX 2147483647
- #define INT_FAST32_MAX 2147483647
- #define INT_FAST64_MAX __ESCAPE__(9223372036854775807ll)
- /* maximum values of fastest minimum-width unsigned integer types */
- #define UINT_FAST8_MAX 4294967295u
- #define UINT_FAST16_MAX 4294967295u
- #define UINT_FAST32_MAX 4294967295u
- #define UINT_FAST64_MAX __ESCAPE__(18446744073709551615ull)
- /* 7.18.2.4 */
- /* minimum value of pointer-holding signed integer type */
- #define INTPTR_MIN (~0x7fffffff)
- /* maximum value of pointer-holding signed integer type */
- #define INTPTR_MAX 2147483647
- /* maximum value of pointer-holding unsigned integer type */
- #define UINTPTR_MAX 4294967295u
- /* 7.18.2.5 */
- /* minimum value of greatest-width signed integer type */
- #define INTMAX_MIN __ESCAPE__(~0x7fffffffffffffffll)
- /* maximum value of greatest-width signed integer type */
- #define INTMAX_MAX __ESCAPE__(9223372036854775807ll)
- /* maximum value of greatest-width unsigned integer type */
- #define UINTMAX_MAX __ESCAPE__(18446744073709551615ull)
- /* 7.18.3 */
- /* limits of ptrdiff_t */
- #define PTRDIFF_MIN (~0x7fffffff)
- #define PTRDIFF_MAX 2147483647
- /* limits of sig_atomic_t */
- #define SIG_ATOMIC_MIN (~0x7fffffff)
- #define SIG_ATOMIC_MAX 2147483647
- /* limit of size_t */
- #define SIZE_MAX 4294967295u
- /* limits of wchar_t */
- /* NB we have to undef and redef because they're defined in both
- * stdint.h and wchar.h */
- #undef WCHAR_MIN
- #undef WCHAR_MAX
- #if defined(__WCHAR32) || (defined(__ARM_SIZEOF_WCHAR_T) && __ARM_SIZEOF_WCHAR_T == 4)
- #define WCHAR_MIN 0
- #define WCHAR_MAX 0xffffffffU
- #else
- #define WCHAR_MIN 0
- #define WCHAR_MAX 65535
- #endif
- /* limits of wint_t */
- #define WINT_MIN (~0x7fffffff)
- #define WINT_MAX 2147483647
- #endif /* __STDC_LIMIT_MACROS */
- #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
- /* 7.18.4.1 macros for minimum-width integer constants */
- #define INT8_C(x) (x)
- #define INT16_C(x) (x)
- #define INT32_C(x) (x)
- #define INT64_C(x) __ESCAPE__(x ## ll)
- #define UINT8_C(x) (x ## u)
- #define UINT16_C(x) (x ## u)
- #define UINT32_C(x) (x ## u)
- #define UINT64_C(x) __ESCAPE__(x ## ull)
- /* 7.18.4.2 macros for greatest-width integer constants */
- #define INTMAX_C(x) __ESCAPE__(x ## ll)
- #define UINTMAX_C(x) __ESCAPE__(x ## ull)
- #endif /* __STDC_CONSTANT_MACROS */
- #ifdef __cplusplus
- } /* extern "C" */
- } /* namespace std */
- #endif /* __cplusplus */
- #endif /* __STDINT_DECLS */
- #ifdef __cplusplus
- #ifndef __STDINT_NO_EXPORTS
- using ::std::int8_t;
- using ::std::int16_t;
- using ::std::int32_t;
- using ::std::int64_t;
- using ::std::uint8_t;
- using ::std::uint16_t;
- using ::std::uint32_t;
- using ::std::uint64_t;
- using ::std::int_least8_t;
- using ::std::int_least16_t;
- using ::std::int_least32_t;
- using ::std::int_least64_t;
- using ::std::uint_least8_t;
- using ::std::uint_least16_t;
- using ::std::uint_least32_t;
- using ::std::uint_least64_t;
- using ::std::int_fast8_t;
- using ::std::int_fast16_t;
- using ::std::int_fast32_t;
- using ::std::int_fast64_t;
- using ::std::uint_fast8_t;
- using ::std::uint_fast16_t;
- using ::std::uint_fast32_t;
- using ::std::uint_fast64_t;
- using ::std::intptr_t;
- using ::std::uintptr_t;
- using ::std::intmax_t;
- using ::std::uintmax_t;
- #endif
- #endif /* __cplusplus */
- #endif
- #endif /* __c_stdint_h */
- /* end of c_stdint.h */
|