diff options
-rw-r--r-- | sys/alpha/include/ansi.h | 130 | ||||
-rw-r--r-- | sys/arm/include/ansi.h | 117 | ||||
-rw-r--r-- | sys/i386/include/ansi.h | 102 | ||||
-rw-r--r-- | sys/ia64/include/ansi.h | 110 | ||||
-rw-r--r-- | sys/powerpc/include/ansi.h | 125 |
5 files changed, 293 insertions, 291 deletions
diff --git a/sys/alpha/include/ansi.h b/sys/alpha/include/ansi.h index b6a842d..e9f14d6 100644 --- a/sys/alpha/include/ansi.h +++ b/sys/alpha/include/ansi.h @@ -39,54 +39,26 @@ #define _MACHINE_ANSI_H_ /* - * Internal names for basic integral types. Omit the typedef if - * not possible for a machine/compiler combination. - */ -typedef __signed char __int8_t; -typedef unsigned char __uint8_t; -typedef short __int16_t; -typedef unsigned short __uint16_t; -typedef int __int32_t; -typedef unsigned int __uint32_t; -typedef long __int64_t; -typedef unsigned long __uint64_t; - -typedef long __intptr_t; -typedef unsigned long __uintptr_t; - -/* - * We define this here since both <stddef.h> and <sys/types.h> needs it. - */ -#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) - -/* * Types which are fundamental to the implementation and may appear in * more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; + * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ -#define _BSD_CLOCK_T_ int /* clock() */ -#define _BSD_CLOCKID_T_ int /* clockid_t */ -#define _BSD_PTRDIFF_T_ long /* ptr1 - ptr2 */ -#define _BSD_SIZE_T_ unsigned long /* sizeof() */ -#define _BSD_SOCKLEN_T_ __uint32_t -#define _BSD_SSIZE_T_ long /* byte count or error */ -#define _BSD_TIME_T_ int /* time() */ -#define _BSD_TIMER_T_ int /* timer_t */ - -#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC_MINOR__ > 95) -#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */ -#else -typedef struct { - char *__base; - int __offset; - int __pad; -} __va_list; -#define _BSD_VA_LIST_ __va_list /* va_list */ -#endif /*__GNUC__*/ +#define _BSD_CLOCK_T_ int /* clock() */ +#define _BSD_CLOCKID_T_ int /* clockid_t */ +#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ +#define _BSD_PTRDIFF_T_ long /* ptr1 - ptr2 */ +#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t (see below) */ +#define _BSD_SIZE_T_ unsigned long /* sizeof() */ +#define _BSD_SOCKLEN_T_ __uint32_t +#define _BSD_SSIZE_T_ long /* byte count or error */ +#define _BSD_TIME_T_ int /* time()... */ +#define _BSD_TIMER_T_ int /* timer_t */ +#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t (see below) */ +#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t (see below) */ /* * Types which are fundamental to the implementation and must be used @@ -94,40 +66,38 @@ typedef struct { * one (perhaps nonstandard) header are defined here. Standard headers * use _BSD_XXX_T_ without undef'ing it. */ +#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ #define _BSD_OFF_T_ long /* file offset */ #define _BSD_PID_T_ int /* process [group] */ +#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95) +#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */ +#else +typedef struct { + char *__base; + int __offset; + int __pad; +} __va_list; +#define _BSD_VA_LIST_ __va_list /* va_list */ +#endif /*__GNUC__*/ + /* - * NOTE: rune_t is not covered by ANSI nor other standards, and should not - * be instantiated outside of lib/libc/locale. Use wchar_t. - * - * Runes (wchar_t) is declared to be an ``int'' instead of the more natural + * The rune type above is declared to be an ``int'' instead of the more natural * ``unsigned long'' or ``long''. Two things are happening here. It is not * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, * it looks like 10646 will be a 31 bit standard. This means that if your * ints cannot hold 32 bits, you will be in trouble. The reason an int was * chosen over a long is that the is*() and to*() routines take ints (says - * ANSI C), but they use _RUNE_T_ instead of int. By changing it here, you - * lose a bit of ANSI conformance, but your programs will still work. - * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. When wchar_t - * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains - * defined for ctype.h. - */ -#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ -#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t */ -#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t */ -#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t */ - -/* - * mbstate_t is an opaque object to keep conversion state, during multibyte - * stream conversions. The content must not be referenced by user programs. + * ANSI C), but they use _BSD_CT_RUNE_T_ instead of int. By changing it + * here, you lose a bit of ANSI conformance, but your programs will still + * work. + * + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. */ -typedef union { - char __mbstate8[128]; - __int64_t _mbstateL; /* for alignment */ - } __mbstate_t; -#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ /* * Frequencies of the clock ticks reported by clock() and times(). They @@ -142,4 +112,34 @@ typedef union { #define _BSD_CLK_TCK_ 100 #define _BSD_CLOCKS_PER_SEC_ 100 +/* + * We define this here since both <stddef.h> and <sys/types.h> needs it. + */ +#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) + +/* + * Internal names for basic integral types. Omit the typedef if + * not possible for a machine/compiler combination. + */ +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long __int64_t; +typedef unsigned long __uint64_t; + +typedef long __intptr_t; +typedef unsigned long __uintptr_t; + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + __int64_t _mbstateL; /* for alignment */ + } __mbstate_t; + #endif /* _MACHINE_ANSI_H_ */ diff --git a/sys/arm/include/ansi.h b/sys/arm/include/ansi.h index 24c3ee4..338a2ad 100644 --- a/sys/arm/include/ansi.h +++ b/sys/arm/include/ansi.h @@ -37,50 +37,28 @@ #ifndef _MACHINE_ANSI_H_ #define _MACHINE_ANSI_H_ -/* - * Internal names for basic integral types. Omit the typedef if - * not possible for a machine/compiler combination. - */ -typedef __signed char __int8_t; -typedef unsigned char __uint8_t; -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; - -/* - * We define this here since both <stddef.h> and <sys/types.h> needs it. - */ -#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) /* * Types which are fundamental to the implementation and may appear in * more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; + * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ -#define _BSD_CLOCK_T_ int /* clock() */ -#define _BSD_CLOCKID_T_ int /* clockid_t */ -#define _BSD_PTRDIFF_T_ int /* ptr1 - ptr2 */ -#define _BSD_SIZE_T_ unsigned int /* sizeof() */ -#define _BSD_SOCKLEN_T_ __uint32_t -#define _BSD_SSIZE_T_ long /* byte count or error */ -#define _BSD_TIME_T_ long /* time() */ -#define _BSD_TIMER_T_ int /* timer_t */ - -#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC_MINOR__ > 95) -#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */ -#else -#define _BSD_VA_LIST_ char * /* va_list */ -#endif /*__GNUC__*/ +#define _BSD_CLOCK_T_ int /* clock() */ +#define _BSD_CLOCKID_T_ int /* clockid_t */ +#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_ long /* time() */ +#define _BSD_TIMER_T_ int /* timer_t */ +#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t (see below) */ +#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t (see below) */ /* * Types which are fundamental to the implementation and must be used @@ -88,40 +66,33 @@ typedef unsigned int __uintptr_t; * one (perhaps nonstandard) header are defined here. Standard headers * use _BSD_XXX_T_ without undef'ing it. */ +#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ #define _BSD_OFF_T_ __int64_t /* file offset */ #define _BSD_PID_T_ int /* process [group] */ +#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95) +#define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */ +#else +#define _BSD_VA_LIST_ char * /* va_list */ +#endif /*__GNUC__*/ + /* - * NOTE: rune_t is not covered by ANSI nor other standards, and should not - * be instantiated outside of lib/libc/locale. Use wchar_t. - * - * Runes (wchar_t) is declared to be an ``int'' instead of the more natural + * The rune type above is declared to be an ``int'' instead of the more natural * ``unsigned long'' or ``long''. Two things are happening here. It is not * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, * it looks like 10646 will be a 31 bit standard. This means that if your * ints cannot hold 32 bits, you will be in trouble. The reason an int was * chosen over a long is that the is*() and to*() routines take ints (says - * ANSI C), but they use _RUNE_T_ instead of int. By changing it here, you - * lose a bit of ANSI conformance, but your programs will still work. + * ANSI C), but they use _BSD_CT_RUNE_T_ instead of int. By changing it + * here, you lose a bit of ANSI conformance, but your programs will still + * work. * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. When wchar_t - * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains - * defined for ctype.h. - */ -#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ -#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t */ -#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t */ -#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t */ - -/* - * mbstate_t is an opaque object to keep conversion state, during multibyte - * stream conversions. The content must not be referenced by user programs. + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. */ -typedef union { - char __mbstate8[128]; - __int64_t _mbstateL; /* for alignment */ - } __mbstate_t; -#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ /* * Frequencies of the clock ticks reported by clock() and times(). They @@ -136,4 +107,34 @@ typedef union { #define _BSD_CLK_TCK_ 100 #define _BSD_CLOCKS_PER_SEC_ 100 +/* + * We define this here since both <stddef.h> and <sys/types.h> needs it. + */ +#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) + +/* + * Internal names for basic integral types. Omit the typedef if + * not possible for a machine/compiler combination. + */ +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +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; + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + __int64_t _mbstateL; /* for alignment */ + } __mbstate_t; + #endif /* _MACHINE_ANSI_H_ */ diff --git a/sys/i386/include/ansi.h b/sys/i386/include/ansi.h index 8f41b26..1089ebf 100644 --- a/sys/i386/include/ansi.h +++ b/sys/i386/include/ansi.h @@ -38,54 +38,26 @@ #define _MACHINE_ANSI_H_ /* - * 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. - */ -typedef __signed char __int8_t; -typedef unsigned char __uint8_t; -typedef short __int16_t; -typedef unsigned short __uint16_t; -typedef int __int32_t; -typedef unsigned int __uint32_t; - -typedef int __intptr_t; -typedef unsigned int __uintptr_t; - -/* * Types which are fundamental to the implementation and must be declared * in more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; + * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ #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 +#define _BSD_SOCKLEN_T_ __uint32_t /* socklen_t (duh) */ #define _BSD_SSIZE_T_ int /* byte count or error */ #define _BSD_TIME_T_ long /* 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) */ /* * Types which are fundamental to the implementation and must be used @@ -93,15 +65,13 @@ typedef unsigned int __uintptr_t; * one (perhaps nonstandard) header are defined here. Standard headers * use _BSD_XXX_T_ without undef'ing it. */ +#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ #define _BSD_OFF_T_ __int64_t /* file offset */ #define _BSD_PID_T_ int /* process [group] */ #define _BSD_VA_LIST_ char * /* va_list */ /* - * NOTE: rune_t is not covered by ANSI nor other standards, and should not - * be instantiated outside of lib/libc/locale. Use wchar_t. - * - * The rune type is declared to be an ``int'' instead of the more natural + * The rune type above is declared to be an ``int'' instead of the more natural * ``unsigned long'' or ``long''. Two things are happening here. It is not * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, * it looks like 10646 will be a 31 bit standard. This means that if your @@ -111,22 +81,12 @@ typedef unsigned int __uintptr_t; * here, you lose a bit of ANSI conformance, but your programs will still * work. * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. */ -#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ -#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t */ -#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t */ -#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t */ - -/* - * mbstate_t is an opaque object to keep conversion state, during multibyte - * stream conversions. The content must not be referenced by user programs. - */ -typedef union { - char __mbstate8[128]; - __int64_t _mbstateL; /* for alignment */ - } __mbstate_t; -#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ /* * Frequencies of the clock ticks reported by clock() and times(). They @@ -146,4 +106,44 @@ typedef union { */ #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. + */ +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; + +typedef int __intptr_t; +typedef unsigned int __uintptr_t; + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + __int64_t _mbstateL; /* for alignment */ +} __mbstate_t; + #endif /* !_MACHINE_ANSI_H_ */ diff --git a/sys/ia64/include/ansi.h b/sys/ia64/include/ansi.h index 5151df5..5d8cacc 100644 --- a/sys/ia64/include/ansi.h +++ b/sys/ia64/include/ansi.h @@ -39,44 +39,26 @@ #define _MACHINE_ANSI_H_ /* - * Internal names for basic integral types. Omit the typedef if - * not possible for a machine/compiler combination. - */ -typedef __signed char __int8_t; -typedef unsigned char __uint8_t; -typedef short __int16_t; -typedef unsigned short __uint16_t; -typedef int __int32_t; -typedef unsigned int __uint32_t; -typedef long __int64_t; -typedef unsigned long __uint64_t; - -typedef long __intptr_t; -typedef unsigned long __uintptr_t; - -/* - * We define this here since both <stddef.h> and <sys/types.h> needs it. - */ -#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) - -/* * Types which are fundamental to the implementation and may appear in * more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; + * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ -#define _BSD_CLOCK_T_ int /* clock() */ -#define _BSD_CLOCKID_T_ int /* clockid_t */ -#define _BSD_PTRDIFF_T_ long /* ptr1 - ptr2 */ -#define _BSD_SIZE_T_ unsigned long /* sizeof() */ -#define _BSD_SOCKLEN_T_ __uint32_t -#define _BSD_SSIZE_T_ long /* byte count or error */ -#define _BSD_TIME_T_ int /* time() */ -#define _BSD_TIMER_T_ int /* timer_t */ -#define _BSD_VA_LIST_ __builtin_va_list /* va_list */ +#define _BSD_CLOCK_T_ int /* clock() */ +#define _BSD_CLOCKID_T_ int /* clockid_t */ +#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ +#define _BSD_PTRDIFF_T_ long /* ptr1 - ptr2 */ +#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t (see below) */ +#define _BSD_SIZE_T_ unsigned long /* sizeof() */ +#define _BSD_SOCKLEN_T_ __uint32_t +#define _BSD_SSIZE_T_ long /* byte count or error */ +#define _BSD_TIME_T_ int /* time() */ +#define _BSD_TIMER_T_ int /* timer_t */ +#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t (see below) */ +#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t (see below) */ /* * Types which are fundamental to the implementation and must be used @@ -84,42 +66,28 @@ typedef unsigned long __uintptr_t; * one (perhaps nonstandard) header are defined here. Standard headers * use _BSD_XXX_T_ without undef'ing it. */ +#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ #define _BSD_OFF_T_ long /* file offset */ #define _BSD_PID_T_ int /* process [group] */ +#define _BSD_VA_LIST_ __builtin_va_list /* va_list */ /* - * NOTE: rune_t is not covered by ANSI nor other standards, and should not - * be instantiated outside of lib/libc/locale. Use wchar_t. - * - * Runes (wchar_t) is declared to be an ``int'' instead of the more natural + * The rune type above is declared to be an ``int'' instead of the more natural * ``unsigned long'' or ``long''. Two things are happening here. It is not * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, * it looks like 10646 will be a 31 bit standard. This means that if your * ints cannot hold 32 bits, you will be in trouble. The reason an int was * chosen over a long is that the is*() and to*() routines take ints (says - * ANSI C), but they use _RUNE_T_ instead of int. By changing it here, you - * lose a bit of ANSI conformance, but your programs will still work. - * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. When wchar_t - * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains - * defined for ctype.h. + * ANSI C), but they use _BSD_CT_RUNE_T_ instead of int. By changing it + * here, you lose a bit of ANSI conformance, but your programs will still + * work. * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. */ -#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ -#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t */ -#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t */ -#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t */ - -/* - * mbstate_t is an opaque object to keep conversion state, during multibyte - * stream conversions. The content must not be referenced by user programs. - */ -typedef union { - char __mbstate8[128]; - __int64_t _mbstateL; /* for alignment */ - } __mbstate_t; -#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ /* * Frequencies of the clock ticks reported by clock() and times(). They @@ -134,4 +102,34 @@ typedef union { #define _BSD_CLK_TCK_ 100 #define _BSD_CLOCKS_PER_SEC_ 100 +/* + * We define this here since both <stddef.h> and <sys/types.h> needs it. + */ +#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) + +/* + * Internal names for basic integral types. Omit the typedef if + * not possible for a machine/compiler combination. + */ +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long __int64_t; +typedef unsigned long __uint64_t; + +typedef long __intptr_t; +typedef unsigned long __uintptr_t; + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + __int64_t _mbstateL; /* for alignment */ +} __mbstate_t; + #endif /* _MACHINE_ANSI_H_ */ diff --git a/sys/powerpc/include/ansi.h b/sys/powerpc/include/ansi.h index f5b8507..93f53f0 100644 --- a/sys/powerpc/include/ansi.h +++ b/sys/powerpc/include/ansi.h @@ -38,45 +38,38 @@ #define _MACHINE_ANSI_H_ /* - * Internal names for basic integral types. Omit the typedef if - * not possible for a machine/compiler combination. - */ -typedef __signed char __int8_t; -typedef unsigned char __uint8_t; -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; - -/* - * We define this here since both <stddef.h> and <sys/types.h> needs it. - */ -#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) - -/* * Types which are fundamental to the implementation and may appear in * more than one standard header are defined here. Standard headers * then use: * #ifdef _BSD_SIZE_T_ - * typedef _BSD_SIZE_T_ size_t; + * typedef _BSD_SIZE_T_ size_t; * #undef _BSD_SIZE_T_ * #endif */ -#define _BSD_CLOCK_T_ int /* clock() */ -#define _BSD_CLOCKID_T_ int /* clockid_t */ -#define _BSD_PTRDIFF_T_ int /* ptr1 - ptr2 */ -#define _BSD_SIZE_T_ unsigned int /* sizeof() */ -#define _BSD_SOCKLEN_T_ __uint32_t -#define _BSD_SSIZE_T_ long /* byte count or error */ -#define _BSD_TIME_T_ long /* time() */ -#define _BSD_TIMER_T_ int /* timer_t */ +#define _BSD_CLOCK_T_ int /* clock() */ +#define _BSD_CLOCKID_T_ int /* clockid_t */ +#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_ long /* time() */ +#define _BSD_TIMER_T_ int /* timer_t */ +#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t (see below) */ +#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t (see below) */ + +/* + * Types which are fundamental to the implementation and must be used + * in more than one standard header although they are only declared in + * one (perhaps nonstandard) header are defined here. Standard headers + * use _BSD_XXX_T_ without undef'ing it. + */ +#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ +#define _BSD_OFF_T_ __int64_t /* file offset */ +#define _BSD_PID_T_ int /* process [group] */ -#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC_MINOR__ > 95) +#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ > 95) #define _BSD_VA_LIST_ __builtin_va_list /* internally known to gcc */ #else typedef struct { @@ -86,46 +79,26 @@ typedef struct { char *__stack; char *__base; } __va_list; -#define _BSD_VA_LIST_ __va_list /* va_list */ +#define _BSD_VA_LIST_ __va_list /* va_list */ #endif /*__GNUC__*/ /* - * Types which are fundamental to the implementation and must be used - * in more than one standard header although they are only declared in - * one (perhaps nonstandard) header are defined here. Standard headers - * use _BSD_XXX_T_ without undef'ing it. - */ -#define _BSD_OFF_T_ __int64_t /* file offset */ -#define _BSD_PID_T_ int /* process [group] */ - -/* - * Runes (wchar_t) is declared to be an ``int'' instead of the more natural + * The rune type above is declared to be an ``int'' instead of the more natural * ``unsigned long'' or ``long''. Two things are happening here. It is not * unsigned so that EOF (-1) can be naturally assigned to it and used. Also, * it looks like 10646 will be a 31 bit standard. This means that if your * ints cannot hold 32 bits, you will be in trouble. The reason an int was * chosen over a long is that the is*() and to*() routines take ints (says - * ANSI C), but they use _RUNE_T_ instead of int. By changing it here, you - * lose a bit of ANSI conformance, but your programs will still work. + * ANSI C), but they use _BSD_CT_RUNE_T_ instead of int. By changing it + * here, you lose a bit of ANSI conformance, but your programs will still + * work. * - * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type. When wchar_t - * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains - * defined for ctype.h. - */ -#define _BSD_CT_RUNE_T_ int /* arg type for ctype funcs */ -#define _BSD_RUNE_T_ _BSD_CT_RUNE_T_ /* rune_t */ -#define _BSD_WCHAR_T_ _BSD_CT_RUNE_T_ /* wchar_t */ -#define _BSD_WINT_T_ _BSD_CT_RUNE_T_ /* wint_t */ - -/* - * mbstate_t is an opaque object to keep conversion state, during multibyte - * stream conversions. The content must not be referenced by user programs. + * NOTE: rune_t is not covered by ANSI nor other standards, and should not + * be instantiated outside of lib/libc/locale. Use wchar_t. wchar_t and + * rune_t must be the same type. Also wint_t must be no narrower than + * wchar_t, and should also be able to hold all members of the largest + * character set plus one extra value (WEOF). wint_t must be at least 16 bits. */ -typedef union { - char __mbstate8[128]; - __int64_t _mbstateL; /* for alignment */ - } __mbstate_t; -#define _BSD_MBSTATE_T_ __mbstate_t /* mbstate_t */ /* * Frequencies of the clock ticks reported by clock() and times(). They @@ -140,4 +113,34 @@ typedef union { #define _BSD_CLK_TCK_ 100 #define _BSD_CLOCKS_PER_SEC_ 100 +/* + * We define this here since both <stddef.h> and <sys/types.h> needs it. + */ +#define __offsetof(type, field) ((size_t)(&((type *)0)->field)) + +/* + * Internal names for basic integral types. Omit the typedef if + * not possible for a machine/compiler combination. + */ +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +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; + +/* + * mbstate_t is an opaque object to keep conversion state, during multibyte + * stream conversions. The content must not be referenced by user programs. + */ +typedef union { + char __mbstate8[128]; + __int64_t _mbstateL; /* for alignment */ +} __mbstate_t; + #endif /* _MACHINE_ANSI_H_ */ |