2007-04-24 19:42:24 +00:00
|
|
|
/*
|
2007-04-27 22:42:02 +00:00
|
|
|
* stdint.h - standard types
|
|
|
|
*/
|
|
|
|
/* $Id$ */
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
#ifndef _STDINT_H
|
|
|
|
#define _STDINT_H
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
/* int8_t is always a char, on all ACK platforms. */
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
typedef signed char int8_t;
|
|
|
|
typedef unsigned char uint8_t;
|
2007-04-24 19:42:24 +00:00
|
|
|
#define INT8_MAX 127
|
|
|
|
#define INT8_MIN (-128)
|
|
|
|
#define UINT8_MAX 255
|
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
/* int16_t is always a short, on all ACK platforms. */
|
|
|
|
|
|
|
|
typedef signed short int16_t;
|
|
|
|
typedef unsigned short uint16_t;
|
2007-04-24 19:42:24 +00:00
|
|
|
#define INT16_MAX 32767
|
|
|
|
#define INT16_MIN (-32768)
|
|
|
|
#define UINT16_MAX 65535
|
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
/* int32_t is either a int or a long. */
|
|
|
|
|
|
|
|
#if _EM_WSIZE == 4
|
|
|
|
typedef signed int int32_t;
|
2013-05-24 23:33:01 +00:00
|
|
|
typedef unsigned int uint32_t;
|
2019-10-05 04:56:43 +00:00
|
|
|
#define INT32_MAX 2147483647
|
|
|
|
#define INT32_MIN (-2147483648)
|
|
|
|
#define UINT32_MAX 4294967295U
|
2007-04-27 22:42:02 +00:00
|
|
|
#else
|
|
|
|
typedef signed long int32_t;
|
|
|
|
typedef unsigned long uint32_t;
|
2019-10-05 04:56:43 +00:00
|
|
|
#define INT32_MAX 2147483647L
|
|
|
|
#define INT32_MIN (-2147483648L)
|
|
|
|
#define UINT32_MAX 4294967295UL
|
2007-04-27 22:42:02 +00:00
|
|
|
#endif
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2019-10-05 04:56:43 +00:00
|
|
|
/* We only get int64_t if longs or long longs are 8 bytes. */
|
|
|
|
|
|
|
|
#if _EM_LSIZE == 8
|
|
|
|
typedef signed long int64_t;
|
|
|
|
typedef unsigned long uint64_t;
|
|
|
|
#define INT64_MAX 9223372036854775807L
|
|
|
|
#define INT64_MIN (-9223372036854775808L)
|
|
|
|
#define UINT64_MAX 18446744073709551615UL
|
2007-04-27 22:42:02 +00:00
|
|
|
|
2019-10-05 04:56:43 +00:00
|
|
|
typedef int64_t intmax_t;
|
|
|
|
typedef uint64_t uintmax_t;
|
|
|
|
#elif _EM_LLSIZE == 8
|
2019-09-12 17:40:07 +00:00
|
|
|
typedef signed long long int64_t;
|
|
|
|
typedef unsigned long long uint64_t;
|
|
|
|
#define INT64_MAX 9223372036854775807LL
|
|
|
|
#define INT64_MIN (-9223372036854775808LL)
|
|
|
|
#define UINT64_MAX 18446744073709551615ULL
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
typedef int64_t intmax_t;
|
|
|
|
typedef uint64_t uintmax_t;
|
|
|
|
#else
|
|
|
|
typedef int32_t intmax_t;
|
|
|
|
typedef uint32_t uintmax_t;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Pointers can be either 16 or 32 bits. */
|
|
|
|
|
|
|
|
#if _EM_PSIZE == 2
|
|
|
|
typedef int16_t intptr_t;
|
|
|
|
typedef uint16_t uintptr_t;
|
|
|
|
typedef int16_t ptrdiff_t;
|
|
|
|
typedef uint16_t size_t;
|
2018-06-23 09:46:55 +00:00
|
|
|
typedef int16_t ssize_t;
|
2007-04-27 22:42:02 +00:00
|
|
|
#define INTPTR_MAX 32767
|
|
|
|
#define INTPTR_MIN (-32768)
|
|
|
|
#define UINTPTR_MAX 65535
|
|
|
|
#else
|
|
|
|
typedef int32_t intptr_t;
|
|
|
|
typedef uint32_t uintptr_t;
|
|
|
|
typedef int32_t ptrdiff_t;
|
|
|
|
typedef uint32_t size_t;
|
2018-06-23 09:46:55 +00:00
|
|
|
typedef int32_t ssize_t;
|
2007-04-24 19:42:24 +00:00
|
|
|
#define INTPTR_MAX 2147483647
|
|
|
|
#define INTPTR_MIN (-2147483647)
|
|
|
|
#define UINTPTR_MAX 4294967295
|
2007-04-27 22:42:02 +00:00
|
|
|
#endif
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
/* Now those have been defined, these are always the same. */
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
#define PTRDIFF_MAX INTPTR_MAX
|
|
|
|
#define PTRDIFF_MIN INTPTR_MIN
|
|
|
|
#define SIZE_MAX UINTPTR_MAX
|
2007-04-24 19:42:24 +00:00
|
|
|
|
2007-04-27 22:42:02 +00:00
|
|
|
#endif
|