fc5d7cf19324be9160352b7ce0675619278ec23e
[linux-2.6.git] / include / asm-s390 / types.h
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
14 typedef 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
21 typedef __signed__ char __s8;
22 typedef unsigned char __u8;
23
24 typedef __signed__ short __s16;
25 typedef unsigned short __u16;
26
27 typedef __signed__ int __s32;
28 typedef unsigned int __u32;
29
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
39
40 /* A address type so that arithmetic can be done on it & it can be upgraded to
41    64 bit when necessary 
42 */
43 typedef unsigned long addr_t; 
44 typedef __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
62 typedef signed char s8;
63 typedef unsigned char u8;
64
65 typedef signed short s16;
66 typedef unsigned short u16;
67
68 typedef signed int s32;
69 typedef unsigned int u32;
70
71 #ifndef __s390x__
72 typedef signed long long s64;
73 typedef unsigned long long u64;
74 #else /* __s390x__ */
75 typedef signed long s64;
76 typedef unsigned  long u64;
77 #endif /* __s390x__ */
78
79 typedef u32 dma_addr_t;
80
81 #ifndef __s390x__
82 typedef 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 */