[S390] Use unsigned long long for u64 on 64bit.
[linux-2.6/btrfs-unstable.git] / arch / s390 / include / asm / types.h
blob3dc3fc228812a3ce22070d8b52705c211b23ea47
1 /*
2 * include/asm-s390/types.h
4 * S390 version
6 * Derived from "include/asm-i386/types.h"
7 */
9 #ifndef _S390_TYPES_H
10 #define _S390_TYPES_H
12 #include <asm-generic/int-ll64.h>
14 #ifndef __ASSEMBLY__
16 typedef unsigned short umode_t;
18 /* A address type so that arithmetic can be done on it & it can be upgraded to
19 64 bit when necessary
21 typedef unsigned long addr_t;
22 typedef __signed__ long saddr_t;
24 #endif /* __ASSEMBLY__ */
27 * These aren't exported outside the kernel to avoid name space clashes
29 #ifdef __KERNEL__
31 #ifndef __s390x__
32 #define BITS_PER_LONG 32
33 #else
34 #define BITS_PER_LONG 64
35 #endif
37 #ifndef __ASSEMBLY__
39 typedef u64 dma64_addr_t;
40 #ifdef __s390x__
41 /* DMA addresses come in 32-bit and 64-bit flavours. */
42 typedef u64 dma_addr_t;
43 #else
44 typedef u32 dma_addr_t;
45 #endif
47 #ifndef __s390x__
48 typedef union {
49 unsigned long long pair;
50 struct {
51 unsigned long even;
52 unsigned long odd;
53 } subreg;
54 } register_pair;
56 #endif /* ! __s390x__ */
57 #endif /* __ASSEMBLY__ */
58 #endif /* __KERNEL__ */
59 #endif /* _S390_TYPES_H */