• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  //! Interface to the [SOLID] C library
2  //!
3  //! [SOLID]: https://solid.kmckk.com/
4  
5  pub type c_schar = i8;
6  pub type c_uchar = u8;
7  pub type c_short = i16;
8  pub type c_ushort = u16;
9  pub type c_int = i32;
10  pub type c_uint = u32;
11  pub type c_float = f32;
12  pub type c_double = f64;
13  pub type c_longlong = i64;
14  pub type c_ulonglong = u64;
15  pub type intmax_t = i64;
16  pub type uintmax_t = u64;
17  
18  pub type uintptr_t = usize;
19  pub type intptr_t = isize;
20  pub type ptrdiff_t = isize;
21  pub type size_t = ::uintptr_t;
22  pub type ssize_t = ::intptr_t;
23  
24  pub type clock_t = c_uint;
25  pub type time_t = i64;
26  pub type clockid_t = c_int;
27  pub type timer_t = c_int;
28  pub type suseconds_t = c_int;
29  pub type useconds_t = c_uint;
30  
31  pub type sighandler_t = size_t;
32  
33  // sys/ansi.h
34  pub type __caddr_t = *mut c_char;
35  pub type __gid_t = u32;
36  pub type __in_addr_t = u32;
37  pub type __in_port_t = u16;
38  pub type __mode_t = u32;
39  pub type __off_t = i64;
40  pub type __pid_t = i32;
41  pub type __sa_family_t = u8;
42  pub type __socklen_t = c_uint;
43  pub type __uid_t = u32;
44  pub type __fsblkcnt_t = u64;
45  pub type __fsfilcnt_t = u64;
46  
47  // locale.h
48  pub type locale_t = usize;
49  
50  // nl_types.h
51  pub type nl_item = c_long;
52  
53  // sys/types.h
54  pub type __va_list = *mut c_char;
55  pub type u_int8_t = u8;
56  pub type u_int16_t = u16;
57  pub type u_int32_t = u32;
58  pub type u_int64_t = u64;
59  pub type u_char = c_uchar;
60  pub type u_short = c_ushort;
61  pub type u_int = c_uint;
62  pub type u_long = c_ulong;
63  pub type unchar = c_uchar;
64  pub type ushort = c_ushort;
65  pub type uint = c_uint;
66  pub type ulong = c_ulong;
67  pub type u_quad_t = u64;
68  pub type quad_t = i64;
69  pub type qaddr_t = *mut quad_t;
70  pub type longlong_t = i64;
71  pub type u_longlong_t = u64;
72  pub type blkcnt_t = i64;
73  pub type blksize_t = i32;
74  pub type fsblkcnt_t = __fsblkcnt_t;
75  pub type fsfilcnt_t = __fsfilcnt_t;
76  pub type caddr_t = __caddr_t;
77  pub type daddr_t = i64;
78  pub type dev_t = u64;
79  pub type fixpt_t = u32;
80  pub type gid_t = __gid_t;
81  pub type idtype_t = c_int;
82  pub type id_t = u32;
83  pub type ino_t = u64;
84  pub type key_t = c_long;
85  pub type mode_t = __mode_t;
86  pub type nlink_t = u32;
87  pub type off_t = __off_t;
88  pub type pid_t = __pid_t;
89  pub type lwpid_t = i32;
90  pub type rlim_t = u64;
91  pub type segsz_t = i32;
92  pub type swblk_t = i32;
93  pub type mqd_t = c_int;
94  pub type cpuid_t = c_ulong;
95  pub type psetid_t = c_int;
96  
97  s! {
98      // stat.h
99      pub struct stat {
100          pub st_dev: dev_t,
101          pub st_ino: ino_t,
102          pub st_mode: c_short,
103          pub st_nlink: c_short,
104          pub st_uid: c_short,
105          pub st_gid: c_short,
106          pub st_rdev: dev_t,
107          pub st_size: off_t,
108          pub st_atime: time_t,
109          pub st_mtime: time_t,
110          pub st_ctime: time_t,
111          pub st_blksize: blksize_t,
112      }
113  
114      // time.h
115      pub struct tm {
116          pub tm_sec: c_int,
117          pub tm_min: c_int,
118          pub tm_hour: c_int,
119          pub tm_mday: c_int,
120          pub tm_mon: c_int,
121          pub tm_year: c_int,
122          pub tm_wday: c_int,
123          pub tm_yday: c_int,
124          pub tm_isdst: c_int,
125          pub tm_gmtoff: c_long,
126          pub tm_zone: *mut c_char,
127      }
128  
129      // stdlib.h
130      pub struct qdiv_t {
131          pub quot: quad_t,
132          pub rem: quad_t,
133      }
134      pub struct lldiv_t {
135          pub quot: c_longlong,
136          pub rem: c_longlong,
137      }
138      pub struct div_t {
139          pub quot: c_int,
140          pub rem: c_int,
141      }
142      pub struct ldiv_t {
143          pub quot: c_long,
144          pub rem: c_long,
145      }
146  
147      // locale.h
148      pub struct lconv {
149          pub decimal_point: *mut c_char,
150          pub thousands_sep: *mut c_char,
151          pub grouping: *mut c_char,
152          pub int_curr_symbol: *mut c_char,
153          pub currency_symbol: *mut c_char,
154          pub mon_decimal_point: *mut c_char,
155          pub mon_thousands_sep: *mut c_char,
156          pub mon_grouping: *mut c_char,
157          pub positive_sign: *mut c_char,
158          pub negative_sign: *mut c_char,
159          pub int_frac_digits: c_char,
160          pub frac_digits: c_char,
161          pub p_cs_precedes: c_char,
162          pub p_sep_by_space: c_char,
163          pub n_cs_precedes: c_char,
164          pub n_sep_by_space: c_char,
165          pub p_sign_posn: c_char,
166          pub n_sign_posn: c_char,
167          pub int_p_cs_precedes: c_char,
168          pub int_n_cs_precedes: c_char,
169          pub int_p_sep_by_space: c_char,
170          pub int_n_sep_by_space: c_char,
171          pub int_p_sign_posn: c_char,
172          pub int_n_sign_posn: c_char,
173      }
174  
175      pub struct iovec {
176          pub iov_base: *mut c_void,
177          pub iov_len: size_t,
178      }
179  
180      pub struct timeval {
181          pub tv_sec: c_long,
182          pub tv_usec: c_long,
183      }
184  }
185  
186  pub const INT_MIN: c_int = -2147483648;
187  pub const INT_MAX: c_int = 2147483647;
188  
189  pub const EXIT_FAILURE: c_int = 1;
190  pub const EXIT_SUCCESS: c_int = 0;
191  pub const RAND_MAX: c_int = 0x7fffffff;
192  pub const EOF: c_int = -1;
193  pub const SEEK_SET: c_int = 0;
194  pub const SEEK_CUR: c_int = 1;
195  pub const SEEK_END: c_int = 2;
196  pub const _IOFBF: c_int = 0;
197  pub const _IONBF: c_int = 2;
198  pub const _IOLBF: c_int = 1;
199  pub const BUFSIZ: c_uint = 1024;
200  pub const FOPEN_MAX: c_uint = 20;
201  pub const FILENAME_MAX: c_uint = 1024;
202  
203  pub const O_RDONLY: c_int = 1;
204  pub const O_WRONLY: c_int = 2;
205  pub const O_RDWR: c_int = 4;
206  pub const O_APPEND: c_int = 8;
207  pub const O_CREAT: c_int = 0x10;
208  pub const O_EXCL: c_int = 0x400;
209  pub const O_TEXT: c_int = 0x100;
210  pub const O_BINARY: c_int = 0x200;
211  pub const O_TRUNC: c_int = 0x20;
212  pub const S_IEXEC: c_short = 0x0040;
213  pub const S_IWRITE: c_short = 0x0080;
214  pub const S_IREAD: c_short = 0x0100;
215  pub const S_IFCHR: c_short = 0x2000;
216  pub const S_IFDIR: c_short = 0x4000;
217  pub const S_IFMT: c_short = 0o160000;
218  pub const S_IFIFO: c_short = 0o0010000;
219  pub const S_IFBLK: c_short = 0o0060000;
220  pub const S_IFREG: c_short = 0o0100000;
221  
222  pub const LC_ALL: c_int = 0;
223  pub const LC_COLLATE: c_int = 1;
224  pub const LC_CTYPE: c_int = 2;
225  pub const LC_MONETARY: c_int = 3;
226  pub const LC_NUMERIC: c_int = 4;
227  pub const LC_TIME: c_int = 5;
228  pub const LC_MESSAGES: c_int = 6;
229  pub const _LC_LAST: c_int = 7;
230  
231  pub const EPERM: c_int = 1;
232  pub const ENOENT: c_int = 2;
233  pub const ESRCH: c_int = 3;
234  pub const EINTR: c_int = 4;
235  pub const EIO: c_int = 5;
236  pub const ENXIO: c_int = 6;
237  pub const E2BIG: c_int = 7;
238  pub const ENOEXEC: c_int = 8;
239  pub const EBADF: c_int = 9;
240  pub const ECHILD: c_int = 10;
241  pub const EAGAIN: c_int = 11;
242  pub const ENOMEM: c_int = 12;
243  pub const EACCES: c_int = 13;
244  pub const EFAULT: c_int = 14;
245  pub const ENOTBLK: c_int = 15;
246  pub const EBUSY: c_int = 16;
247  pub const EEXIST: c_int = 17;
248  pub const EXDEV: c_int = 18;
249  pub const ENODEV: c_int = 19;
250  pub const ENOTDIR: c_int = 20;
251  pub const EISDIR: c_int = 21;
252  pub const EINVAL: c_int = 22;
253  pub const ENFILE: c_int = 23;
254  pub const EMFILE: c_int = 24;
255  pub const ENOTTY: c_int = 25;
256  pub const ETXTBSY: c_int = 26;
257  pub const EFBIG: c_int = 27;
258  pub const ENOSPC: c_int = 28;
259  pub const ESPIPE: c_int = 29;
260  pub const EROFS: c_int = 30;
261  pub const EMLINK: c_int = 31;
262  pub const EPIPE: c_int = 32;
263  pub const EDOM: c_int = 33;
264  pub const ERANGE: c_int = 34;
265  
266  pub const EDEADLK: c_int = 35;
267  pub const ENAMETOOLONG: c_int = 36;
268  pub const ENOLCK: c_int = 37;
269  pub const ENOSYS: c_int = 38;
270  pub const ENOTEMPTY: c_int = 39;
271  pub const ELOOP: c_int = 40;
272  pub const EWOULDBLOCK: c_int = EAGAIN;
273  pub const ENOMSG: c_int = 42;
274  pub const EIDRM: c_int = 43;
275  pub const ECHRNG: c_int = 44;
276  pub const EL2NSYNC: c_int = 45;
277  pub const EL3HLT: c_int = 46;
278  pub const EL3RST: c_int = 47;
279  pub const ELNRNG: c_int = 48;
280  pub const EUNATCH: c_int = 49;
281  pub const ENOCSI: c_int = 50;
282  pub const EL2HLT: c_int = 51;
283  pub const EBADE: c_int = 52;
284  pub const EBADR: c_int = 53;
285  pub const EXFULL: c_int = 54;
286  pub const ENOANO: c_int = 55;
287  pub const EBADRQC: c_int = 56;
288  pub const EBADSLT: c_int = 57;
289  
290  pub const EDEADLOCK: c_int = EDEADLK;
291  
292  pub const EBFONT: c_int = 59;
293  pub const ENOSTR: c_int = 60;
294  pub const ENODATA: c_int = 61;
295  pub const ETIME: c_int = 62;
296  pub const ENOSR: c_int = 63;
297  pub const ENONET: c_int = 64;
298  pub const ENOPKG: c_int = 65;
299  pub const EREMOTE: c_int = 66;
300  pub const ENOLINK: c_int = 67;
301  pub const EADV: c_int = 68;
302  pub const ESRMNT: c_int = 69;
303  pub const ECOMM: c_int = 70;
304  pub const EPROTO: c_int = 71;
305  pub const EMULTIHOP: c_int = 72;
306  pub const EDOTDOT: c_int = 73;
307  pub const EBADMSG: c_int = 74;
308  pub const EOVERFLOW: c_int = 75;
309  pub const ENOTUNIQ: c_int = 76;
310  pub const EBADFD: c_int = 77;
311  pub const EREMCHG: c_int = 78;
312  pub const ELIBACC: c_int = 79;
313  pub const ELIBBAD: c_int = 80;
314  pub const ELIBSCN: c_int = 81;
315  pub const ELIBMAX: c_int = 82;
316  pub const ELIBEXEC: c_int = 83;
317  pub const EILSEQ: c_int = 84;
318  pub const ERESTART: c_int = 85;
319  pub const ESTRPIPE: c_int = 86;
320  pub const EUSERS: c_int = 87;
321  pub const ENOTSOCK: c_int = 88;
322  pub const EDESTADDRREQ: c_int = 89;
323  pub const EMSGSIZE: c_int = 90;
324  pub const EPROTOTYPE: c_int = 91;
325  pub const ENOPROTOOPT: c_int = 92;
326  pub const EPROTONOSUPPORT: c_int = 93;
327  pub const ESOCKTNOSUPPORT: c_int = 94;
328  pub const EOPNOTSUPP: c_int = 95;
329  pub const EPFNOSUPPORT: c_int = 96;
330  pub const EAFNOSUPPORT: c_int = 97;
331  pub const EADDRINUSE: c_int = 98;
332  pub const EADDRNOTAVAIL: c_int = 99;
333  pub const ENETDOWN: c_int = 100;
334  pub const ENETUNREACH: c_int = 101;
335  pub const ENETRESET: c_int = 102;
336  pub const ECONNABORTED: c_int = 103;
337  pub const ECONNRESET: c_int = 104;
338  pub const ENOBUFS: c_int = 105;
339  pub const EISCONN: c_int = 106;
340  pub const ENOTCONN: c_int = 107;
341  pub const ESHUTDOWN: c_int = 108;
342  pub const ETOOMANYREFS: c_int = 109;
343  pub const ETIMEDOUT: c_int = 110;
344  pub const ECONNREFUSED: c_int = 111;
345  pub const EHOSTDOWN: c_int = 112;
346  pub const EHOSTUNREACH: c_int = 113;
347  pub const EALREADY: c_int = 114;
348  pub const EINPROGRESS: c_int = 115;
349  pub const ESTALE: c_int = 116;
350  pub const EUCLEAN: c_int = 117;
351  pub const ENOTNAM: c_int = 118;
352  pub const ENAVAIL: c_int = 119;
353  pub const EISNAM: c_int = 120;
354  pub const EREMOTEIO: c_int = 121;
355  pub const EDQUOT: c_int = 122;
356  
357  pub const ENOMEDIUM: c_int = 123;
358  pub const EMEDIUMTYPE: c_int = 124;
359  pub const ECANCELED: c_int = 125;
360  pub const ENOKEY: c_int = 126;
361  pub const EKEYEXPIRED: c_int = 127;
362  pub const EKEYREVOKED: c_int = 128;
363  pub const EKEYREJECTED: c_int = 129;
364  
365  pub const EOWNERDEAD: c_int = 130;
366  pub const ENOTRECOVERABLE: c_int = 131;
367  
368  pub const ENOTSUP: c_int = 132;
369  pub const EFTYPE: c_int = 133;
370  
371  // signal codes
372  pub const SIGHUP: c_int = 1;
373  pub const SIGINT: c_int = 2;
374  pub const SIGQUIT: c_int = 3;
375  pub const SIGILL: c_int = 4;
376  pub const SIGTRAP: c_int = 5;
377  pub const SIGABRT: c_int = 6;
378  pub const SIGIOT: c_int = SIGABRT;
379  pub const SIGEMT: c_int = 7;
380  pub const SIGFPE: c_int = 8;
381  pub const SIGKILL: c_int = 9;
382  pub const SIGBUS: c_int = 10;
383  pub const SIGSEGV: c_int = 11;
384  pub const SIGSYS: c_int = 12;
385  pub const SIGPIPE: c_int = 13;
386  pub const SIGALRM: c_int = 14;
387  pub const SIGTERM: c_int = 15;
388  pub const SIGURG: c_int = 16;
389  pub const SIGSTOP: c_int = 17;
390  pub const SIGTSTP: c_int = 18;
391  pub const SIGCONT: c_int = 19;
392  pub const SIGCHLD: c_int = 20;
393  pub const SIGTTIN: c_int = 21;
394  pub const SIGTTOU: c_int = 22;
395  pub const SIGIO: c_int = 23;
396  pub const SIGXCPU: c_int = 24;
397  pub const SIGXFSZ: c_int = 25;
398  pub const SIGVTALRM: c_int = 26;
399  pub const SIGPROF: c_int = 27;
400  pub const SIGWINCH: c_int = 28;
401  pub const SIGINFO: c_int = 29;
402  pub const SIGUSR1: c_int = 30;
403  pub const SIGUSR2: c_int = 31;
404  pub const SIGPWR: c_int = 32;
405  
406  #[cfg_attr(feature = "extra_traits", derive(Debug))]
407  pub enum FILE {}
408  impl ::Copy for FILE {}
409  impl ::Clone for FILE {
clone(&self) -> FILE410      fn clone(&self) -> FILE {
411          *self
412      }
413  }
414  #[cfg_attr(feature = "extra_traits", derive(Debug))]
415  pub enum fpos_t {}
416  impl ::Copy for fpos_t {}
417  impl ::Clone for fpos_t {
clone(&self) -> fpos_t418      fn clone(&self) -> fpos_t {
419          *self
420      }
421  }
422  
423  extern "C" {
424      // ctype.h
isalnum(c: c_int) -> c_int425      pub fn isalnum(c: c_int) -> c_int;
isalpha(c: c_int) -> c_int426      pub fn isalpha(c: c_int) -> c_int;
iscntrl(c: c_int) -> c_int427      pub fn iscntrl(c: c_int) -> c_int;
isdigit(c: c_int) -> c_int428      pub fn isdigit(c: c_int) -> c_int;
isgraph(c: c_int) -> c_int429      pub fn isgraph(c: c_int) -> c_int;
islower(c: c_int) -> c_int430      pub fn islower(c: c_int) -> c_int;
isprint(c: c_int) -> c_int431      pub fn isprint(c: c_int) -> c_int;
ispunct(c: c_int) -> c_int432      pub fn ispunct(c: c_int) -> c_int;
isspace(c: c_int) -> c_int433      pub fn isspace(c: c_int) -> c_int;
isupper(c: c_int) -> c_int434      pub fn isupper(c: c_int) -> c_int;
isxdigit(c: c_int) -> c_int435      pub fn isxdigit(c: c_int) -> c_int;
isblank(c: c_int) -> c_int436      pub fn isblank(c: c_int) -> c_int;
tolower(c: c_int) -> c_int437      pub fn tolower(c: c_int) -> c_int;
toupper(c: c_int) -> c_int438      pub fn toupper(c: c_int) -> c_int;
439  
440      // stdio.h
__get_stdio_file(fileno: c_int) -> *mut FILE441      pub fn __get_stdio_file(fileno: c_int) -> *mut FILE;
clearerr(arg1: *mut FILE)442      pub fn clearerr(arg1: *mut FILE);
fclose(arg1: *mut FILE) -> c_int443      pub fn fclose(arg1: *mut FILE) -> c_int;
feof(arg1: *mut FILE) -> c_int444      pub fn feof(arg1: *mut FILE) -> c_int;
ferror(arg1: *mut FILE) -> c_int445      pub fn ferror(arg1: *mut FILE) -> c_int;
fflush(arg1: *mut FILE) -> c_int446      pub fn fflush(arg1: *mut FILE) -> c_int;
fgetc(arg1: *mut FILE) -> c_int447      pub fn fgetc(arg1: *mut FILE) -> c_int;
fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char448      pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char;
fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE449      pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE;
fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int450      pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
fputc(arg1: c_int, arg2: *mut FILE) -> c_int451      pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int;
fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int452      pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int;
fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t453      pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE454      pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE;
fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int455      pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int456      pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int;
ftell(arg1: *mut FILE) -> c_long457      pub fn ftell(arg1: *mut FILE) -> c_long;
fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t458      pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
getc(arg1: *mut FILE) -> c_int459      pub fn getc(arg1: *mut FILE) -> c_int;
getchar() -> c_int460      pub fn getchar() -> c_int;
perror(arg1: *const c_char)461      pub fn perror(arg1: *const c_char);
printf(arg1: *const c_char, ...) -> c_int462      pub fn printf(arg1: *const c_char, ...) -> c_int;
putc(arg1: c_int, arg2: *mut FILE) -> c_int463      pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int;
putchar(arg1: c_int) -> c_int464      pub fn putchar(arg1: c_int) -> c_int;
puts(arg1: *const c_char) -> c_int465      pub fn puts(arg1: *const c_char) -> c_int;
remove(arg1: *const c_char) -> c_int466      pub fn remove(arg1: *const c_char) -> c_int;
rewind(arg1: *mut FILE)467      pub fn rewind(arg1: *mut FILE);
scanf(arg1: *const c_char, ...) -> c_int468      pub fn scanf(arg1: *const c_char, ...) -> c_int;
setbuf(arg1: *mut FILE, arg2: *mut c_char)469      pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char);
setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int470      pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int;
sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int471      pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int;
tmpfile() -> *mut FILE472      pub fn tmpfile() -> *mut FILE;
ungetc(arg1: c_int, arg2: *mut FILE) -> c_int473      pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int;
vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int474      pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
vprintf(arg1: *const c_char, arg2: __va_list) -> c_int475      pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
gets(arg1: *mut c_char) -> *mut c_char476      pub fn gets(arg1: *mut c_char) -> *mut c_char;
sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int477      pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
tmpnam(arg1: *const c_char) -> *mut c_char478      pub fn tmpnam(arg1: *const c_char) -> *mut c_char;
vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int479      pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
rename(arg1: *const c_char, arg2: *const c_char) -> c_int480      pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int;
asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int481      pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int;
fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int482      pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int483      pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
iprintf(arg1: *const c_char, ...) -> c_int484      pub fn iprintf(arg1: *const c_char, ...) -> c_int;
iscanf(arg1: *const c_char, ...) -> c_int485      pub fn iscanf(arg1: *const c_char, ...) -> c_int;
siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int486      pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int487      pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int488      pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int489      pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int490      pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int491      pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
viprintf(arg1: *const c_char, arg2: __va_list) -> c_int492      pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
viscanf(arg1: *const c_char, arg2: __va_list) -> c_int493      pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int;
vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int494      pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int495      pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
vsniprintf( arg1: *mut c_char, arg2: size_t, arg3: *const c_char, arg4: __va_list, ) -> c_int496      pub fn vsniprintf(
497          arg1: *mut c_char,
498          arg2: size_t,
499          arg3: *const c_char,
500          arg4: __va_list,
501      ) -> c_int;
vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int502      pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int;
diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int503      pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int;
fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int504      pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int;
fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int505      pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int;
fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE506      pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE;
fileno(arg1: *mut FILE) -> c_int507      pub fn fileno(arg1: *mut FILE) -> c_int;
flockfile(arg1: *mut FILE)508      pub fn flockfile(arg1: *mut FILE);
ftrylockfile(arg1: *mut FILE) -> c_int509      pub fn ftrylockfile(arg1: *mut FILE) -> c_int;
funlockfile(arg1: *mut FILE)510      pub fn funlockfile(arg1: *mut FILE);
getc_unlocked(arg1: *mut FILE) -> c_int511      pub fn getc_unlocked(arg1: *mut FILE) -> c_int;
getchar_unlocked() -> c_int512      pub fn getchar_unlocked() -> c_int;
putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int513      pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int;
putchar_unlocked(arg1: c_int) -> c_int514      pub fn putchar_unlocked(arg1: c_int) -> c_int;
snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int515      pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
vsnprintf( arg1: *mut c_char, arg2: size_t, arg3: *const c_char, arg4: __va_list, ) -> c_int516      pub fn vsnprintf(
517          arg1: *mut c_char,
518          arg2: size_t,
519          arg3: *const c_char,
520          arg4: __va_list,
521      ) -> c_int;
getw(arg1: *mut FILE) -> c_int522      pub fn getw(arg1: *mut FILE) -> c_int;
putw(arg1: c_int, arg2: *mut FILE) -> c_int523      pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int;
tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char524      pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int525      pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int;
ftello(stream: *mut FILE) -> off_t526      pub fn ftello(stream: *mut FILE) -> off_t;
527  
528      // stdlib.h
atof(arg1: *const c_char) -> f64529      pub fn atof(arg1: *const c_char) -> f64;
strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64530      pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
drand48() -> f64531      pub fn drand48() -> f64;
erand48(arg1: *mut c_ushort) -> f64532      pub fn erand48(arg1: *mut c_ushort) -> f64;
strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32533      pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32;
strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64534      pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64535      pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32536      pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32;
strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64537      pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
_Exit(arg1: c_int) -> !538      pub fn _Exit(arg1: c_int) -> !;
abort() -> !539      pub fn abort() -> !;
abs(arg1: c_int) -> c_int540      pub fn abs(arg1: c_int) -> c_int;
atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int541      pub fn atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
atoi(arg1: *const c_char) -> c_int542      pub fn atoi(arg1: *const c_char) -> c_int;
atol(arg1: *const c_char) -> c_long543      pub fn atol(arg1: *const c_char) -> c_long;
itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char544      pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char545      pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char546      pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
bsearch( arg1: *const c_void, arg2: *const c_void, arg3: size_t, arg4: size_t, arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, ) -> *mut c_void547      pub fn bsearch(
548          arg1: *const c_void,
549          arg2: *const c_void,
550          arg3: size_t,
551          arg4: size_t,
552          arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
553      ) -> *mut c_void;
calloc(arg1: size_t, arg2: size_t) -> *mut c_void554      pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void;
div(arg1: c_int, arg2: c_int) -> div_t555      pub fn div(arg1: c_int, arg2: c_int) -> div_t;
exit(arg1: c_int) -> !556      pub fn exit(arg1: c_int) -> !;
free(arg1: *mut c_void)557      pub fn free(arg1: *mut c_void);
getenv(arg1: *const c_char) -> *mut c_char558      pub fn getenv(arg1: *const c_char) -> *mut c_char;
labs(arg1: c_long) -> c_long559      pub fn labs(arg1: c_long) -> c_long;
ldiv(arg1: c_long, arg2: c_long) -> ldiv_t560      pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t;
malloc(arg1: size_t) -> *mut c_void561      pub fn malloc(arg1: size_t) -> *mut c_void;
qsort( arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, )562      pub fn qsort(
563          arg1: *mut c_void,
564          arg2: size_t,
565          arg3: size_t,
566          arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
567      );
rand() -> c_int568      pub fn rand() -> c_int;
realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void569      pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void;
srand(arg1: c_uint)570      pub fn srand(arg1: c_uint);
strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long571      pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long;
strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong572      pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong;
mblen(arg1: *const c_char, arg2: size_t) -> c_int573      pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int;
mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t574      pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t;
wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int575      pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int;
mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int576      pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int;
wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t577      pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t;
rand_r(arg1: *mut c_uint) -> c_int578      pub fn rand_r(arg1: *mut c_uint) -> c_int;
jrand48(arg1: *mut c_ushort) -> c_long579      pub fn jrand48(arg1: *mut c_ushort) -> c_long;
lcong48(arg1: *mut c_ushort)580      pub fn lcong48(arg1: *mut c_ushort);
lrand48() -> c_long581      pub fn lrand48() -> c_long;
mrand48() -> c_long582      pub fn mrand48() -> c_long;
nrand48(arg1: *mut c_ushort) -> c_long583      pub fn nrand48(arg1: *mut c_ushort) -> c_long;
seed48(arg1: *mut c_ushort) -> *mut c_ushort584      pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort;
srand48(arg1: c_long)585      pub fn srand48(arg1: c_long);
putenv(arg1: *mut c_char) -> c_int586      pub fn putenv(arg1: *mut c_char) -> c_int;
a64l(arg1: *const c_char) -> c_long587      pub fn a64l(arg1: *const c_char) -> c_long;
l64a(arg1: c_long) -> *mut c_char588      pub fn l64a(arg1: c_long) -> *mut c_char;
random() -> c_long589      pub fn random() -> c_long;
setstate(arg1: *mut c_char) -> *mut c_char590      pub fn setstate(arg1: *mut c_char) -> *mut c_char;
initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char591      pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char;
srandom(arg1: c_uint)592      pub fn srandom(arg1: c_uint);
mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int593      pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int;
mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int594      pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int;
mkdtemp(arg1: *mut c_char) -> *mut c_char595      pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char;
mkstemp(arg1: *mut c_char) -> c_int596      pub fn mkstemp(arg1: *mut c_char) -> c_int;
mktemp(arg1: *mut c_char) -> *mut c_char597      pub fn mktemp(arg1: *mut c_char) -> *mut c_char;
atoll(arg1: *const c_char) -> c_longlong598      pub fn atoll(arg1: *const c_char) -> c_longlong;
llabs(arg1: c_longlong) -> c_longlong599      pub fn llabs(arg1: c_longlong) -> c_longlong;
lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t600      pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t;
strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong601      pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong;
strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong602      pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong;
aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void603      pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void;
at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int604      pub fn at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
quick_exit(arg1: c_int)605      pub fn quick_exit(arg1: c_int);
setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int606      pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int;
unsetenv(arg1: *const c_char) -> c_int607      pub fn unsetenv(arg1: *const c_char) -> c_int;
humanize_number( arg1: *mut c_char, arg2: size_t, arg3: i64, arg4: *const c_char, arg5: c_int, arg6: c_int, ) -> c_int608      pub fn humanize_number(
609          arg1: *mut c_char,
610          arg2: size_t,
611          arg3: i64,
612          arg4: *const c_char,
613          arg5: c_int,
614          arg6: c_int,
615      ) -> c_int;
dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int616      pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int;
getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int617      pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int;
heapsort( arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, ) -> c_int618      pub fn heapsort(
619          arg1: *mut c_void,
620          arg2: size_t,
621          arg3: size_t,
622          arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
623      ) -> c_int;
mergesort( arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>, ) -> c_int624      pub fn mergesort(
625          arg1: *mut c_void,
626          arg2: size_t,
627          arg3: size_t,
628          arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
629      ) -> c_int;
radixsort( arg1: *mut *const c_uchar, arg2: c_int, arg3: *const c_uchar, arg4: c_uint, ) -> c_int630      pub fn radixsort(
631          arg1: *mut *const c_uchar,
632          arg2: c_int,
633          arg3: *const c_uchar,
634          arg4: c_uint,
635      ) -> c_int;
sradixsort( arg1: *mut *const c_uchar, arg2: c_int, arg3: *const c_uchar, arg4: c_uint, ) -> c_int636      pub fn sradixsort(
637          arg1: *mut *const c_uchar,
638          arg2: c_int,
639          arg3: *const c_uchar,
640          arg4: c_uint,
641      ) -> c_int;
getprogname() -> *const c_char642      pub fn getprogname() -> *const c_char;
setprogname(arg1: *const c_char)643      pub fn setprogname(arg1: *const c_char);
qabs(arg1: quad_t) -> quad_t644      pub fn qabs(arg1: quad_t) -> quad_t;
strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t645      pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t;
strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t646      pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t;
strsuftoll( arg1: *const c_char, arg2: *const c_char, arg3: c_longlong, arg4: c_longlong, ) -> c_longlong647      pub fn strsuftoll(
648          arg1: *const c_char,
649          arg2: *const c_char,
650          arg3: c_longlong,
651          arg4: c_longlong,
652      ) -> c_longlong;
strsuftollx( arg1: *const c_char, arg2: *const c_char, arg3: c_longlong, arg4: c_longlong, arg5: *mut c_char, arg6: size_t, ) -> c_longlong653      pub fn strsuftollx(
654          arg1: *const c_char,
655          arg2: *const c_char,
656          arg3: c_longlong,
657          arg4: c_longlong,
658          arg5: *mut c_char,
659          arg6: size_t,
660      ) -> c_longlong;
l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int661      pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int;
qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t662      pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t;
strtol_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> c_long663      pub fn strtol_l(
664          arg1: *const c_char,
665          arg2: *mut *mut c_char,
666          arg3: c_int,
667          arg4: locale_t,
668      ) -> c_long;
strtoul_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> c_ulong669      pub fn strtoul_l(
670          arg1: *const c_char,
671          arg2: *mut *mut c_char,
672          arg3: c_int,
673          arg4: locale_t,
674      ) -> c_ulong;
strtoll_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> c_longlong675      pub fn strtoll_l(
676          arg1: *const c_char,
677          arg2: *mut *mut c_char,
678          arg3: c_int,
679          arg4: locale_t,
680      ) -> c_longlong;
strtoull_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> c_ulonglong681      pub fn strtoull_l(
682          arg1: *const c_char,
683          arg2: *mut *mut c_char,
684          arg3: c_int,
685          arg4: locale_t,
686      ) -> c_ulonglong;
strtoq_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> quad_t687      pub fn strtoq_l(
688          arg1: *const c_char,
689          arg2: *mut *mut c_char,
690          arg3: c_int,
691          arg4: locale_t,
692      ) -> quad_t;
strtouq_l( arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int, arg4: locale_t, ) -> u_quad_t693      pub fn strtouq_l(
694          arg1: *const c_char,
695          arg2: *mut *mut c_char,
696          arg3: c_int,
697          arg4: locale_t,
698      ) -> u_quad_t;
_mb_cur_max_l(arg1: locale_t) -> size_t699      pub fn _mb_cur_max_l(arg1: locale_t) -> size_t;
mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int700      pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int;
mbstowcs_l( arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t, ) -> size_t701      pub fn mbstowcs_l(
702          arg1: *mut wchar_t,
703          arg2: *const c_char,
704          arg3: size_t,
705          arg4: locale_t,
706      ) -> size_t;
wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int707      pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int;
mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t) -> c_int708      pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t)
709          -> c_int;
wcstombs_l( arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t, arg4: locale_t, ) -> size_t710      pub fn wcstombs_l(
711          arg1: *mut c_char,
712          arg2: *const wchar_t,
713          arg3: size_t,
714          arg4: locale_t,
715      ) -> size_t;
716  
717      // string.h
memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void718      pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int719      pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void720      pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void721      pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void722      pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char723      pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char724      pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int725      pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int726      pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int;
strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char727      pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t728      pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
strerror(arg1: c_int) -> *mut c_char729      pub fn strerror(arg1: c_int) -> *mut c_char;
strlen(arg1: *const c_char) -> size_t730      pub fn strlen(arg1: *const c_char) -> size_t;
strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char731      pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int732      pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char733      pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char734      pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char735      pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
strspn(arg1: *const c_char, arg2: *const c_char) -> size_t736      pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char737      pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char738      pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char739      pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char;
strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int740      pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int;
strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t741      pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
memccpy( arg1: *mut c_void, arg2: *const c_void, arg3: c_int, arg4: size_t, ) -> *mut c_void742      pub fn memccpy(
743          arg1: *mut c_void,
744          arg2: *const c_void,
745          arg3: c_int,
746          arg4: size_t,
747      ) -> *mut c_void;
strdup(arg1: *const c_char) -> *mut c_char748      pub fn strdup(arg1: *const c_char) -> *mut c_char;
stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char749      pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char750      pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
strnlen(arg1: *const c_char, arg2: size_t) -> size_t751      pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t;
memmem( arg1: *const c_void, arg2: size_t, arg3: *const c_void, arg4: size_t, ) -> *mut c_void752      pub fn memmem(
753          arg1: *const c_void,
754          arg2: size_t,
755          arg3: *const c_void,
756          arg4: size_t,
757      ) -> *mut c_void;
strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char758      pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t759      pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t760      pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char761      pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char;
stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char762      pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char;
strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char763      pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char;
memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void764      pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void765      pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int766      pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int767      pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int;
strxfrm_l( arg1: *mut c_char, arg2: *const c_char, arg3: size_t, arg4: locale_t, ) -> size_t768      pub fn strxfrm_l(
769          arg1: *mut c_char,
770          arg2: *const c_char,
771          arg3: size_t,
772          arg4: locale_t,
773      ) -> size_t;
strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char774      pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char;
775  
776      // strings.h
bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int777      pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t)778      pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t);
bzero(arg1: *mut c_void, arg2: size_t)779      pub fn bzero(arg1: *mut c_void, arg2: size_t);
ffs(arg1: c_int) -> c_int780      pub fn ffs(arg1: c_int) -> c_int;
popcount(arg1: c_uint) -> c_uint781      pub fn popcount(arg1: c_uint) -> c_uint;
popcountl(arg1: c_ulong) -> c_uint782      pub fn popcountl(arg1: c_ulong) -> c_uint;
popcountll(arg1: c_ulonglong) -> c_uint783      pub fn popcountll(arg1: c_ulonglong) -> c_uint;
popcount32(arg1: u32) -> c_uint784      pub fn popcount32(arg1: u32) -> c_uint;
popcount64(arg1: u64) -> c_uint785      pub fn popcount64(arg1: u64) -> c_uint;
rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char786      pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char;
strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int787      pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int788      pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
789  
790      // signal.h
signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t791      pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t;
raise(arg1: c_int) -> c_int792      pub fn raise(arg1: c_int) -> c_int;
793  
794      // time.h
asctime(arg1: *const tm) -> *mut c_char795      pub fn asctime(arg1: *const tm) -> *mut c_char;
clock() -> clock_t796      pub fn clock() -> clock_t;
ctime(arg1: *const time_t) -> *mut c_char797      pub fn ctime(arg1: *const time_t) -> *mut c_char;
difftime(arg1: time_t, arg2: time_t) -> f64798      pub fn difftime(arg1: time_t, arg2: time_t) -> f64;
gmtime(arg1: *const time_t) -> *mut tm799      pub fn gmtime(arg1: *const time_t) -> *mut tm;
localtime(arg1: *const time_t) -> *mut tm800      pub fn localtime(arg1: *const time_t) -> *mut tm;
time(arg1: *mut time_t) -> time_t801      pub fn time(arg1: *mut time_t) -> time_t;
mktime(arg1: *mut tm) -> time_t802      pub fn mktime(arg1: *mut tm) -> time_t;
strftime( arg1: *mut c_char, arg2: size_t, arg3: *const c_char, arg4: *const tm, ) -> size_t803      pub fn strftime(
804          arg1: *mut c_char,
805          arg2: size_t,
806          arg3: *const c_char,
807          arg4: *const tm,
808      ) -> size_t;
utime(arg1: *const c_char, arg2: *mut time_t) -> c_int809      pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int;
asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char810      pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char;
ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char811      pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char;
gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm812      pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm813      pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
814  
815      // sys/stat.h
stat(arg1: *const c_char, arg2: *mut stat) -> c_int816      pub fn stat(arg1: *const c_char, arg2: *mut stat) -> c_int;
lstat(arg1: *const c_char, arg2: *mut stat) -> c_int817      pub fn lstat(arg1: *const c_char, arg2: *mut stat) -> c_int;
fstat(arg1: c_int, arg2: *mut stat) -> c_int818      pub fn fstat(arg1: c_int, arg2: *mut stat) -> c_int;
chmod(arg1: *const c_char, arg2: __mode_t) -> c_int819      pub fn chmod(arg1: *const c_char, arg2: __mode_t) -> c_int;
mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int820      pub fn mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int;
821  
822      // fcntl.h
open(arg1: *const c_char, arg2: c_int, ...) -> c_int823      pub fn open(arg1: *const c_char, arg2: c_int, ...) -> c_int;
creat(arg1: *const c_char, arg2: c_int) -> c_int824      pub fn creat(arg1: *const c_char, arg2: c_int) -> c_int;
close(arg1: c_int) -> c_int825      pub fn close(arg1: c_int) -> c_int;
read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int826      pub fn read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int;
write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int827      pub fn write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int;
unlink(arg1: *const c_char) -> c_int828      pub fn unlink(arg1: *const c_char) -> c_int;
tell(arg1: c_int) -> c_long829      pub fn tell(arg1: c_int) -> c_long;
dup(arg1: c_int) -> c_int830      pub fn dup(arg1: c_int) -> c_int;
dup2(arg1: c_int, arg2: c_int) -> c_int831      pub fn dup2(arg1: c_int, arg2: c_int) -> c_int;
access(arg1: *const c_char, arg2: c_int) -> c_int832      pub fn access(arg1: *const c_char, arg2: c_int) -> c_int;
rmdir(arg1: *const c_char) -> c_int833      pub fn rmdir(arg1: *const c_char) -> c_int;
chdir(arg1: *const c_char) -> c_int834      pub fn chdir(arg1: *const c_char) -> c_int;
_exit(arg1: c_int)835      pub fn _exit(arg1: c_int);
getwd(arg1: *mut c_char) -> *mut c_char836      pub fn getwd(arg1: *mut c_char) -> *mut c_char;
getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char837      pub fn getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char;
838      pub static mut optarg: *mut c_char;
839      pub static mut opterr: c_int;
840      pub static mut optind: c_int;
841      pub static mut optopt: c_int;
842      pub static mut optreset: c_int;
getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int843      pub fn getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int;
844      pub static mut suboptarg: *mut c_char;
getsubopt( arg1: *mut *mut c_char, arg2: *const *mut c_char, arg3: *mut *mut c_char, ) -> c_int845      pub fn getsubopt(
846          arg1: *mut *mut c_char,
847          arg2: *const *mut c_char,
848          arg3: *mut *mut c_char,
849      ) -> c_int;
fcntl(arg1: c_int, arg2: c_int, ...) -> c_int850      pub fn fcntl(arg1: c_int, arg2: c_int, ...) -> c_int;
getpid() -> pid_t851      pub fn getpid() -> pid_t;
sleep(arg1: c_uint) -> c_uint852      pub fn sleep(arg1: c_uint) -> c_uint;
usleep(arg1: useconds_t) -> c_int853      pub fn usleep(arg1: useconds_t) -> c_int;
854  
855      // locale.h
localeconv() -> *mut lconv856      pub fn localeconv() -> *mut lconv;
setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char857      pub fn setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char;
duplocale(arg1: locale_t) -> locale_t858      pub fn duplocale(arg1: locale_t) -> locale_t;
freelocale(arg1: locale_t)859      pub fn freelocale(arg1: locale_t);
localeconv_l(arg1: locale_t) -> *mut lconv860      pub fn localeconv_l(arg1: locale_t) -> *mut lconv;
newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t861      pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t;
862  
863      // langinfo.h
nl_langinfo(item: ::nl_item) -> *mut ::c_char864      pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char865      pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char;
866  
867      // malloc.h
memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void868      pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
869  
870      // sys/types.h
lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t871      pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t;
872  }
873  
874  cfg_if! {
875      if #[cfg(libc_core_cvoid)] {
876          pub use ::ffi::c_void;
877      } else {
878          // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
879          // enable more optimization opportunities around it recognizing things
880          // like malloc/free.
881          #[repr(u8)]
882          #[allow(missing_copy_implementations)]
883          #[allow(missing_debug_implementations)]
884          pub enum c_void {
885              // Two dummy variants so the #[repr] attribute can be used.
886              #[doc(hidden)]
887              __variant1,
888              #[doc(hidden)]
889              __variant2,
890          }
891      }
892  }
893  
894  cfg_if! {
895      if #[cfg(target_arch = "aarch64")] {
896          mod aarch64;
897          pub use self::aarch64::*;
898      } else if #[cfg(any(target_arch = "arm"))] {
899          mod arm;
900          pub use self::arm::*;
901      } else {
902          // Unknown target_arch
903      }
904  }
905