From d13ff31cfeedbf2fefc7ba13cb753775648eac0c Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Thu, 24 Apr 2008 12:56:52 -0700 Subject: types: create This creates two generic files with common integer definitions; one where 64 bits is "long" (most 64-bit architectures) and one where 64 bits is "long long" (all 32-bit architectures and x86-64.) Signed-off-by: H. Peter Anvin Cc: Anton Blanchard Cc: Ben Dooks Cc: Bryan Wu Cc: Chris Zankel Cc: David Howells Cc: David S. Miller Cc: Geert Uytterhoeven Cc: Grant Grundler Cc: H. Peter Anvin Cc: Haavard Skinnemoen Cc: Heiko Carstens Cc: Hirokazu Takata Cc: Ingo Molnar Cc: Ivan Kokshaysky Cc: Jesper Nilsson Cc: Koichi Yasutake Cc: Kyle McMartin Cc: Lennert Buytenhek Cc: Martin Schwidefsky Cc: Matthew Wilcox Cc: Mikael Starvik Cc: Paul Mackerras Cc: Paul Mundt Cc: Ralf Baechle Cc: Richard Henderson Cc: Roman Zippel Cc: Russell King Cc: Thomas Gleixner Cc: Tony Luck Cc: William L. Irwin Cc: Yoshinori Sato --- include/asm-generic/Kbuild | 2 ++ include/asm-generic/int-l64.h | 51 ++++++++++++++++++++++++++++++++++++++ include/asm-generic/int-ll64.h | 56 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 include/asm-generic/int-l64.h create mode 100644 include/asm-generic/int-ll64.h (limited to 'include/asm-generic') diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild index c18110e..4c9932a 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild @@ -7,5 +7,7 @@ header-y += poll.h header-y += signal.h header-y += statfs.h +unifdef-y += int-l64.h +unifdef-y += int-ll64.h unifdef-y += resource.h unifdef-y += siginfo.h diff --git a/include/asm-generic/int-l64.h b/include/asm-generic/int-l64.h new file mode 100644 index 0000000..629b5a4 --- /dev/null +++ b/include/asm-generic/int-l64.h @@ -0,0 +1,51 @@ +/* + * asm-generic/int-l64.h + * + * Integer declarations for architectures which use "long" + * for 64-bit types. + */ + +#ifndef _ASM_GENERIC_INT_L64_H +#define _ASM_GENERIC_INT_L64_H + +#ifndef __ASSEMBLY__ +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +typedef __signed__ long __s64; +typedef unsigned long __u64; + +#endif /* __ASSEMBLY__ */ + +#ifdef __KERNEL__ + +#ifndef __ASSEMBLY__ + +typedef signed char s8; +typedef unsigned char u8; + +typedef signed short s16; +typedef unsigned short u16; + +typedef signed int s32; +typedef unsigned int u32; + +typedef signed long s64; +typedef unsigned long u64; + +#endif /* __ASSEMBLY__ */ + +#endif /* __KERNEL__ */ + +#endif /* _ASM_GENERIC_INT_L64_H */ diff --git a/include/asm-generic/int-ll64.h b/include/asm-generic/int-ll64.h new file mode 100644 index 0000000..1e5ffec --- /dev/null +++ b/include/asm-generic/int-ll64.h @@ -0,0 +1,56 @@ +/* + * asm-generic/int-ll64.h + * + * Integer declarations for architectures which use "long long" + * for 64-bit types. + */ + +#ifndef _ASM_GENERIC_INT_LL64_H +#define _ASM_GENERIC_INT_LL64_H + +#ifndef __ASSEMBLY__ +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +#ifdef __GNUC__ +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +typedef __signed__ long long __s64; +typedef unsigned long long __u64; +#endif + +#endif /* __ASSEMBLY__ */ + +#ifdef __KERNEL__ + +#ifndef __ASSEMBLY__ + +typedef signed char s8; +typedef unsigned char u8; + +typedef signed short s16; +typedef unsigned short u16; + +typedef signed int s32; +typedef unsigned int u32; + +typedef signed long long s64; +typedef unsigned long long u64; + +#endif /* __ASSEMBLY__ */ + +#endif /* __KERNEL__ */ + +#endif /* _ASM_GENERIC_INT_LL64_H */ -- cgit v1.1