Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef _LINUX_TYPES_H
  2 #define _LINUX_TYPES_H
  3 
  4 #ifdef  __KERNEL__
  5 
  6 #define DECLARE_BITMAP(name,bits) \
  7         unsigned long name[BITS_TO_LONGS(bits)]
  8 
  9 #endif
 10 
 11 #include <linux/posix_types.h>
 12 #include <asm/types.h>
 13 
 14 #ifndef __KERNEL_STRICT_NAMES
 15 
 16 typedef __u32 __kernel_dev_t;
 17 
 18 typedef __kernel_fd_set         fd_set;
 19 typedef __kernel_dev_t          dev_t;
 20 typedef __kernel_ino_t          ino_t;
 21 typedef __kernel_mode_t         mode_t;
 22 typedef __kernel_nlink_t        nlink_t;
 23 typedef __kernel_off_t          off_t;
 24 typedef __kernel_pid_t          pid_t;
 25 typedef __kernel_daddr_t        daddr_t;
 26 typedef __kernel_key_t          key_t;
 27 typedef __kernel_suseconds_t    suseconds_t;
 28 typedef __kernel_timer_t        timer_t;
 29 typedef __kernel_clockid_t      clockid_t;
 30 typedef __kernel_mqd_t          mqd_t;
 31 
 32 #ifdef __KERNEL__
 33 typedef _Bool                   bool;
 34 
 35 typedef __kernel_uid32_t        uid_t;
 36 typedef __kernel_gid32_t        gid_t;
 37 typedef __kernel_uid16_t        uid16_t;
 38 typedef __kernel_gid16_t        gid16_t;
 39 
 40 typedef unsigned long           uintptr_t;
 41 
 42 #ifdef CONFIG_UID16
 43 /* This is defined by include/asm-{arch}/posix_types.h */
 44 typedef __kernel_old_uid_t      old_uid_t;
 45 typedef __kernel_old_gid_t      old_gid_t;
 46 #endif /* CONFIG_UID16 */
 47 
 48 /* libc5 includes this file to define uid_t, thus uid_t can never change
 49  * when it is included by non-kernel code
 50  */
 51 #else
 52 typedef __kernel_uid_t          uid_t;
 53 typedef __kernel_gid_t          gid_t;
 54 #endif /* __KERNEL__ */
 55 
 56 #if defined(__GNUC__)
 57 typedef __kernel_loff_t         loff_t;
 58 #endif
 59 
 60 /*
 61  * The following typedefs are also protected by individual ifdefs for
 62  * historical reasons:
 63  */
 64 #ifndef _SIZE_T
 65 #define _SIZE_T
 66 typedef __kernel_size_t         size_t;
 67 #endif
 68 
 69 #ifndef _SSIZE_T
 70 #define _SSIZE_T
 71 typedef __kernel_ssize_t        ssize_t;
 72 #endif
 73 
 74 #ifndef _PTRDIFF_T
 75 #define _PTRDIFF_T
 76 typedef __kernel_ptrdiff_t      ptrdiff_t;
 77 #endif
 78 
 79 #ifndef _TIME_T
 80 #define _TIME_T
 81 typedef __kernel_time_t         time_t;
 82 #endif
 83 
 84 #ifndef _CLOCK_T
 85 #define _CLOCK_T
 86 typedef __kernel_clock_t        clock_t;
 87 #endif
 88 
 89 #ifndef _CADDR_T
 90 #define _CADDR_T
 91 typedef __kernel_caddr_t        caddr_t;
 92 #endif
 93 
 94 /* bsd */
 95 typedef unsigned char           u_char;
 96 typedef unsigned short          u_short;
 97 typedef unsigned int            u_int;
 98 typedef unsigned long           u_long;
 99 
100 /* sysv */
101 typedef unsigned char           unchar;
102 typedef unsigned short          ushort;
103 typedef unsigned int            uint;
104 typedef unsigned long           ulong;
105 
106 #ifndef __BIT_TYPES_DEFINED__
107 #define __BIT_TYPES_DEFINED__
108 
109 typedef         __u8            u_int8_t;
110 typedef         __s8            int8_t;
111 typedef         __u16           u_int16_t;
112 typedef         __s16           int16_t;
113 typedef         __u32           u_int32_t;
114 typedef         __s32           int32_t;
115 
116 #endif /* !(__BIT_TYPES_DEFINED__) */
117 
118 typedef         __u8            uint8_t;
119 typedef         __u16           uint16_t;
120 typedef         __u32           uint32_t;
121 
122 #if defined(__GNUC__)
123 typedef         __u64           uint64_t;
124 typedef         __u64           u_int64_t;
125 typedef         __s64           int64_t;
126 #endif
127 
128 /* this is a special 64bit data type that is 8-byte aligned */
129 #define aligned_u64 __u64 __attribute__((aligned(8)))
130 #define aligned_be64 __be64 __attribute__((aligned(8)))
131 #define aligned_le64 __le64 __attribute__((aligned(8)))
132 
133 /**
134  * The type used for indexing onto a disc or disc partition.
135  *
136  * Linux always considers sectors to be 512 bytes long independently
137  * of the devices real block size.
138  */
139 #ifdef CONFIG_LBD
140 typedef u64 sector_t;
141 #else
142 typedef unsigned long sector_t;
143 #endif
144 
145 /*
146  * The type of the inode's block count.
147  */
148 #ifdef CONFIG_LSF
149 typedef u64 blkcnt_t;
150 #else
151 typedef unsigned long blkcnt_t;
152 #endif
153 
154 /*
155  * The type of an index into the pagecache.  Use a #define so asm/types.h
156  * can override it.
157  */
158 #ifndef pgoff_t
159 #define pgoff_t unsigned long
160 #endif
161 
162 #endif /* __KERNEL_STRICT_NAMES */
163 
164 /*
165  * Below are truly Linux-specific types that should never collide with
166  * any application/library that wants linux/types.h.
167  */
168 
169 #ifdef __CHECKER__
170 #define __bitwise__ __attribute__((bitwise))
171 #else
172 #define __bitwise__
173 #endif
174 #ifdef __CHECK_ENDIAN__
175 #define __bitwise __bitwise__
176 #else
177 #define __bitwise
178 #endif
179 
180 typedef __u16 __bitwise __le16;
181 typedef __u16 __bitwise __be16;
182 typedef __u32 __bitwise __le32;
183 typedef __u32 __bitwise __be32;
184 #if defined(__GNUC__)
185 typedef __u64 __bitwise __le64;
186 typedef __u64 __bitwise __be64;
187 #endif
188 typedef __u16 __bitwise __sum16;
189 typedef __u32 __bitwise __wsum;
190 
191 #ifdef __KERNEL__
192 typedef unsigned __bitwise__ gfp_t;
193 
194 #ifdef CONFIG_RESOURCES_64BIT
195 typedef u64 resource_size_t;
196 #else
197 typedef u32 resource_size_t;
198 #endif
199 
200 struct ustat {
201         __kernel_daddr_t        f_tfree;
202         __kernel_ino_t          f_tinode;
203         char                    f_fname[6];
204         char                    f_fpack[6];
205 };
206 
207 #endif  /* __KERNEL__ */
208 
209 #endif /* _LINUX_TYPES_H */
210 
  This page was automatically generated by the LXR engine.