Automatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/driver...
[linux-2.6/verdex.git] / include / asm-s390 / types.h
blob3fefd61416a515e2459cd3b39edf2079cf682137
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 #ifndef __ASSEMBLY__
14 typedef unsigned short umode_t;
17 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
18 * header files exported to user space
21 typedef __signed__ char __s8;
22 typedef unsigned char __u8;
24 typedef __signed__ short __s16;
25 typedef unsigned short __u16;
27 typedef __signed__ int __s32;
28 typedef unsigned int __u32;
30 #ifndef __s390x__
31 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
32 typedef __signed__ long long __s64;
33 typedef unsigned long long __u64;
34 #endif
35 #else /* __s390x__ */
36 typedef __signed__ long __s64;
37 typedef unsigned long __u64;
38 #endif
40 /* A address type so that arithmetic can be done on it & it can be upgraded to
41 64 bit when necessary
43 typedef unsigned long addr_t;
44 typedef __signed__ long saddr_t;
46 #endif /* __ASSEMBLY__ */
49 * These aren't exported outside the kernel to avoid name space clashes
51 #ifdef __KERNEL__
53 #ifndef __s390x__
54 #define BITS_PER_LONG 32
55 #else
56 #define BITS_PER_LONG 64
57 #endif
59 #ifndef __ASSEMBLY__
61 #include <linux/config.h>
63 typedef signed char s8;
64 typedef unsigned char u8;
66 typedef signed short s16;
67 typedef unsigned short u16;
69 typedef signed int s32;
70 typedef unsigned int u32;
72 #ifndef __s390x__
73 typedef signed long long s64;
74 typedef unsigned long long u64;
75 #else /* __s390x__ */
76 typedef signed long s64;
77 typedef unsigned long u64;
78 #endif /* __s390x__ */
80 typedef u32 dma_addr_t;
82 typedef unsigned int kmem_bufctl_t;
84 #ifndef __s390x__
85 typedef union {
86 unsigned long long pair;
87 struct {
88 unsigned long even;
89 unsigned long odd;
90 } subreg;
91 } register_pair;
93 #ifdef CONFIG_LBD
94 typedef u64 sector_t;
95 #define HAVE_SECTOR_T
96 #endif
98 #endif /* ! __s390x__ */
99 #endif /* __ASSEMBLY__ */
100 #endif /* __KERNEL__ */
101 #endif /* _S390_TYPES_H */