]>
Commit | Line | Data |
---|---|---|
8fe44445 | 1 | /* |
2 | ** linux.h | |
3 | */ | |
4 | ||
5 | /* | |
6 | ** Based on Linux Standard Base Specification 1.0.0 | |
7 | ** http://www.linuxbase.org/spec/gLSB/gLSB/libc-ddefs.html | |
8 | */ | |
9 | ||
10 | /* | |
11 | ||
12 | Data Definitions for libc | |
13 | ||
14 | dirent.h | |
15 | */ | |
16 | ||
17 | typedef struct __dirstream DIR; | |
18 | ||
19 | /* Not in LSB: based on RedHat 7.0: */ | |
20 | ||
21 | struct dirent { | |
22 | #ifndef __USE_FILE_OFFSET64 | |
23 | __ino_t d_ino; | |
24 | __off_t d_off; | |
25 | #else | |
26 | __ino64_t d_ino; | |
27 | __off64_t d_off; | |
28 | #endif | |
29 | unsigned short int d_reclen; | |
30 | unsigned char d_type; | |
31 | char d_name[256]; /* We must not include limits.h! */ | |
32 | } ; | |
33 | ||
34 | /*@i43 struct dirent not in LSB spec | |
35 | why doesn't alphasort64 use struct dirent64's? | |
36 | */ | |
37 | ||
38 | int acct (/*@null@*/ const char *filename) | |
39 | /*:statusreturn@*/ | |
40 | /*@modifies systemState@*/ ; | |
41 | ||
42 | int alphasort (const struct dirent **a, const struct dirent **b) /*@*/ ; | |
43 | int alphasort64(const struct dirent **a, const struct dirent **b) /*@*/ ; | |
44 | ||
45 | /* | |
46 | ftw.h | |
47 | */ | |
48 | ||
49 | typedef int (*__ftw_func_t) (char *__filename, struct stat * __status, | |
50 | int __flag); | |
51 | ||
52 | typedef int (*__ftw64_func_t) (char *__filename, struct stat64 * __status, | |
53 | int __flag); | |
54 | ||
55 | typedef int (*__nftw_func_t) (char *__filename, struct stat * __status, | |
56 | int __flag, struct FTW * __info); | |
57 | ||
58 | typedef int (*__nftw64_func_t) (char *__filename, struct stat64 * __status, | |
59 | int __flag, struct FTW * __info); | |
60 | ||
61 | /* | |
62 | glob.h | |
63 | */ | |
64 | ||
65 | typedef struct | |
66 | { | |
67 | __size_t gl_pathc; | |
68 | char **gl_pathv; | |
69 | __size_t gl_offs; | |
70 | int gl_flags; | |
71 | void (*gl_closedir) (); | |
72 | struct dirent64 *(*gl_readdir) (); | |
73 | void *(*gl_opendir) (); | |
74 | int (*gl_lstat) (); | |
75 | int (*gl_stat) (); | |
76 | } | |
77 | glob_t; | |
78 | ||
79 | typedef struct | |
80 | { | |
81 | __size_t gl_pathc; | |
82 | char **gl_pathv; | |
83 | __size_t gl_offs; | |
84 | int gl_flags; | |
85 | void (*gl_closedir) (); | |
86 | struct dirent64 *(*gl_readdir) (); | |
87 | void *(*gl_opendir) (); | |
88 | int (*gl_lstat) (); | |
89 | int (*gl_stat) (); | |
90 | } | |
91 | glob64_t; | |
92 | ||
93 | /* | |
94 | grp.h | |
95 | */ | |
96 | ||
97 | struct group | |
98 | { | |
99 | char *gr_name; | |
100 | char *gr_passwd; | |
101 | __gid_t gr_gid; | |
102 | char **gr_mem; | |
103 | } | |
104 | ; | |
105 | ||
106 | /* | |
107 | iconv.h | |
108 | */ | |
109 | ||
110 | typedef void *iconv_t; | |
111 | ||
112 | /* | |
113 | inttypes.h | |
114 | */ | |
115 | ||
116 | typedef lldiv_t imaxdiv_t; | |
117 | ||
118 | typedef long long intmax_t; | |
119 | ||
120 | typedef unsigned long long uintmax_t; | |
121 | ||
122 | /* | |
123 | locale.h | |
124 | */ | |
125 | ||
126 | struct lconv | |
127 | { | |
128 | char *decimal_point; | |
129 | char *thousands_sep; | |
130 | char *grouping; | |
131 | char *int_curr_symbol; | |
132 | char *currency_symbol; | |
133 | char *mon_decimal_point; | |
134 | char *mon_thousands_sep; | |
135 | char *mon_grouping; | |
136 | char *positive_sign; | |
137 | char *negative_sign; | |
138 | char int_frac_digits; | |
139 | char frac_digits; | |
140 | char p_cs_precedes; | |
141 | char p_sep_by_space; | |
142 | char n_cs_precedes; | |
143 | char n_sep_by_space; | |
144 | char p_sign_posn; | |
145 | char n_sign_posn; | |
146 | } | |
147 | ; | |
148 | ||
149 | /* | |
150 | nl_types.h | |
151 | */ | |
152 | ||
153 | typedef void *nl_catd; | |
154 | ||
155 | typedef int nl_item; | |
156 | ||
157 | /* | |
158 | pwd.h | |
159 | */ | |
160 | ||
161 | struct passwd | |
162 | { | |
163 | char *pw_name; | |
164 | char *pw_passwd; | |
165 | __uid_t pw_uid; | |
166 | __gid_t pw_gid; | |
167 | char *pw_gecos; | |
168 | char *pw_dir; | |
169 | char *pw_shell; | |
170 | } | |
171 | ; | |
172 | ||
173 | /* | |
174 | regex.h | |
175 | */ | |
176 | ||
177 | typedef unsigned long reg_syntax_t; | |
178 | ||
179 | typedef struct re_pattern_buffer | |
180 | { | |
181 | unsigned char *buffer; | |
182 | unsigned long allocated; | |
183 | unsigned long used; | |
184 | reg_syntax_t syntax; | |
185 | char *fastmap; | |
186 | char *translate; | |
187 | size_t re_nsub; | |
188 | unsigned int can_be_null; | |
189 | unsigned int regs_allocated; | |
190 | unsigned int fastmap_accurate; | |
191 | unsigned int no_sub; | |
192 | unsigned int not_bol; | |
193 | unsigned int not_eol; | |
194 | unsigned int newline_anchor; | |
195 | } | |
196 | regex_t; | |
197 | ||
198 | typedef int regoff_t; | |
199 | ||
200 | typedef struct | |
201 | { | |
202 | regoff_t rm_so; | |
203 | regoff_t rm_eo; | |
204 | } | |
205 | regmatch_t; | |
206 | ||
207 | /* | |
208 | search.h | |
209 | */ | |
210 | ||
211 | typedef enum | |
212 | { | |
213 | FIND, | |
214 | ENTER | |
215 | } | |
216 | ACTION; | |
217 | ||
218 | typedef enum | |
219 | { | |
220 | preorder, | |
221 | postorder, | |
222 | endorder, | |
223 | leaf | |
224 | } | |
225 | VISIT; | |
226 | ||
227 | typedef struct entry | |
228 | { | |
229 | char *key; | |
230 | void *data; | |
231 | } | |
232 | ENTRY; | |
233 | ||
234 | typedef void (*__action_fn_t) (void *__nodep, VISIT __value, int __level); | |
235 | ||
236 | /* | |
237 | setjmp.h | |
238 | */ | |
239 | ||
240 | typedef int __jmp_buf; | |
241 | ||
242 | typedef struct __jmp_buf_tag | |
243 | { | |
244 | __jmp_buf __jmpbuf; | |
245 | int __mask_was_saved; | |
246 | __sigset_t __saved_mask; | |
247 | } | |
248 | jmp_buf; | |
249 | ||
250 | typedef jmp_buf sigjmp_buf; | |
251 | ||
252 | /* | |
253 | signal.h | |
254 | */ | |
255 | ||
256 | typedef union sigval | |
257 | { | |
258 | int sival_int; | |
259 | void *sival_ptr; | |
260 | } | |
261 | sigval_t; | |
262 | ||
263 | typedef void (*__sighandler_t) (); | |
264 | ||
265 | struct sigevent | |
266 | { | |
267 | sigval_t sigev_value; | |
268 | int sigev_signo; | |
269 | int sigev_notify; | |
270 | } | |
271 | ; | |
272 | ||
273 | typedef struct | |
274 | { | |
275 | unsigned long __val[1]; | |
276 | } | |
277 | __sigset_t; | |
278 | ||
279 | typedef __sigset_t sigset_t; | |
280 | ||
281 | struct sigaction; | |
282 | ||
283 | typedef struct | |
284 | { | |
285 | int si_band; | |
286 | int si_fd; | |
287 | struct _sifields; | |
288 | struct _sigpoll; | |
289 | } | |
290 | siginfo_t; | |
291 | ||
292 | struct sigaltstack | |
293 | { | |
294 | void *ss_sp; | |
295 | int ss_flags; | |
296 | size_t ss_size; | |
297 | } | |
298 | ; | |
299 | ||
300 | struct sigstack | |
301 | { | |
302 | void *ss_sp; | |
303 | int ss_onstack; | |
304 | } | |
305 | ; | |
306 | ||
307 | /* | |
308 | stdio.h | |
309 | */ | |
310 | ||
311 | typedef struct _IO_FILE FILE; | |
312 | ||
313 | typedef __off_t fpos_t; | |
314 | ||
315 | typedef __off64_t fpos64_t; | |
316 | ||
317 | /* | |
318 | stdlib.h | |
319 | */ | |
320 | ||
321 | typedef struct | |
322 | { | |
323 | long long quot; | |
324 | long long rem; | |
325 | } | |
326 | lldiv_t; | |
327 | ||
328 | typedef struct | |
329 | { | |
330 | int quot; | |
331 | int rem; | |
332 | } | |
333 | div_t; | |
334 | ||
335 | typedef struct | |
336 | { | |
337 | long quot; | |
338 | long rem; | |
339 | } | |
340 | ldiv_t; | |
341 | ||
342 | typedef int (*__compar_fn_t) (); | |
343 | ||
344 | /* | |
345 | sys/sem.h | |
346 | */ | |
347 | ||
348 | struct sembuf | |
349 | { | |
350 | short sem_num; | |
351 | short sem_op; | |
352 | short sem_flg; | |
353 | } | |
354 | ; | |
355 | ||
356 | /* | |
357 | sys/socket.h | |
358 | */ | |
359 | ||
360 | typedef unsigned short sa_family_t; | |
361 | ||
362 | typedef unsigned int socklen_t; | |
363 | ||
364 | struct sockaddr | |
365 | { | |
366 | sa_family_t sa_family; | |
367 | char sa_data[1]; | |
368 | } | |
369 | ; | |
370 | ||
371 | struct msghdr | |
372 | { | |
373 | void *msg_name; | |
374 | socklen_t msg_namelen; | |
375 | struct iovec *msg_iov; | |
376 | size_t msg_iovlen; | |
377 | void *msg_control; | |
378 | size_t msg_controllen; | |
379 | int msg_flags; | |
380 | } | |
381 | ; | |
382 | ||
383 | /* | |
384 | sys/times.h | |
385 | */ | |
386 | ||
387 | struct tms | |
388 | { | |
389 | clock_t tms_utime; | |
390 | clock_t tms_stime; | |
391 | clock_t tms_cutime; | |
392 | clock_t tms_cstime; | |
393 | } | |
394 | ; | |
395 | ||
396 | /* | |
397 | sys/utsname.h | |
398 | */ | |
399 | ||
400 | struct utsname | |
401 | { | |
402 | char sysname[1]; | |
403 | char nodename[1]; | |
404 | char release[1]; | |
405 | char version[1]; | |
406 | char machine[1]; | |
407 | char __domainname[1]; | |
408 | } | |
409 | ; | |
410 | ||
411 | /* | |
412 | sys/wait.h | |
413 | */ | |
414 | ||
415 | typedef enum | |
416 | { | |
417 | P_ALL, | |
418 | P_PID, | |
419 | P_PGID | |
420 | } | |
421 | idtype_t; | |
422 | ||
423 | /* | |
424 | time.h | |
425 | */ | |
426 | ||
427 | typedef long __clock_t; | |
428 | ||
429 | struct timespec | |
430 | { | |
431 | long tv_sec; | |
432 | long tv_nsec; | |
433 | } | |
434 | ; | |
435 | ||
436 | struct tm | |
437 | { | |
438 | int tm_sec; | |
439 | int tm_min; | |
440 | int tm_hour; | |
441 | int tm_mday; | |
442 | int tm_mon; | |
443 | int tm_year; | |
444 | int tm_wday; | |
445 | int tm_yday; | |
446 | int tm_isdst; | |
447 | long __tm_gmtoff; | |
448 | char *__tm_zone; | |
449 | } | |
450 | ; | |
451 | ||
452 | typedef __clock_t clock_t; | |
453 | ||
454 | typedef __time_t time_t; | |
455 | ||
456 | int adjtime (/*@notnull@*/ const struct timeval *delta, /*@null@*/ struct timeval *olddelta) | |
457 | /*@warn superuser "Only super-user processes may call adjtime."@*/ | |
458 | /*:statusreturn@*/ | |
459 | /*@modifies systemState@*/ ; | |
460 | ||
461 | /* | |
462 | unistd.h | |
463 | */ | |
464 | ||
465 | typedef __ssize_t ssize_t; | |
466 | ||
467 | typedef __pid_t pid_t; | |
468 | ||
469 | typedef __off_t off_t; | |
470 | ||
471 | extern /*@observer@*/ /*@nullterminated@*/ /*@null@*/ | |
472 | char *bindtextdomain (/*@null@*/ /*@nullterminated@*/ const char *domainname, | |
473 | /*@null@*/ /*@nullterminated@*/ const char *dirname) /*@*/ ; | |
474 | /* LSB doesn't specify: taken from | |
475 | http://www.hgmp.mrc.ac.uk/cgi-bin/man.cgi?section=3C&topic=bindtextdomain | |
476 | */ | |
477 | ||
478 | ||
479 | /* | |
480 | utime.h | |
481 | */ | |
482 | ||
483 | struct utimbuf | |
484 | { | |
485 | __time_t actime; | |
486 | __time_t modtime; | |
487 | } | |
488 | ; | |
489 | ||
490 | /* | |
491 | wchar.h | |
492 | */ | |
493 | ||
494 | typedef long wchar_t; | |
495 | ||
496 | typedef unsigned int wint_t; | |
497 | ||
498 | typedef struct | |
499 | { | |
500 | int count; | |
501 | wint_t value; | |
502 | } | |
503 | mbstate_t; | |
504 | ||
505 | /* | |
506 | wctype.h | |
507 | */ | |
508 | ||
509 | typedef unsigned long wctype_t; | |
510 | ||
511 | typedef __int32_t *wctrans_t; | |
512 | ||
513 | /* | |
514 | wordexp.h | |
515 | */ | |
516 | ||
517 | typedef struct | |
518 | { | |
519 | int we_wordc; | |
520 | char **we_wordv; | |
521 | int we_offs; | |
522 | } | |
523 | wordexp_t; | |
524 | ||
525 | /* | |
526 | timex.h | |
527 | */ | |
528 | ||
529 | struct timex { | |
530 | int modes; /* mode selector */ | |
531 | long offset; /* time offset (usec) */ | |
532 | long freq; /* frequency offset (scaled ppm) */ | |
533 | long maxerror; /* maximum error (usec) */ | |
534 | long esterror; /* estimated error (usec) */ | |
535 | int status; /* clock command/status */ | |
536 | long constant; /* pll time constant */ | |
537 | long precision; /* clock precision (usec) (read only) */ | |
538 | long tolerance; /* clock frequency tolerance (ppm) (read only) */ | |
539 | struct timeval time; /* current time (read only) */ | |
540 | long tick; /* usecs between clock ticks */ | |
541 | ||
542 | }; | |
543 | ||
544 | /*@constant int ADJ_OFFSET@*/ | |
545 | /*@constant int ADJ_FREQUENCY@*/ | |
546 | /*@constant int ADJ_MAXERROR@*/ | |
547 | /*@constant int ADJ_ESTERROR@*/ | |
548 | /*@constant int ADJ_STATUS@*/ | |
549 | /*@constant int ADJ_TIMECONST@*/ | |
550 | /*@constant int ADJ_TICK@*/ | |
551 | /*@constant int ADJ_OFFSET_SINGLESHOT@*/ | |
552 | ||
553 | int adjtimex (/*@notnull@*/ struct timex *buf) | |
554 | /*@warn superuser "Only super-user processes may call adjtimex unless the modes field is 0."@*/ | |
555 | /*:statusreturn@*/ | |
556 | /*@modifies systemState@*/ ; | |
557 | ||
558 | /* | |
559 | termios.h | |
560 | */ | |
561 | ||
562 | typedef unsigned char cc_t; | |
563 | typedef unsigned int speed_t; | |
564 | typedef unsigned int tcflag_t; | |
565 | ||
566 | struct termios | |
567 | { | |
568 | tcflag_t c_iflag; /* input mode flags */ | |
569 | tcflag_t c_oflag; /* output mode flags */ | |
570 | tcflag_t c_cflag; /* control mode flags */ | |
571 | tcflag_t c_lflag; /* local mode flags */ | |
572 | cc_t c_cc[NCCS]; /* control characters */ | |
573 | }; | |
574 | ||
575 | int cfmakeraw (/*@out@*/ struct termios *termios_p) | |
576 | /*:statusreturn@*/ ; | |
577 | ||
578 | int cfsetspeed(struct termios *t, speedt speed) | |
579 | /*:statusreturn@*/ ; | |
580 | ||
581 | /* | |
582 | ** Built in | |
583 | */ | |
584 | ||
585 | /*@exits@*/ void __assert_fail (/*@notnull@*/ const char *assertion, | |
586 | /*@notnull@*/ const char *file, | |
587 | unsigned int line, | |
588 | /*@null@*/ const char *function) | |
589 | /*@modifies stderr@*/; |