chiark / gitweb /
[PATCH] added klibc version 0.82 (cvs tree) to the udev tree.
[elogind.git] / klibc / klibc / include / sys / types.h
1 /*
2  * sys/types.h
3  *
4  * This is a bastardized version of linux/types.h, since that file
5  * is broken w.r.t. <stdint.h> definitions.
6  */
7
8 #ifndef _SYS_TYPES_H
9 #define _SYS_TYPES_H
10
11 #include <stddef.h>
12 #include <stdint.h>
13
14 #define _SSIZE_T
15 typedef ptrdiff_t ssize_t;
16
17 #include <linux/posix_types.h>
18 #include <asm/types.h>
19
20 /* Keeps linux/types.h from getting included elsewhere */
21 #define _LINUX_TYPES_H          
22
23 typedef __kernel_fd_set         fd_set;
24 typedef uint32_t                dev_t;
25 typedef __kernel_ino_t          ino_t;
26 typedef __kernel_mode_t         mode_t;
27 typedef __kernel_nlink_t        nlink_t;
28 typedef __kernel_off_t          off_t;
29 typedef __kernel_pid_t          pid_t;
30 typedef __kernel_daddr_t        daddr_t;
31 typedef __kernel_key_t          key_t;
32 typedef __kernel_suseconds_t    suseconds_t;
33 typedef __kernel_timer_t        timer_t;
34
35 typedef __kernel_uid32_t        uid_t;
36 typedef __kernel_gid32_t        gid_t;
37
38 typedef __kernel_loff_t         loff_t;
39
40 /*
41  * The following typedefs are also protected by individual ifdefs for
42  * historical reasons:
43  */
44 #ifndef _SIZE_T
45 #define _SIZE_T
46 typedef __kernel_size_t         size_t;
47 #endif
48
49 #ifndef _SSIZE_T
50 #define _SSIZE_T
51 typedef __kernel_ssize_t        ssize_t;
52 #endif
53
54 #ifndef _PTRDIFF_T
55 #define _PTRDIFF_T
56 typedef __kernel_ptrdiff_t      ptrdiff_t;
57 #endif
58
59 #ifndef _TIME_T
60 #define _TIME_T
61 typedef __kernel_time_t         time_t;
62 #endif
63
64 #ifndef _CLOCK_T
65 #define _CLOCK_T
66 typedef __kernel_clock_t        clock_t;
67 #endif
68
69 #ifndef _CADDR_T
70 #define _CADDR_T
71 typedef __kernel_caddr_t        caddr_t;
72 #endif
73
74 /* bsd */
75 typedef unsigned char           u_char;
76 typedef unsigned short          u_short;
77 typedef unsigned int            u_int;
78 typedef unsigned long           u_long;
79
80 /* sysv */
81 typedef unsigned char           unchar;
82 typedef unsigned short          ushort;
83 typedef unsigned int            uint;
84 typedef unsigned long           ulong;
85
86 #ifndef __BIT_TYPES_DEFINED__
87 #define __BIT_TYPES_DEFINED__
88
89 typedef         __u8            u_int8_t;
90 typedef         __u16           u_int16_t;
91 typedef         __u32           u_int32_t;
92 typedef         __u64           u_int64_t;
93
94 #endif /* !(__BIT_TYPES_DEFINED__) */
95
96 /*
97  * transition to 64-bit sector_t, possibly making it an option...
98  */
99 #undef BLK_64BIT_SECTOR
100
101 #ifdef BLK_64BIT_SECTOR
102 typedef u64 sector_t;
103 #else
104 typedef unsigned long sector_t;
105 #endif
106
107 /*
108  * The type of an index into the pagecache.  Use a #define so asm/types.h
109  * can override it.
110  */
111 #ifndef pgoff_t
112 #define pgoff_t unsigned long
113 #endif
114
115 /*
116  * Below are truly Linux-specific types that should never collide with
117  * any application/library that wants linux/types.h.
118  */
119
120 struct ustat {
121         __kernel_daddr_t        f_tfree;
122         __kernel_ino_t          f_tinode;
123         char                    f_fname[6];
124         char                    f_fpack[6];
125 };
126
127 #endif