types.h
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023: #ifndef _SYS_TYPES_H
024: #define _SYS_TYPES_H 1
025:
026: #include <features.h>
027:
028: __BEGIN_DECLS
029:
030: #include <bits/types.h>
031:
032: #ifdef __USE_BSD
033: # ifndef __u_char_defined
034: typedef __u_char u_char;
035: typedef __u_short u_short;
036: typedef __u_int u_int;
037: typedef __u_long u_long;
038: typedef __quad_t quad_t;
039: typedef __u_quad_t u_quad_t;
040: typedef __fsid_t fsid_t;
041: # define __u_char_defined
042: # endif
043: #endif
044:
045: typedef __loff_t loff_t;
046:
047: #ifndef __ino_t_defined
048: # ifndef __USE_FILE_OFFSET64
049: typedef __ino_t ino_t;
050: # else
051: typedef __ino64_t ino_t;
052: # endif
053: # define __ino_t_defined
054: #endif
055: #if defined __USE_LARGEFILE64 && !defined __ino64_t_defined
056: typedef __ino64_t ino64_t;
057: # define __ino64_t_defined
058: #endif
059:
060: #ifndef __dev_t_defined
061: typedef __dev_t dev_t;
062: # define __dev_t_defined
063: #endif
064:
065: #ifndef __gid_t_defined
066: typedef __gid_t gid_t;
067: # define __gid_t_defined
068: #endif
069:
070: #ifndef __mode_t_defined
071: typedef __mode_t mode_t;
072: # define __mode_t_defined
073: #endif
074:
075: #ifndef __nlink_t_defined
076: typedef __nlink_t nlink_t;
077: # define __nlink_t_defined
078: #endif
079:
080: #ifndef __uid_t_defined
081: typedef __uid_t uid_t;
082: # define __uid_t_defined
083: #endif
084:
085: #ifndef __off_t_defined
086: # ifndef __USE_FILE_OFFSET64
087: typedef __off_t off_t;
088: # else
089: typedef __off64_t off_t;
090: # endif
091: # define __off_t_defined
092: #endif
093: #if defined __USE_LARGEFILE64 && !defined __off64_t_defined
094: typedef __off64_t off64_t;
095: # define __off64_t_defined
096: #endif
097:
098: #ifndef __pid_t_defined
099: typedef __pid_t pid_t;
100: # define __pid_t_defined
101: #endif
102:
103: #if (defined __USE_SVID || defined __USE_XOPEN || defined __USE_XOPEN2K8) \
104: && !defined __id_t_defined
105: typedef __id_t id_t;
106: # define __id_t_defined
107: #endif
108:
109: #ifndef __ssize_t_defined
110: typedef __ssize_t ssize_t;
111: # define __ssize_t_defined
112: #endif
113:
114: #ifdef __USE_BSD
115: # ifndef __daddr_t_defined
116: typedef __daddr_t daddr_t;
117: typedef __caddr_t caddr_t;
118: # define __daddr_t_defined
119: # endif
120: #endif
121:
122: #if (defined __USE_SVID || defined __USE_XOPEN) && !defined __key_t_defined
123: typedef __key_t key_t;
124: # define __key_t_defined
125: #endif
126:
127: #if defined __USE_XOPEN || defined __USE_XOPEN2K8
128: # define __need_clock_t
129: #endif
130: #define __need_time_t
131: #define __need_timer_t
132: #define __need_clockid_t
133: #include <time.h>
134:
135: #ifdef __USE_XOPEN
136: # ifndef __useconds_t_defined
137: typedef __useconds_t useconds_t;
138: # define __useconds_t_defined
139: # endif
140: # ifndef __suseconds_t_defined
141: typedef __suseconds_t suseconds_t;
142: # define __suseconds_t_defined
143: # endif
144: #endif
145:
146: #define __need_size_t
147: #include <stddef.h>
148:
149: #ifdef __USE_MISC
150:
151: typedef unsigned long int ulong;
152: typedef unsigned short int ushort;
153: typedef unsigned int uint;
154: #endif
155:
156:
157:
158: #if !__GNUC_PREREQ (2, 7)
159:
160:
161: # ifndef __int8_t_defined
162: # define __int8_t_defined
163: typedef char int8_t;
164: typedef short int int16_t;
165: typedef int int32_t;
166: # if __WORDSIZE == 64
167: typedef long int int64_t;
168: # elif __GLIBC_HAVE_LONG_LONG
169: __extension__ typedef long long int int64_t;
170: # endif
171: # endif
172:
173:
174: typedef unsigned char u_int8_t;
175: typedef unsigned short int u_int16_t;
176: typedef unsigned int u_int32_t;
177: # if __WORDSIZE == 64
178: typedef unsigned long int u_int64_t;
179: # elif __GLIBC_HAVE_LONG_LONG
180: __extension__ typedef unsigned long long int u_int64_t;
181: # endif
182:
183: typedef int register_t;
184:
185: #else
186:
187:
188: # define __intN_t(N, MODE) \
189: typedef int int##N##_t __attribute__ ((__mode__ (MODE)))
190: # define __u_intN_t(N, MODE) \
191: typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
192:
193: # ifndef __int8_t_defined
194: # define __int8_t_defined
195: __intN_t (8, __QI__);
196: __intN_t (16, __HI__);
197: __intN_t (32, __SI__);
198: __intN_t (64, __DI__);
199: # endif
200:
201: __u_intN_t (8, __QI__);
202: __u_intN_t (16, __HI__);
203: __u_intN_t (32, __SI__);
204: __u_intN_t (64, __DI__);
205:
206: typedef int register_t __attribute__ ((__mode__ (__word__)));
207:
208:
209:
210:
211: #endif
212: #define __BIT_TYPES_DEFINED__ 1
213:
214:
215: #ifdef __USE_BSD
216:
217: # include <endian.h>
218:
219:
220: # include <sys/select.h>
221:
222:
223: # include <sys/sysmacros.h>
224: #endif
225:
226:
227: #if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \
228: && !defined __blksize_t_defined
229: typedef __blksize_t blksize_t;
230: # define __blksize_t_defined
231: #endif
232:
233:
234: #ifndef __USE_FILE_OFFSET64
235: # ifndef __blkcnt_t_defined
236: typedef __blkcnt_t blkcnt_t;
237: # define __blkcnt_t_defined
238: # endif
239: # ifndef __fsblkcnt_t_defined
240: typedef __fsblkcnt_t fsblkcnt_t;
241: # define __fsblkcnt_t_defined
242: # endif
243: # ifndef __fsfilcnt_t_defined
244: typedef __fsfilcnt_t fsfilcnt_t;
245: # define __fsfilcnt_t_defined
246: # endif
247: #else
248: # ifndef __blkcnt_t_defined
249: typedef __blkcnt64_t blkcnt_t;
250: # define __blkcnt_t_defined
251: # endif
252: # ifndef __fsblkcnt_t_defined
253: typedef __fsblkcnt64_t fsblkcnt_t;
254: # define __fsblkcnt_t_defined
255: # endif
256: # ifndef __fsfilcnt_t_defined
257: typedef __fsfilcnt64_t fsfilcnt_t;
258: # define __fsfilcnt_t_defined
259: # endif
260: #endif
261:
262: #ifdef __USE_LARGEFILE64
263: typedef __blkcnt64_t blkcnt64_t;
264: typedef __fsblkcnt64_t fsblkcnt64_t;
265: typedef __fsfilcnt64_t fsfilcnt64_t;
266: #endif
267:
268:
269:
270: #if defined __USE_POSIX199506 || defined __USE_UNIX98
271: # include <bits/pthreadtypes.h>
272: #endif
273:
274: __END_DECLS
275:
276: #endif
277:
© Andrew Scott 2006 -
2024,
All Rights Reserved