File: /usr/include/linux/types.h

1     #ifndef _LINUX_TYPES_H
2     #define _LINUX_TYPES_H
3     
4     #ifdef	__KERNEL__
5     #include <linux/config.h>
6     #endif
7     
8     #include <linux/posix_types.h>
9     #include <asm/types.h>
10     
11     #ifndef __KERNEL_STRICT_NAMES
12     
13     typedef __kernel_fd_set		fd_set;
14     typedef __kernel_dev_t		dev_t;
15     typedef __kernel_ino_t		ino_t;
16     typedef __kernel_mode_t		mode_t;
17     typedef __kernel_nlink_t	nlink_t;
18     typedef __kernel_off_t		off_t;
19     typedef __kernel_pid_t		pid_t;
20     typedef __kernel_daddr_t	daddr_t;
21     typedef __kernel_key_t		key_t;
22     typedef __kernel_suseconds_t	suseconds_t;
23     
24     #ifdef __KERNEL__
25     typedef __kernel_uid32_t	uid_t;
26     typedef __kernel_gid32_t	gid_t;
27     typedef __kernel_uid16_t        uid16_t;
28     typedef __kernel_gid16_t        gid16_t;
29     
30     #ifdef CONFIG_UID16
31     /* This is defined by include/asm-{arch}/posix_types.h */
32     typedef __kernel_old_uid_t	old_uid_t;
33     typedef __kernel_old_gid_t	old_gid_t;
34     #endif /* CONFIG_UID16 */
35     
36     /* libc5 includes this file to define uid_t, thus uid_t can never change
37      * when it is included by non-kernel code
38      */
39     #else
40     typedef __kernel_uid_t		uid_t;
41     typedef __kernel_gid_t		gid_t;
42     #endif /* __KERNEL__ */
43     
44     #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
45     typedef __kernel_loff_t		loff_t;
46     #endif
47     
48     /*
49      * The following typedefs are also protected by individual ifdefs for
50      * historical reasons:
51      */
52     #ifndef _SIZE_T
53     #define _SIZE_T
54     typedef __kernel_size_t		size_t;
55     #endif
56     
57     #ifndef _SSIZE_T
58     #define _SSIZE_T
59     typedef __kernel_ssize_t	ssize_t;
60     #endif
61     
62     #ifndef _PTRDIFF_T
63     #define _PTRDIFF_T
64     typedef __kernel_ptrdiff_t	ptrdiff_t;
65     #endif
66     
67     #ifndef _TIME_T
68     #define _TIME_T
69     typedef __kernel_time_t		time_t;
70     #endif
71     
72     #ifndef _CLOCK_T
73     #define _CLOCK_T
74     typedef __kernel_clock_t	clock_t;
75     #endif
76     
77     #ifndef _CADDR_T
78     #define _CADDR_T
79     typedef __kernel_caddr_t	caddr_t;
80     #endif
81     
82     /* bsd */
83     typedef unsigned char		u_char;
84     typedef unsigned short		u_short;
85     typedef unsigned int		u_int;
86     typedef unsigned long		u_long;
87     
88     /* sysv */
89     typedef unsigned char		unchar;
90     typedef unsigned short		ushort;
91     typedef unsigned int		uint;
92     typedef unsigned long		ulong;
93     
94     #ifndef __BIT_TYPES_DEFINED__
95     #define __BIT_TYPES_DEFINED__
96     
97     typedef		__u8		u_int8_t;
98     typedef		__s8		int8_t;
99     typedef		__u16		u_int16_t;
100     typedef		__s16		int16_t;
101     typedef		__u32		u_int32_t;
102     typedef		__s32		int32_t;
103     
104     #endif /* !(__BIT_TYPES_DEFINED__) */
105     
106     typedef		__u8		uint8_t;
107     typedef		__u16		uint16_t;
108     typedef		__u32		uint32_t;
109     
110     #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
111     typedef		__u64		uint64_t;
112     typedef		__u64		u_int64_t;
113     typedef		__s64		int64_t;
114     #endif
115     
116     #endif /* __KERNEL_STRICT_NAMES */
117     
118     /*
119      * Below are truly Linux-specific types that should never collide with
120      * any application/library that wants linux/types.h.
121      */
122     
123     struct ustat {
124     	__kernel_daddr_t	f_tfree;
125     	__kernel_ino_t		f_tinode;
126     	char			f_fname[6];
127     	char			f_fpack[6];
128     };
129     
130     #endif /* _LINUX_TYPES_H */
131