• 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