at v2.6.23 93 lines 1.8 kB view raw
1/* 2 * include/asm-s390/types.h 3 * 4 * S390 version 5 * 6 * Derived from "include/asm-i386/types.h" 7 */ 8 9#ifndef _S390_TYPES_H 10#define _S390_TYPES_H 11 12#ifndef __ASSEMBLY__ 13 14typedef unsigned short umode_t; 15 16/* 17 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the 18 * header files exported to user space 19 */ 20 21typedef __signed__ char __s8; 22typedef unsigned char __u8; 23 24typedef __signed__ short __s16; 25typedef unsigned short __u16; 26 27typedef __signed__ int __s32; 28typedef unsigned int __u32; 29 30#ifndef __s390x__ 31#if defined(__GNUC__) && !defined(__STRICT_ANSI__) 32typedef __signed__ long long __s64; 33typedef unsigned long long __u64; 34#endif 35#else /* __s390x__ */ 36typedef __signed__ long __s64; 37typedef unsigned long __u64; 38#endif 39 40/* A address type so that arithmetic can be done on it & it can be upgraded to 41 64 bit when necessary 42*/ 43typedef unsigned long addr_t; 44typedef __signed__ long saddr_t; 45 46#endif /* __ASSEMBLY__ */ 47 48/* 49 * These aren't exported outside the kernel to avoid name space clashes 50 */ 51#ifdef __KERNEL__ 52 53#ifndef __s390x__ 54#define BITS_PER_LONG 32 55#else 56#define BITS_PER_LONG 64 57#endif 58 59#ifndef __ASSEMBLY__ 60 61 62typedef signed char s8; 63typedef unsigned char u8; 64 65typedef signed short s16; 66typedef unsigned short u16; 67 68typedef signed int s32; 69typedef unsigned int u32; 70 71#ifndef __s390x__ 72typedef signed long long s64; 73typedef unsigned long long u64; 74#else /* __s390x__ */ 75typedef signed long s64; 76typedef unsigned long u64; 77#endif /* __s390x__ */ 78 79typedef u32 dma_addr_t; 80 81#ifndef __s390x__ 82typedef union { 83 unsigned long long pair; 84 struct { 85 unsigned long even; 86 unsigned long odd; 87 } subreg; 88} register_pair; 89 90#endif /* ! __s390x__ */ 91#endif /* __ASSEMBLY__ */ 92#endif /* __KERNEL__ */ 93#endif /* _S390_TYPES_H */