Following sys/i386/include/ansi.h rev 1.33, add additional integer types

in <machine/ansi.h> and that are required by <sys/stdint.h>.
This commit is contained in:
David E. O'Brien 2001-12-09 19:38:21 +00:00
parent 72efeef144
commit e45ee973f9

View File

@ -37,7 +37,6 @@
#ifndef _MACHINE_ANSI_H_
#define _MACHINE_ANSI_H_
/*
* Types which are fundamental to the implementation and may appear in
* more than one standard header are defined here. Standard headers
@ -47,16 +46,16 @@
* #undef _BSD_SIZE_T_
* #endif
*/
#define _BSD_CLOCK_T_ int /* clock() */
#define _BSD_CLOCKID_T_ int /* clockid_t */
#define _BSD_CLOCK_T_ unsigned long /* clock()... */
#define _BSD_CLOCKID_T_ int /* clock_gettime()... */
#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */
#define _BSD_PTRDIFF_T_ int /* ptr1 - ptr2 */
#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t (see below) */
#define _BSD_SIZE_T_ unsigned int /* sizeof() */
#define _BSD_SOCKLEN_T_ __uint32_t /* socklen_t (duh) */
#define _BSD_SSIZE_T_ long /* byte count or error */
#define _BSD_TIME_T_ int /* time() */
#define _BSD_TIMER_T_ int /* timer_t */
#define _BSD_SSIZE_T_ int /* byte count or error */
#define _BSD_TIME_T_ int /* time()... */
#define _BSD_TIMER_T_ int /* timer_gettime()... */
#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t (see below) */
#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t (see below) */
@ -115,6 +114,23 @@ typedef _BSD_VA_LIST_ __gnuc_va_list; /* compatibility w/GNU headers*/
*/
#define __offsetof(type, field) ((size_t)(&((type *)0)->field))
/*
* XXX this paragraph is very out of date.
* Typedefs for especially magic types. #define's wouldn't work in the
* __GNUC__ case, since __attribute__(()) only works in certain contexts.
* This is not in <machine/types.h>, since that has too much namespace
* pollution for inclusion in ANSI headers, yet we need __int64_t in at
* least <stdio.h>.
*/
#ifdef __GNUC__
typedef int __attribute__((__mode__(__DI__))) __int64_t;
typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t;
#else
/* LONGLONG */
typedef long long __int64_t;
/* LONGLONG */
typedef unsigned long long __uint64_t;
#endif
/*
* Internal names for basic integral types. Omit the typedef if
* not possible for a machine/compiler combination.
@ -125,12 +141,44 @@ typedef short __int16_t;
typedef unsigned short __uint16_t;
typedef int __int32_t;
typedef unsigned int __uint32_t;
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
typedef int __intptr_t;
typedef unsigned int __uintptr_t;
typedef __signed char __int_least8_t;
typedef unsigned char __uint_least8_t;
typedef short __int_least16_t;
typedef unsigned short __uint_least16_t;
typedef int __int_least32_t;
typedef unsigned int __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;
typedef int __int_fast8_t;
typedef unsigned int __uint_fast8_t;
typedef int __int_fast16_t;
typedef unsigned int __uint_fast16_t;
typedef int __int_fast32_t;
typedef unsigned int __uint_fast32_t;
typedef __int64_t __int_fast64_t;
typedef __uint64_t __uint_fast64_t;
typedef __int64_t __intmax_t;
typedef __uint64_t __uintmax_t;
#define __INT8_C(c) (c)
#define __INT16_C(c) (c)
#define __INT32_C(c) (c)
#define __INT64_C(c) (c ## LL)
#define __UINT8_C(c) (c)
#define __UINT16_C(c) (c)
#define __UINT32_C(c) (c ## U)
#define __UINT64_C(c) (c ## ULL)
#define __INTMAX_C(c) (c ## LL)
#define __UINTMAX_C(c) (c ## ULL)
/*
* mbstate_t is an opaque object to keep conversion state, during multibyte
* stream conversions. The content must not be referenced by user programs.
@ -138,6 +186,6 @@ typedef unsigned int __uintptr_t;
typedef union {
char __mbstate8[128];
__int64_t _mbstateL; /* for alignment */
} __mbstate_t;
} __mbstate_t;
#endif /* _MACHINE_ANSI_H_ */