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#include <asm-generic/int-ll64.h> 13 14#ifndef __ASSEMBLY__ 15 16typedef unsigned short umode_t; 17 18/* A address type so that arithmetic can be done on it & it can be upgraded to 19 64 bit when necessary 20*/ 21typedef unsigned long addr_t; 22typedef __signed__ long saddr_t; 23 24#endif /* __ASSEMBLY__ */ 25 26/* 27 * These aren't exported outside the kernel to avoid name space clashes 28 */ 29#ifdef __KERNEL__ 30 31#ifndef __ASSEMBLY__ 32 33typedef u64 dma64_addr_t; 34#ifdef __s390x__ 35/* DMA addresses come in 32-bit and 64-bit flavours. */ 36typedef u64 dma_addr_t; 37#else 38typedef u32 dma_addr_t; 39#endif 40 41#ifndef __s390x__ 42typedef union { 43 unsigned long long pair; 44 struct { 45 unsigned long even; 46 unsigned long odd; 47 } subreg; 48} register_pair; 49 50#endif /* ! __s390x__ */ 51#endif /* __ASSEMBLY__ */ 52#endif /* __KERNEL__ */ 53#endif /* _S390_TYPES_H */ 54