xref: /rust-libc-0.2.174/src/solid/mod.rs (revision 9e27ce67)
1*9e27ce67STomoaki Kawada //! Interface to the [SOLID] C library
2*9e27ce67STomoaki Kawada //!
3*9e27ce67STomoaki Kawada //! [SOLID]: https://solid.kmckk.com/
4*9e27ce67STomoaki Kawada 
5*9e27ce67STomoaki Kawada pub type c_schar = i8;
6*9e27ce67STomoaki Kawada pub type c_uchar = u8;
7*9e27ce67STomoaki Kawada pub type c_short = i16;
8*9e27ce67STomoaki Kawada pub type c_ushort = u16;
9*9e27ce67STomoaki Kawada pub type c_int = i32;
10*9e27ce67STomoaki Kawada pub type c_uint = u32;
11*9e27ce67STomoaki Kawada pub type c_float = f32;
12*9e27ce67STomoaki Kawada pub type c_double = f64;
13*9e27ce67STomoaki Kawada pub type c_longlong = i64;
14*9e27ce67STomoaki Kawada pub type c_ulonglong = u64;
15*9e27ce67STomoaki Kawada pub type intmax_t = i64;
16*9e27ce67STomoaki Kawada pub type uintmax_t = u64;
17*9e27ce67STomoaki Kawada 
18*9e27ce67STomoaki Kawada pub type uintptr_t = usize;
19*9e27ce67STomoaki Kawada pub type intptr_t = isize;
20*9e27ce67STomoaki Kawada pub type ptrdiff_t = isize;
21*9e27ce67STomoaki Kawada pub type size_t = ::uintptr_t;
22*9e27ce67STomoaki Kawada pub type ssize_t = ::intptr_t;
23*9e27ce67STomoaki Kawada 
24*9e27ce67STomoaki Kawada pub type clock_t = c_uint;
25*9e27ce67STomoaki Kawada pub type time_t = i64;
26*9e27ce67STomoaki Kawada pub type clockid_t = c_int;
27*9e27ce67STomoaki Kawada pub type timer_t = c_int;
28*9e27ce67STomoaki Kawada pub type suseconds_t = c_int;
29*9e27ce67STomoaki Kawada pub type useconds_t = c_uint;
30*9e27ce67STomoaki Kawada 
31*9e27ce67STomoaki Kawada pub type sighandler_t = size_t;
32*9e27ce67STomoaki Kawada 
33*9e27ce67STomoaki Kawada // sys/ansi.h
34*9e27ce67STomoaki Kawada pub type __caddr_t = *mut c_char;
35*9e27ce67STomoaki Kawada pub type __gid_t = u32;
36*9e27ce67STomoaki Kawada pub type __in_addr_t = u32;
37*9e27ce67STomoaki Kawada pub type __in_port_t = u16;
38*9e27ce67STomoaki Kawada pub type __mode_t = u32;
39*9e27ce67STomoaki Kawada pub type __off_t = i64;
40*9e27ce67STomoaki Kawada pub type __pid_t = i32;
41*9e27ce67STomoaki Kawada pub type __sa_family_t = u8;
42*9e27ce67STomoaki Kawada pub type __socklen_t = c_uint;
43*9e27ce67STomoaki Kawada pub type __uid_t = u32;
44*9e27ce67STomoaki Kawada pub type __fsblkcnt_t = u64;
45*9e27ce67STomoaki Kawada pub type __fsfilcnt_t = u64;
46*9e27ce67STomoaki Kawada 
47*9e27ce67STomoaki Kawada // locale.h
48*9e27ce67STomoaki Kawada pub type locale_t = usize;
49*9e27ce67STomoaki Kawada 
50*9e27ce67STomoaki Kawada // nl_types.h
51*9e27ce67STomoaki Kawada pub type nl_item = c_long;
52*9e27ce67STomoaki Kawada 
53*9e27ce67STomoaki Kawada // sys/types.h
54*9e27ce67STomoaki Kawada pub type __va_list = *mut c_char;
55*9e27ce67STomoaki Kawada pub type u_int8_t = u8;
56*9e27ce67STomoaki Kawada pub type u_int16_t = u16;
57*9e27ce67STomoaki Kawada pub type u_int32_t = u32;
58*9e27ce67STomoaki Kawada pub type u_int64_t = u64;
59*9e27ce67STomoaki Kawada pub type u_char = c_uchar;
60*9e27ce67STomoaki Kawada pub type u_short = c_ushort;
61*9e27ce67STomoaki Kawada pub type u_int = c_uint;
62*9e27ce67STomoaki Kawada pub type u_long = c_ulong;
63*9e27ce67STomoaki Kawada pub type unchar = c_uchar;
64*9e27ce67STomoaki Kawada pub type ushort = c_ushort;
65*9e27ce67STomoaki Kawada pub type uint = c_uint;
66*9e27ce67STomoaki Kawada pub type ulong = c_ulong;
67*9e27ce67STomoaki Kawada pub type u_quad_t = u64;
68*9e27ce67STomoaki Kawada pub type quad_t = i64;
69*9e27ce67STomoaki Kawada pub type qaddr_t = *mut quad_t;
70*9e27ce67STomoaki Kawada pub type longlong_t = i64;
71*9e27ce67STomoaki Kawada pub type u_longlong_t = u64;
72*9e27ce67STomoaki Kawada pub type blkcnt_t = i64;
73*9e27ce67STomoaki Kawada pub type blksize_t = i32;
74*9e27ce67STomoaki Kawada pub type fsblkcnt_t = __fsblkcnt_t;
75*9e27ce67STomoaki Kawada pub type fsfilcnt_t = __fsfilcnt_t;
76*9e27ce67STomoaki Kawada pub type caddr_t = __caddr_t;
77*9e27ce67STomoaki Kawada pub type daddr_t = i64;
78*9e27ce67STomoaki Kawada pub type dev_t = u64;
79*9e27ce67STomoaki Kawada pub type fixpt_t = u32;
80*9e27ce67STomoaki Kawada pub type gid_t = __gid_t;
81*9e27ce67STomoaki Kawada pub type idtype_t = c_int;
82*9e27ce67STomoaki Kawada pub type id_t = u32;
83*9e27ce67STomoaki Kawada pub type ino_t = u64;
84*9e27ce67STomoaki Kawada pub type key_t = c_long;
85*9e27ce67STomoaki Kawada pub type mode_t = __mode_t;
86*9e27ce67STomoaki Kawada pub type nlink_t = u32;
87*9e27ce67STomoaki Kawada pub type off_t = __off_t;
88*9e27ce67STomoaki Kawada pub type pid_t = __pid_t;
89*9e27ce67STomoaki Kawada pub type lwpid_t = i32;
90*9e27ce67STomoaki Kawada pub type rlim_t = u64;
91*9e27ce67STomoaki Kawada pub type segsz_t = i32;
92*9e27ce67STomoaki Kawada pub type swblk_t = i32;
93*9e27ce67STomoaki Kawada pub type mqd_t = c_int;
94*9e27ce67STomoaki Kawada pub type cpuid_t = c_ulong;
95*9e27ce67STomoaki Kawada pub type psetid_t = c_int;
96*9e27ce67STomoaki Kawada 
97*9e27ce67STomoaki Kawada s! {
98*9e27ce67STomoaki Kawada     // stat.h
99*9e27ce67STomoaki Kawada     pub struct stat {
100*9e27ce67STomoaki Kawada         pub st_dev: dev_t,
101*9e27ce67STomoaki Kawada         pub st_ino: ino_t,
102*9e27ce67STomoaki Kawada         pub st_mode: c_short,
103*9e27ce67STomoaki Kawada         pub st_nlink: c_short,
104*9e27ce67STomoaki Kawada         pub st_uid: c_short,
105*9e27ce67STomoaki Kawada         pub st_gid: c_short,
106*9e27ce67STomoaki Kawada         pub st_rdev: dev_t,
107*9e27ce67STomoaki Kawada         pub st_size: off_t,
108*9e27ce67STomoaki Kawada         pub st_atime: time_t,
109*9e27ce67STomoaki Kawada         pub st_mtime: time_t,
110*9e27ce67STomoaki Kawada         pub st_ctime: time_t,
111*9e27ce67STomoaki Kawada         pub st_blksize: blksize_t,
112*9e27ce67STomoaki Kawada     }
113*9e27ce67STomoaki Kawada 
114*9e27ce67STomoaki Kawada     // time.h
115*9e27ce67STomoaki Kawada     pub struct tm {
116*9e27ce67STomoaki Kawada         pub tm_sec: c_int,
117*9e27ce67STomoaki Kawada         pub tm_min: c_int,
118*9e27ce67STomoaki Kawada         pub tm_hour: c_int,
119*9e27ce67STomoaki Kawada         pub tm_mday: c_int,
120*9e27ce67STomoaki Kawada         pub tm_mon: c_int,
121*9e27ce67STomoaki Kawada         pub tm_year: c_int,
122*9e27ce67STomoaki Kawada         pub tm_wday: c_int,
123*9e27ce67STomoaki Kawada         pub tm_yday: c_int,
124*9e27ce67STomoaki Kawada         pub tm_isdst: c_int,
125*9e27ce67STomoaki Kawada         pub tm_gmtoff: c_long,
126*9e27ce67STomoaki Kawada         pub tm_zone: *mut c_char,
127*9e27ce67STomoaki Kawada     }
128*9e27ce67STomoaki Kawada 
129*9e27ce67STomoaki Kawada     // stdlib.h
130*9e27ce67STomoaki Kawada     pub struct qdiv_t {
131*9e27ce67STomoaki Kawada         pub quot: quad_t,
132*9e27ce67STomoaki Kawada         pub rem: quad_t,
133*9e27ce67STomoaki Kawada     }
134*9e27ce67STomoaki Kawada     pub struct lldiv_t {
135*9e27ce67STomoaki Kawada         pub quot: c_longlong,
136*9e27ce67STomoaki Kawada         pub rem: c_longlong,
137*9e27ce67STomoaki Kawada     }
138*9e27ce67STomoaki Kawada     pub struct div_t {
139*9e27ce67STomoaki Kawada         pub quot: c_int,
140*9e27ce67STomoaki Kawada         pub rem: c_int,
141*9e27ce67STomoaki Kawada     }
142*9e27ce67STomoaki Kawada     pub struct ldiv_t {
143*9e27ce67STomoaki Kawada         pub quot: c_long,
144*9e27ce67STomoaki Kawada         pub rem: c_long,
145*9e27ce67STomoaki Kawada     }
146*9e27ce67STomoaki Kawada 
147*9e27ce67STomoaki Kawada     // locale.h
148*9e27ce67STomoaki Kawada     pub struct lconv {
149*9e27ce67STomoaki Kawada         pub decimal_point: *mut c_char,
150*9e27ce67STomoaki Kawada         pub thousands_sep: *mut c_char,
151*9e27ce67STomoaki Kawada         pub grouping: *mut c_char,
152*9e27ce67STomoaki Kawada         pub int_curr_symbol: *mut c_char,
153*9e27ce67STomoaki Kawada         pub currency_symbol: *mut c_char,
154*9e27ce67STomoaki Kawada         pub mon_decimal_point: *mut c_char,
155*9e27ce67STomoaki Kawada         pub mon_thousands_sep: *mut c_char,
156*9e27ce67STomoaki Kawada         pub mon_grouping: *mut c_char,
157*9e27ce67STomoaki Kawada         pub positive_sign: *mut c_char,
158*9e27ce67STomoaki Kawada         pub negative_sign: *mut c_char,
159*9e27ce67STomoaki Kawada         pub int_frac_digits: c_char,
160*9e27ce67STomoaki Kawada         pub frac_digits: c_char,
161*9e27ce67STomoaki Kawada         pub p_cs_precedes: c_char,
162*9e27ce67STomoaki Kawada         pub p_sep_by_space: c_char,
163*9e27ce67STomoaki Kawada         pub n_cs_precedes: c_char,
164*9e27ce67STomoaki Kawada         pub n_sep_by_space: c_char,
165*9e27ce67STomoaki Kawada         pub p_sign_posn: c_char,
166*9e27ce67STomoaki Kawada         pub n_sign_posn: c_char,
167*9e27ce67STomoaki Kawada         pub int_p_cs_precedes: c_char,
168*9e27ce67STomoaki Kawada         pub int_n_cs_precedes: c_char,
169*9e27ce67STomoaki Kawada         pub int_p_sep_by_space: c_char,
170*9e27ce67STomoaki Kawada         pub int_n_sep_by_space: c_char,
171*9e27ce67STomoaki Kawada         pub int_p_sign_posn: c_char,
172*9e27ce67STomoaki Kawada         pub int_n_sign_posn: c_char,
173*9e27ce67STomoaki Kawada     }
174*9e27ce67STomoaki Kawada 
175*9e27ce67STomoaki Kawada     pub struct iovec {
176*9e27ce67STomoaki Kawada         pub iov_base: *mut c_void,
177*9e27ce67STomoaki Kawada         pub iov_len: size_t,
178*9e27ce67STomoaki Kawada     }
179*9e27ce67STomoaki Kawada 
180*9e27ce67STomoaki Kawada     pub struct timeval {
181*9e27ce67STomoaki Kawada         pub tv_sec: c_long,
182*9e27ce67STomoaki Kawada         pub tv_usec: c_long,
183*9e27ce67STomoaki Kawada     }
184*9e27ce67STomoaki Kawada }
185*9e27ce67STomoaki Kawada 
186*9e27ce67STomoaki Kawada pub const INT_MIN: c_int = -2147483648;
187*9e27ce67STomoaki Kawada pub const INT_MAX: c_int = 2147483647;
188*9e27ce67STomoaki Kawada 
189*9e27ce67STomoaki Kawada pub const EXIT_FAILURE: c_int = 1;
190*9e27ce67STomoaki Kawada pub const EXIT_SUCCESS: c_int = 0;
191*9e27ce67STomoaki Kawada pub const RAND_MAX: c_int = 0x7fffffff;
192*9e27ce67STomoaki Kawada pub const EOF: c_int = -1;
193*9e27ce67STomoaki Kawada pub const SEEK_SET: c_int = 0;
194*9e27ce67STomoaki Kawada pub const SEEK_CUR: c_int = 1;
195*9e27ce67STomoaki Kawada pub const SEEK_END: c_int = 2;
196*9e27ce67STomoaki Kawada pub const _IOFBF: c_int = 0;
197*9e27ce67STomoaki Kawada pub const _IONBF: c_int = 2;
198*9e27ce67STomoaki Kawada pub const _IOLBF: c_int = 1;
199*9e27ce67STomoaki Kawada pub const BUFSIZ: c_uint = 1024;
200*9e27ce67STomoaki Kawada pub const FOPEN_MAX: c_uint = 20;
201*9e27ce67STomoaki Kawada pub const FILENAME_MAX: c_uint = 1024;
202*9e27ce67STomoaki Kawada 
203*9e27ce67STomoaki Kawada pub const O_RDONLY: c_int = 1;
204*9e27ce67STomoaki Kawada pub const O_WRONLY: c_int = 2;
205*9e27ce67STomoaki Kawada pub const O_RDWR: c_int = 4;
206*9e27ce67STomoaki Kawada pub const O_APPEND: c_int = 8;
207*9e27ce67STomoaki Kawada pub const O_CREAT: c_int = 0x10;
208*9e27ce67STomoaki Kawada pub const O_EXCL: c_int = 0x400;
209*9e27ce67STomoaki Kawada pub const O_TEXT: c_int = 0x100;
210*9e27ce67STomoaki Kawada pub const O_BINARY: c_int = 0x200;
211*9e27ce67STomoaki Kawada pub const O_TRUNC: c_int = 0x20;
212*9e27ce67STomoaki Kawada pub const S_IEXEC: c_short = 0x0040;
213*9e27ce67STomoaki Kawada pub const S_IWRITE: c_short = 0x0080;
214*9e27ce67STomoaki Kawada pub const S_IREAD: c_short = 0x0100;
215*9e27ce67STomoaki Kawada pub const S_IFCHR: c_short = 0x2000;
216*9e27ce67STomoaki Kawada pub const S_IFDIR: c_short = 0x4000;
217*9e27ce67STomoaki Kawada pub const S_IFMT: c_short = 0o160000;
218*9e27ce67STomoaki Kawada pub const S_IFIFO: c_short = 0o0010000;
219*9e27ce67STomoaki Kawada pub const S_IFBLK: c_short = 0o0060000;
220*9e27ce67STomoaki Kawada pub const S_IFREG: c_short = 0o0100000;
221*9e27ce67STomoaki Kawada 
222*9e27ce67STomoaki Kawada pub const LC_ALL: c_int = 0;
223*9e27ce67STomoaki Kawada pub const LC_COLLATE: c_int = 1;
224*9e27ce67STomoaki Kawada pub const LC_CTYPE: c_int = 2;
225*9e27ce67STomoaki Kawada pub const LC_MONETARY: c_int = 3;
226*9e27ce67STomoaki Kawada pub const LC_NUMERIC: c_int = 4;
227*9e27ce67STomoaki Kawada pub const LC_TIME: c_int = 5;
228*9e27ce67STomoaki Kawada pub const LC_MESSAGES: c_int = 6;
229*9e27ce67STomoaki Kawada pub const _LC_LAST: c_int = 7;
230*9e27ce67STomoaki Kawada 
231*9e27ce67STomoaki Kawada pub const EPERM: c_int = 1;
232*9e27ce67STomoaki Kawada pub const ENOENT: c_int = 2;
233*9e27ce67STomoaki Kawada pub const ESRCH: c_int = 3;
234*9e27ce67STomoaki Kawada pub const EINTR: c_int = 4;
235*9e27ce67STomoaki Kawada pub const EIO: c_int = 5;
236*9e27ce67STomoaki Kawada pub const ENXIO: c_int = 6;
237*9e27ce67STomoaki Kawada pub const E2BIG: c_int = 7;
238*9e27ce67STomoaki Kawada pub const ENOEXEC: c_int = 8;
239*9e27ce67STomoaki Kawada pub const EBADF: c_int = 9;
240*9e27ce67STomoaki Kawada pub const ECHILD: c_int = 10;
241*9e27ce67STomoaki Kawada pub const EAGAIN: c_int = 11;
242*9e27ce67STomoaki Kawada pub const ENOMEM: c_int = 12;
243*9e27ce67STomoaki Kawada pub const EACCES: c_int = 13;
244*9e27ce67STomoaki Kawada pub const EFAULT: c_int = 14;
245*9e27ce67STomoaki Kawada pub const ENOTBLK: c_int = 15;
246*9e27ce67STomoaki Kawada pub const EBUSY: c_int = 16;
247*9e27ce67STomoaki Kawada pub const EEXIST: c_int = 17;
248*9e27ce67STomoaki Kawada pub const EXDEV: c_int = 18;
249*9e27ce67STomoaki Kawada pub const ENODEV: c_int = 19;
250*9e27ce67STomoaki Kawada pub const ENOTDIR: c_int = 20;
251*9e27ce67STomoaki Kawada pub const EISDIR: c_int = 21;
252*9e27ce67STomoaki Kawada pub const EINVAL: c_int = 22;
253*9e27ce67STomoaki Kawada pub const ENFILE: c_int = 23;
254*9e27ce67STomoaki Kawada pub const EMFILE: c_int = 24;
255*9e27ce67STomoaki Kawada pub const ENOTTY: c_int = 25;
256*9e27ce67STomoaki Kawada pub const ETXTBSY: c_int = 26;
257*9e27ce67STomoaki Kawada pub const EFBIG: c_int = 27;
258*9e27ce67STomoaki Kawada pub const ENOSPC: c_int = 28;
259*9e27ce67STomoaki Kawada pub const ESPIPE: c_int = 29;
260*9e27ce67STomoaki Kawada pub const EROFS: c_int = 30;
261*9e27ce67STomoaki Kawada pub const EMLINK: c_int = 31;
262*9e27ce67STomoaki Kawada pub const EPIPE: c_int = 32;
263*9e27ce67STomoaki Kawada pub const EDOM: c_int = 33;
264*9e27ce67STomoaki Kawada pub const ERANGE: c_int = 34;
265*9e27ce67STomoaki Kawada 
266*9e27ce67STomoaki Kawada pub const EDEADLK: c_int = 35;
267*9e27ce67STomoaki Kawada pub const ENAMETOOLONG: c_int = 36;
268*9e27ce67STomoaki Kawada pub const ENOLCK: c_int = 37;
269*9e27ce67STomoaki Kawada pub const ENOSYS: c_int = 38;
270*9e27ce67STomoaki Kawada pub const ENOTEMPTY: c_int = 39;
271*9e27ce67STomoaki Kawada pub const ELOOP: c_int = 40;
272*9e27ce67STomoaki Kawada pub const EWOULDBLOCK: c_int = EAGAIN;
273*9e27ce67STomoaki Kawada pub const ENOMSG: c_int = 42;
274*9e27ce67STomoaki Kawada pub const EIDRM: c_int = 43;
275*9e27ce67STomoaki Kawada pub const ECHRNG: c_int = 44;
276*9e27ce67STomoaki Kawada pub const EL2NSYNC: c_int = 45;
277*9e27ce67STomoaki Kawada pub const EL3HLT: c_int = 46;
278*9e27ce67STomoaki Kawada pub const EL3RST: c_int = 47;
279*9e27ce67STomoaki Kawada pub const ELNRNG: c_int = 48;
280*9e27ce67STomoaki Kawada pub const EUNATCH: c_int = 49;
281*9e27ce67STomoaki Kawada pub const ENOCSI: c_int = 50;
282*9e27ce67STomoaki Kawada pub const EL2HLT: c_int = 51;
283*9e27ce67STomoaki Kawada pub const EBADE: c_int = 52;
284*9e27ce67STomoaki Kawada pub const EBADR: c_int = 53;
285*9e27ce67STomoaki Kawada pub const EXFULL: c_int = 54;
286*9e27ce67STomoaki Kawada pub const ENOANO: c_int = 55;
287*9e27ce67STomoaki Kawada pub const EBADRQC: c_int = 56;
288*9e27ce67STomoaki Kawada pub const EBADSLT: c_int = 57;
289*9e27ce67STomoaki Kawada 
290*9e27ce67STomoaki Kawada pub const EDEADLOCK: c_int = EDEADLK;
291*9e27ce67STomoaki Kawada 
292*9e27ce67STomoaki Kawada pub const EBFONT: c_int = 59;
293*9e27ce67STomoaki Kawada pub const ENOSTR: c_int = 60;
294*9e27ce67STomoaki Kawada pub const ENODATA: c_int = 61;
295*9e27ce67STomoaki Kawada pub const ETIME: c_int = 62;
296*9e27ce67STomoaki Kawada pub const ENOSR: c_int = 63;
297*9e27ce67STomoaki Kawada pub const ENONET: c_int = 64;
298*9e27ce67STomoaki Kawada pub const ENOPKG: c_int = 65;
299*9e27ce67STomoaki Kawada pub const EREMOTE: c_int = 66;
300*9e27ce67STomoaki Kawada pub const ENOLINK: c_int = 67;
301*9e27ce67STomoaki Kawada pub const EADV: c_int = 68;
302*9e27ce67STomoaki Kawada pub const ESRMNT: c_int = 69;
303*9e27ce67STomoaki Kawada pub const ECOMM: c_int = 70;
304*9e27ce67STomoaki Kawada pub const EPROTO: c_int = 71;
305*9e27ce67STomoaki Kawada pub const EMULTIHOP: c_int = 72;
306*9e27ce67STomoaki Kawada pub const EDOTDOT: c_int = 73;
307*9e27ce67STomoaki Kawada pub const EBADMSG: c_int = 74;
308*9e27ce67STomoaki Kawada pub const EOVERFLOW: c_int = 75;
309*9e27ce67STomoaki Kawada pub const ENOTUNIQ: c_int = 76;
310*9e27ce67STomoaki Kawada pub const EBADFD: c_int = 77;
311*9e27ce67STomoaki Kawada pub const EREMCHG: c_int = 78;
312*9e27ce67STomoaki Kawada pub const ELIBACC: c_int = 79;
313*9e27ce67STomoaki Kawada pub const ELIBBAD: c_int = 80;
314*9e27ce67STomoaki Kawada pub const ELIBSCN: c_int = 81;
315*9e27ce67STomoaki Kawada pub const ELIBMAX: c_int = 82;
316*9e27ce67STomoaki Kawada pub const ELIBEXEC: c_int = 83;
317*9e27ce67STomoaki Kawada pub const EILSEQ: c_int = 84;
318*9e27ce67STomoaki Kawada pub const ERESTART: c_int = 85;
319*9e27ce67STomoaki Kawada pub const ESTRPIPE: c_int = 86;
320*9e27ce67STomoaki Kawada pub const EUSERS: c_int = 87;
321*9e27ce67STomoaki Kawada pub const ENOTSOCK: c_int = 88;
322*9e27ce67STomoaki Kawada pub const EDESTADDRREQ: c_int = 89;
323*9e27ce67STomoaki Kawada pub const EMSGSIZE: c_int = 90;
324*9e27ce67STomoaki Kawada pub const EPROTOTYPE: c_int = 91;
325*9e27ce67STomoaki Kawada pub const ENOPROTOOPT: c_int = 92;
326*9e27ce67STomoaki Kawada pub const EPROTONOSUPPORT: c_int = 93;
327*9e27ce67STomoaki Kawada pub const ESOCKTNOSUPPORT: c_int = 94;
328*9e27ce67STomoaki Kawada pub const EOPNOTSUPP: c_int = 95;
329*9e27ce67STomoaki Kawada pub const EPFNOSUPPORT: c_int = 96;
330*9e27ce67STomoaki Kawada pub const EAFNOSUPPORT: c_int = 97;
331*9e27ce67STomoaki Kawada pub const EADDRINUSE: c_int = 98;
332*9e27ce67STomoaki Kawada pub const EADDRNOTAVAIL: c_int = 99;
333*9e27ce67STomoaki Kawada pub const ENETDOWN: c_int = 100;
334*9e27ce67STomoaki Kawada pub const ENETUNREACH: c_int = 101;
335*9e27ce67STomoaki Kawada pub const ENETRESET: c_int = 102;
336*9e27ce67STomoaki Kawada pub const ECONNABORTED: c_int = 103;
337*9e27ce67STomoaki Kawada pub const ECONNRESET: c_int = 104;
338*9e27ce67STomoaki Kawada pub const ENOBUFS: c_int = 105;
339*9e27ce67STomoaki Kawada pub const EISCONN: c_int = 106;
340*9e27ce67STomoaki Kawada pub const ENOTCONN: c_int = 107;
341*9e27ce67STomoaki Kawada pub const ESHUTDOWN: c_int = 108;
342*9e27ce67STomoaki Kawada pub const ETOOMANYREFS: c_int = 109;
343*9e27ce67STomoaki Kawada pub const ETIMEDOUT: c_int = 110;
344*9e27ce67STomoaki Kawada pub const ECONNREFUSED: c_int = 111;
345*9e27ce67STomoaki Kawada pub const EHOSTDOWN: c_int = 112;
346*9e27ce67STomoaki Kawada pub const EHOSTUNREACH: c_int = 113;
347*9e27ce67STomoaki Kawada pub const EALREADY: c_int = 114;
348*9e27ce67STomoaki Kawada pub const EINPROGRESS: c_int = 115;
349*9e27ce67STomoaki Kawada pub const ESTALE: c_int = 116;
350*9e27ce67STomoaki Kawada pub const EUCLEAN: c_int = 117;
351*9e27ce67STomoaki Kawada pub const ENOTNAM: c_int = 118;
352*9e27ce67STomoaki Kawada pub const ENAVAIL: c_int = 119;
353*9e27ce67STomoaki Kawada pub const EISNAM: c_int = 120;
354*9e27ce67STomoaki Kawada pub const EREMOTEIO: c_int = 121;
355*9e27ce67STomoaki Kawada pub const EDQUOT: c_int = 122;
356*9e27ce67STomoaki Kawada 
357*9e27ce67STomoaki Kawada pub const ENOMEDIUM: c_int = 123;
358*9e27ce67STomoaki Kawada pub const EMEDIUMTYPE: c_int = 124;
359*9e27ce67STomoaki Kawada pub const ECANCELED: c_int = 125;
360*9e27ce67STomoaki Kawada pub const ENOKEY: c_int = 126;
361*9e27ce67STomoaki Kawada pub const EKEYEXPIRED: c_int = 127;
362*9e27ce67STomoaki Kawada pub const EKEYREVOKED: c_int = 128;
363*9e27ce67STomoaki Kawada pub const EKEYREJECTED: c_int = 129;
364*9e27ce67STomoaki Kawada 
365*9e27ce67STomoaki Kawada pub const EOWNERDEAD: c_int = 130;
366*9e27ce67STomoaki Kawada pub const ENOTRECOVERABLE: c_int = 131;
367*9e27ce67STomoaki Kawada 
368*9e27ce67STomoaki Kawada pub const ENOTSUP: c_int = 132;
369*9e27ce67STomoaki Kawada pub const EFTYPE: c_int = 133;
370*9e27ce67STomoaki Kawada 
371*9e27ce67STomoaki Kawada // signal codes
372*9e27ce67STomoaki Kawada pub const SIGHUP: c_int = 1;
373*9e27ce67STomoaki Kawada pub const SIGINT: c_int = 2;
374*9e27ce67STomoaki Kawada pub const SIGQUIT: c_int = 3;
375*9e27ce67STomoaki Kawada pub const SIGILL: c_int = 4;
376*9e27ce67STomoaki Kawada pub const SIGTRAP: c_int = 5;
377*9e27ce67STomoaki Kawada pub const SIGABRT: c_int = 6;
378*9e27ce67STomoaki Kawada pub const SIGIOT: c_int = SIGABRT;
379*9e27ce67STomoaki Kawada pub const SIGEMT: c_int = 7;
380*9e27ce67STomoaki Kawada pub const SIGFPE: c_int = 8;
381*9e27ce67STomoaki Kawada pub const SIGKILL: c_int = 9;
382*9e27ce67STomoaki Kawada pub const SIGBUS: c_int = 10;
383*9e27ce67STomoaki Kawada pub const SIGSEGV: c_int = 11;
384*9e27ce67STomoaki Kawada pub const SIGSYS: c_int = 12;
385*9e27ce67STomoaki Kawada pub const SIGPIPE: c_int = 13;
386*9e27ce67STomoaki Kawada pub const SIGALRM: c_int = 14;
387*9e27ce67STomoaki Kawada pub const SIGTERM: c_int = 15;
388*9e27ce67STomoaki Kawada pub const SIGURG: c_int = 16;
389*9e27ce67STomoaki Kawada pub const SIGSTOP: c_int = 17;
390*9e27ce67STomoaki Kawada pub const SIGTSTP: c_int = 18;
391*9e27ce67STomoaki Kawada pub const SIGCONT: c_int = 19;
392*9e27ce67STomoaki Kawada pub const SIGCHLD: c_int = 20;
393*9e27ce67STomoaki Kawada pub const SIGTTIN: c_int = 21;
394*9e27ce67STomoaki Kawada pub const SIGTTOU: c_int = 22;
395*9e27ce67STomoaki Kawada pub const SIGIO: c_int = 23;
396*9e27ce67STomoaki Kawada pub const SIGXCPU: c_int = 24;
397*9e27ce67STomoaki Kawada pub const SIGXFSZ: c_int = 25;
398*9e27ce67STomoaki Kawada pub const SIGVTALRM: c_int = 26;
399*9e27ce67STomoaki Kawada pub const SIGPROF: c_int = 27;
400*9e27ce67STomoaki Kawada pub const SIGWINCH: c_int = 28;
401*9e27ce67STomoaki Kawada pub const SIGINFO: c_int = 29;
402*9e27ce67STomoaki Kawada pub const SIGUSR1: c_int = 30;
403*9e27ce67STomoaki Kawada pub const SIGUSR2: c_int = 31;
404*9e27ce67STomoaki Kawada pub const SIGPWR: c_int = 32;
405*9e27ce67STomoaki Kawada 
406*9e27ce67STomoaki Kawada #[cfg_attr(feature = "extra_traits", derive(Debug))]
407*9e27ce67STomoaki Kawada pub enum FILE {}
408*9e27ce67STomoaki Kawada impl ::Copy for FILE {}
409*9e27ce67STomoaki Kawada impl ::Clone for FILE {
410*9e27ce67STomoaki Kawada     fn clone(&self) -> FILE {
411*9e27ce67STomoaki Kawada         *self
412*9e27ce67STomoaki Kawada     }
413*9e27ce67STomoaki Kawada }
414*9e27ce67STomoaki Kawada #[cfg_attr(feature = "extra_traits", derive(Debug))]
415*9e27ce67STomoaki Kawada pub enum fpos_t {}
416*9e27ce67STomoaki Kawada impl ::Copy for fpos_t {}
417*9e27ce67STomoaki Kawada impl ::Clone for fpos_t {
418*9e27ce67STomoaki Kawada     fn clone(&self) -> fpos_t {
419*9e27ce67STomoaki Kawada         *self
420*9e27ce67STomoaki Kawada     }
421*9e27ce67STomoaki Kawada }
422*9e27ce67STomoaki Kawada 
423*9e27ce67STomoaki Kawada extern "C" {
424*9e27ce67STomoaki Kawada     // ctype.h
425*9e27ce67STomoaki Kawada     pub fn isalnum(c: c_int) -> c_int;
426*9e27ce67STomoaki Kawada     pub fn isalpha(c: c_int) -> c_int;
427*9e27ce67STomoaki Kawada     pub fn iscntrl(c: c_int) -> c_int;
428*9e27ce67STomoaki Kawada     pub fn isdigit(c: c_int) -> c_int;
429*9e27ce67STomoaki Kawada     pub fn isgraph(c: c_int) -> c_int;
430*9e27ce67STomoaki Kawada     pub fn islower(c: c_int) -> c_int;
431*9e27ce67STomoaki Kawada     pub fn isprint(c: c_int) -> c_int;
432*9e27ce67STomoaki Kawada     pub fn ispunct(c: c_int) -> c_int;
433*9e27ce67STomoaki Kawada     pub fn isspace(c: c_int) -> c_int;
434*9e27ce67STomoaki Kawada     pub fn isupper(c: c_int) -> c_int;
435*9e27ce67STomoaki Kawada     pub fn isxdigit(c: c_int) -> c_int;
436*9e27ce67STomoaki Kawada     pub fn isblank(c: c_int) -> c_int;
437*9e27ce67STomoaki Kawada     pub fn tolower(c: c_int) -> c_int;
438*9e27ce67STomoaki Kawada     pub fn toupper(c: c_int) -> c_int;
439*9e27ce67STomoaki Kawada 
440*9e27ce67STomoaki Kawada     // stdio.h
441*9e27ce67STomoaki Kawada     pub fn __get_stdio_file(fileno: c_int) -> *mut FILE;
442*9e27ce67STomoaki Kawada     pub fn clearerr(arg1: *mut FILE);
443*9e27ce67STomoaki Kawada     pub fn fclose(arg1: *mut FILE) -> c_int;
444*9e27ce67STomoaki Kawada     pub fn feof(arg1: *mut FILE) -> c_int;
445*9e27ce67STomoaki Kawada     pub fn ferror(arg1: *mut FILE) -> c_int;
446*9e27ce67STomoaki Kawada     pub fn fflush(arg1: *mut FILE) -> c_int;
447*9e27ce67STomoaki Kawada     pub fn fgetc(arg1: *mut FILE) -> c_int;
448*9e27ce67STomoaki Kawada     pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char;
449*9e27ce67STomoaki Kawada     pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE;
450*9e27ce67STomoaki Kawada     pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
451*9e27ce67STomoaki Kawada     pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int;
452*9e27ce67STomoaki Kawada     pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int;
453*9e27ce67STomoaki Kawada     pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
454*9e27ce67STomoaki Kawada     pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE;
455*9e27ce67STomoaki Kawada     pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
456*9e27ce67STomoaki Kawada     pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int;
457*9e27ce67STomoaki Kawada     pub fn ftell(arg1: *mut FILE) -> c_long;
458*9e27ce67STomoaki Kawada     pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
459*9e27ce67STomoaki Kawada     pub fn getc(arg1: *mut FILE) -> c_int;
460*9e27ce67STomoaki Kawada     pub fn getchar() -> c_int;
461*9e27ce67STomoaki Kawada     pub fn perror(arg1: *const c_char);
462*9e27ce67STomoaki Kawada     pub fn printf(arg1: *const c_char, ...) -> c_int;
463*9e27ce67STomoaki Kawada     pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int;
464*9e27ce67STomoaki Kawada     pub fn putchar(arg1: c_int) -> c_int;
465*9e27ce67STomoaki Kawada     pub fn puts(arg1: *const c_char) -> c_int;
466*9e27ce67STomoaki Kawada     pub fn remove(arg1: *const c_char) -> c_int;
467*9e27ce67STomoaki Kawada     pub fn rewind(arg1: *mut FILE);
468*9e27ce67STomoaki Kawada     pub fn scanf(arg1: *const c_char, ...) -> c_int;
469*9e27ce67STomoaki Kawada     pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char);
470*9e27ce67STomoaki Kawada     pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int;
471*9e27ce67STomoaki Kawada     pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int;
472*9e27ce67STomoaki Kawada     pub fn tmpfile() -> *mut FILE;
473*9e27ce67STomoaki Kawada     pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int;
474*9e27ce67STomoaki Kawada     pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
475*9e27ce67STomoaki Kawada     pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
476*9e27ce67STomoaki Kawada     pub fn gets(arg1: *mut c_char) -> *mut c_char;
477*9e27ce67STomoaki Kawada     pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
478*9e27ce67STomoaki Kawada     pub fn tmpnam(arg1: *const c_char) -> *mut c_char;
479*9e27ce67STomoaki Kawada     pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
480*9e27ce67STomoaki Kawada     pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int;
481*9e27ce67STomoaki Kawada     pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int;
482*9e27ce67STomoaki Kawada     pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
483*9e27ce67STomoaki Kawada     pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
484*9e27ce67STomoaki Kawada     pub fn iprintf(arg1: *const c_char, ...) -> c_int;
485*9e27ce67STomoaki Kawada     pub fn iscanf(arg1: *const c_char, ...) -> c_int;
486*9e27ce67STomoaki Kawada     pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
487*9e27ce67STomoaki Kawada     pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
488*9e27ce67STomoaki Kawada     pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
489*9e27ce67STomoaki Kawada     pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
490*9e27ce67STomoaki Kawada     pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
491*9e27ce67STomoaki Kawada     pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
492*9e27ce67STomoaki Kawada     pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
493*9e27ce67STomoaki Kawada     pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int;
494*9e27ce67STomoaki Kawada     pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
495*9e27ce67STomoaki Kawada     pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
496*9e27ce67STomoaki Kawada     pub fn vsniprintf(
497*9e27ce67STomoaki Kawada         arg1: *mut c_char,
498*9e27ce67STomoaki Kawada         arg2: size_t,
499*9e27ce67STomoaki Kawada         arg3: *const c_char,
500*9e27ce67STomoaki Kawada         arg4: __va_list,
501*9e27ce67STomoaki Kawada     ) -> c_int;
502*9e27ce67STomoaki Kawada     pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int;
503*9e27ce67STomoaki Kawada     pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int;
504*9e27ce67STomoaki Kawada     pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int;
505*9e27ce67STomoaki Kawada     pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int;
506*9e27ce67STomoaki Kawada     pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE;
507*9e27ce67STomoaki Kawada     pub fn fileno(arg1: *mut FILE) -> c_int;
508*9e27ce67STomoaki Kawada     pub fn flockfile(arg1: *mut FILE);
509*9e27ce67STomoaki Kawada     pub fn ftrylockfile(arg1: *mut FILE) -> c_int;
510*9e27ce67STomoaki Kawada     pub fn funlockfile(arg1: *mut FILE);
511*9e27ce67STomoaki Kawada     pub fn getc_unlocked(arg1: *mut FILE) -> c_int;
512*9e27ce67STomoaki Kawada     pub fn getchar_unlocked() -> c_int;
513*9e27ce67STomoaki Kawada     pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int;
514*9e27ce67STomoaki Kawada     pub fn putchar_unlocked(arg1: c_int) -> c_int;
515*9e27ce67STomoaki Kawada     pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
516*9e27ce67STomoaki Kawada     pub fn vsnprintf(
517*9e27ce67STomoaki Kawada         arg1: *mut c_char,
518*9e27ce67STomoaki Kawada         arg2: size_t,
519*9e27ce67STomoaki Kawada         arg3: *const c_char,
520*9e27ce67STomoaki Kawada         arg4: __va_list,
521*9e27ce67STomoaki Kawada     ) -> c_int;
522*9e27ce67STomoaki Kawada     pub fn getw(arg1: *mut FILE) -> c_int;
523*9e27ce67STomoaki Kawada     pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int;
524*9e27ce67STomoaki Kawada     pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
525*9e27ce67STomoaki Kawada     pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int;
526*9e27ce67STomoaki Kawada     pub fn ftello(stream: *mut FILE) -> off_t;
527*9e27ce67STomoaki Kawada 
528*9e27ce67STomoaki Kawada     // stdlib.h
529*9e27ce67STomoaki Kawada     pub fn atof(arg1: *const c_char) -> f64;
530*9e27ce67STomoaki Kawada     pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
531*9e27ce67STomoaki Kawada     pub fn drand48() -> f64;
532*9e27ce67STomoaki Kawada     pub fn erand48(arg1: *mut c_ushort) -> f64;
533*9e27ce67STomoaki Kawada     pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32;
534*9e27ce67STomoaki Kawada     pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
535*9e27ce67STomoaki Kawada     pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
536*9e27ce67STomoaki Kawada     pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32;
537*9e27ce67STomoaki Kawada     pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
538*9e27ce67STomoaki Kawada     pub fn _Exit(arg1: c_int);
539*9e27ce67STomoaki Kawada     pub fn abort();
540*9e27ce67STomoaki Kawada     pub fn abs(arg1: c_int) -> c_int;
541*9e27ce67STomoaki Kawada     pub fn atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
542*9e27ce67STomoaki Kawada     pub fn atoi(arg1: *const c_char) -> c_int;
543*9e27ce67STomoaki Kawada     pub fn atol(arg1: *const c_char) -> c_long;
544*9e27ce67STomoaki Kawada     pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
545*9e27ce67STomoaki Kawada     pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
546*9e27ce67STomoaki Kawada     pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
547*9e27ce67STomoaki Kawada     pub fn bsearch(
548*9e27ce67STomoaki Kawada         arg1: *const c_void,
549*9e27ce67STomoaki Kawada         arg2: *const c_void,
550*9e27ce67STomoaki Kawada         arg3: size_t,
551*9e27ce67STomoaki Kawada         arg4: size_t,
552*9e27ce67STomoaki Kawada         arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
553*9e27ce67STomoaki Kawada     ) -> *mut c_void;
554*9e27ce67STomoaki Kawada     pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void;
555*9e27ce67STomoaki Kawada     pub fn div(arg1: c_int, arg2: c_int) -> div_t;
556*9e27ce67STomoaki Kawada     pub fn exit(arg1: c_int);
557*9e27ce67STomoaki Kawada     pub fn free(arg1: *mut c_void);
558*9e27ce67STomoaki Kawada     pub fn getenv(arg1: *const c_char) -> *mut c_char;
559*9e27ce67STomoaki Kawada     pub fn labs(arg1: c_long) -> c_long;
560*9e27ce67STomoaki Kawada     pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t;
561*9e27ce67STomoaki Kawada     pub fn malloc(arg1: size_t) -> *mut c_void;
562*9e27ce67STomoaki Kawada     pub fn qsort(
563*9e27ce67STomoaki Kawada         arg1: *mut c_void,
564*9e27ce67STomoaki Kawada         arg2: size_t,
565*9e27ce67STomoaki Kawada         arg3: size_t,
566*9e27ce67STomoaki Kawada         arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
567*9e27ce67STomoaki Kawada     );
568*9e27ce67STomoaki Kawada     pub fn rand() -> c_int;
569*9e27ce67STomoaki Kawada     pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void;
570*9e27ce67STomoaki Kawada     pub fn srand(arg1: c_uint);
571*9e27ce67STomoaki Kawada     pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long;
572*9e27ce67STomoaki Kawada     pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong;
573*9e27ce67STomoaki Kawada     pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int;
574*9e27ce67STomoaki Kawada     pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t;
575*9e27ce67STomoaki Kawada     pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int;
576*9e27ce67STomoaki Kawada     pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int;
577*9e27ce67STomoaki Kawada     pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t;
578*9e27ce67STomoaki Kawada     pub fn rand_r(arg1: *mut c_uint) -> c_int;
579*9e27ce67STomoaki Kawada     pub fn jrand48(arg1: *mut c_ushort) -> c_long;
580*9e27ce67STomoaki Kawada     pub fn lcong48(arg1: *mut c_ushort);
581*9e27ce67STomoaki Kawada     pub fn lrand48() -> c_long;
582*9e27ce67STomoaki Kawada     pub fn mrand48() -> c_long;
583*9e27ce67STomoaki Kawada     pub fn nrand48(arg1: *mut c_ushort) -> c_long;
584*9e27ce67STomoaki Kawada     pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort;
585*9e27ce67STomoaki Kawada     pub fn srand48(arg1: c_long);
586*9e27ce67STomoaki Kawada     pub fn putenv(arg1: *mut c_char) -> c_int;
587*9e27ce67STomoaki Kawada     pub fn a64l(arg1: *const c_char) -> c_long;
588*9e27ce67STomoaki Kawada     pub fn l64a(arg1: c_long) -> *mut c_char;
589*9e27ce67STomoaki Kawada     pub fn random() -> c_long;
590*9e27ce67STomoaki Kawada     pub fn setstate(arg1: *mut c_char) -> *mut c_char;
591*9e27ce67STomoaki Kawada     pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char;
592*9e27ce67STomoaki Kawada     pub fn srandom(arg1: c_uint);
593*9e27ce67STomoaki Kawada     pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int;
594*9e27ce67STomoaki Kawada     pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int;
595*9e27ce67STomoaki Kawada     pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char;
596*9e27ce67STomoaki Kawada     pub fn mkstemp(arg1: *mut c_char) -> c_int;
597*9e27ce67STomoaki Kawada     pub fn mktemp(arg1: *mut c_char) -> *mut c_char;
598*9e27ce67STomoaki Kawada     pub fn atoll(arg1: *const c_char) -> c_longlong;
599*9e27ce67STomoaki Kawada     pub fn llabs(arg1: c_longlong) -> c_longlong;
600*9e27ce67STomoaki Kawada     pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t;
601*9e27ce67STomoaki Kawada     pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong;
602*9e27ce67STomoaki Kawada     pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong;
603*9e27ce67STomoaki Kawada     pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void;
604*9e27ce67STomoaki Kawada     pub fn at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
605*9e27ce67STomoaki Kawada     pub fn quick_exit(arg1: c_int);
606*9e27ce67STomoaki Kawada     pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int;
607*9e27ce67STomoaki Kawada     pub fn unsetenv(arg1: *const c_char) -> c_int;
608*9e27ce67STomoaki Kawada     pub fn humanize_number(
609*9e27ce67STomoaki Kawada         arg1: *mut c_char,
610*9e27ce67STomoaki Kawada         arg2: size_t,
611*9e27ce67STomoaki Kawada         arg3: i64,
612*9e27ce67STomoaki Kawada         arg4: *const c_char,
613*9e27ce67STomoaki Kawada         arg5: c_int,
614*9e27ce67STomoaki Kawada         arg6: c_int,
615*9e27ce67STomoaki Kawada     ) -> c_int;
616*9e27ce67STomoaki Kawada     pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int;
617*9e27ce67STomoaki Kawada     pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int;
618*9e27ce67STomoaki Kawada     pub fn heapsort(
619*9e27ce67STomoaki Kawada         arg1: *mut c_void,
620*9e27ce67STomoaki Kawada         arg2: size_t,
621*9e27ce67STomoaki Kawada         arg3: size_t,
622*9e27ce67STomoaki Kawada         arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
623*9e27ce67STomoaki Kawada     ) -> c_int;
624*9e27ce67STomoaki Kawada     pub fn mergesort(
625*9e27ce67STomoaki Kawada         arg1: *mut c_void,
626*9e27ce67STomoaki Kawada         arg2: size_t,
627*9e27ce67STomoaki Kawada         arg3: size_t,
628*9e27ce67STomoaki Kawada         arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
629*9e27ce67STomoaki Kawada     ) -> c_int;
630*9e27ce67STomoaki Kawada     pub fn radixsort(
631*9e27ce67STomoaki Kawada         arg1: *mut *const c_uchar,
632*9e27ce67STomoaki Kawada         arg2: c_int,
633*9e27ce67STomoaki Kawada         arg3: *const c_uchar,
634*9e27ce67STomoaki Kawada         arg4: c_uint,
635*9e27ce67STomoaki Kawada     ) -> c_int;
636*9e27ce67STomoaki Kawada     pub fn sradixsort(
637*9e27ce67STomoaki Kawada         arg1: *mut *const c_uchar,
638*9e27ce67STomoaki Kawada         arg2: c_int,
639*9e27ce67STomoaki Kawada         arg3: *const c_uchar,
640*9e27ce67STomoaki Kawada         arg4: c_uint,
641*9e27ce67STomoaki Kawada     ) -> c_int;
642*9e27ce67STomoaki Kawada     pub fn getprogname() -> *const c_char;
643*9e27ce67STomoaki Kawada     pub fn setprogname(arg1: *const c_char);
644*9e27ce67STomoaki Kawada     pub fn qabs(arg1: quad_t) -> quad_t;
645*9e27ce67STomoaki Kawada     pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t;
646*9e27ce67STomoaki Kawada     pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t;
647*9e27ce67STomoaki Kawada     pub fn strsuftoll(
648*9e27ce67STomoaki Kawada         arg1: *const c_char,
649*9e27ce67STomoaki Kawada         arg2: *const c_char,
650*9e27ce67STomoaki Kawada         arg3: c_longlong,
651*9e27ce67STomoaki Kawada         arg4: c_longlong,
652*9e27ce67STomoaki Kawada     ) -> c_longlong;
653*9e27ce67STomoaki Kawada     pub fn strsuftollx(
654*9e27ce67STomoaki Kawada         arg1: *const c_char,
655*9e27ce67STomoaki Kawada         arg2: *const c_char,
656*9e27ce67STomoaki Kawada         arg3: c_longlong,
657*9e27ce67STomoaki Kawada         arg4: c_longlong,
658*9e27ce67STomoaki Kawada         arg5: *mut c_char,
659*9e27ce67STomoaki Kawada         arg6: size_t,
660*9e27ce67STomoaki Kawada     ) -> c_longlong;
661*9e27ce67STomoaki Kawada     pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int;
662*9e27ce67STomoaki Kawada     pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t;
663*9e27ce67STomoaki Kawada     pub fn strtol_l(
664*9e27ce67STomoaki Kawada         arg1: *const c_char,
665*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
666*9e27ce67STomoaki Kawada         arg3: c_int,
667*9e27ce67STomoaki Kawada         arg4: locale_t,
668*9e27ce67STomoaki Kawada     ) -> c_long;
669*9e27ce67STomoaki Kawada     pub fn strtoul_l(
670*9e27ce67STomoaki Kawada         arg1: *const c_char,
671*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
672*9e27ce67STomoaki Kawada         arg3: c_int,
673*9e27ce67STomoaki Kawada         arg4: locale_t,
674*9e27ce67STomoaki Kawada     ) -> c_ulong;
675*9e27ce67STomoaki Kawada     pub fn strtoll_l(
676*9e27ce67STomoaki Kawada         arg1: *const c_char,
677*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
678*9e27ce67STomoaki Kawada         arg3: c_int,
679*9e27ce67STomoaki Kawada         arg4: locale_t,
680*9e27ce67STomoaki Kawada     ) -> c_longlong;
681*9e27ce67STomoaki Kawada     pub fn strtoull_l(
682*9e27ce67STomoaki Kawada         arg1: *const c_char,
683*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
684*9e27ce67STomoaki Kawada         arg3: c_int,
685*9e27ce67STomoaki Kawada         arg4: locale_t,
686*9e27ce67STomoaki Kawada     ) -> c_ulonglong;
687*9e27ce67STomoaki Kawada     pub fn strtoq_l(
688*9e27ce67STomoaki Kawada         arg1: *const c_char,
689*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
690*9e27ce67STomoaki Kawada         arg3: c_int,
691*9e27ce67STomoaki Kawada         arg4: locale_t,
692*9e27ce67STomoaki Kawada     ) -> quad_t;
693*9e27ce67STomoaki Kawada     pub fn strtouq_l(
694*9e27ce67STomoaki Kawada         arg1: *const c_char,
695*9e27ce67STomoaki Kawada         arg2: *mut *mut c_char,
696*9e27ce67STomoaki Kawada         arg3: c_int,
697*9e27ce67STomoaki Kawada         arg4: locale_t,
698*9e27ce67STomoaki Kawada     ) -> u_quad_t;
699*9e27ce67STomoaki Kawada     pub fn _mb_cur_max_l(arg1: locale_t) -> size_t;
700*9e27ce67STomoaki Kawada     pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int;
701*9e27ce67STomoaki Kawada     pub fn mbstowcs_l(
702*9e27ce67STomoaki Kawada         arg1: *mut wchar_t,
703*9e27ce67STomoaki Kawada         arg2: *const c_char,
704*9e27ce67STomoaki Kawada         arg3: size_t,
705*9e27ce67STomoaki Kawada         arg4: locale_t,
706*9e27ce67STomoaki Kawada     ) -> size_t;
707*9e27ce67STomoaki Kawada     pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int;
708*9e27ce67STomoaki Kawada     pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t)
709*9e27ce67STomoaki Kawada         -> c_int;
710*9e27ce67STomoaki Kawada     pub fn wcstombs_l(
711*9e27ce67STomoaki Kawada         arg1: *mut c_char,
712*9e27ce67STomoaki Kawada         arg2: *const wchar_t,
713*9e27ce67STomoaki Kawada         arg3: size_t,
714*9e27ce67STomoaki Kawada         arg4: locale_t,
715*9e27ce67STomoaki Kawada     ) -> size_t;
716*9e27ce67STomoaki Kawada 
717*9e27ce67STomoaki Kawada     // string.h
718*9e27ce67STomoaki Kawada     pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
719*9e27ce67STomoaki Kawada     pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
720*9e27ce67STomoaki Kawada     pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
721*9e27ce67STomoaki Kawada     pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
722*9e27ce67STomoaki Kawada     pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
723*9e27ce67STomoaki Kawada     pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
724*9e27ce67STomoaki Kawada     pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
725*9e27ce67STomoaki Kawada     pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
726*9e27ce67STomoaki Kawada     pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int;
727*9e27ce67STomoaki Kawada     pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
728*9e27ce67STomoaki Kawada     pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
729*9e27ce67STomoaki Kawada     pub fn strerror(arg1: c_int) -> *mut c_char;
730*9e27ce67STomoaki Kawada     pub fn strlen(arg1: *const c_char) -> size_t;
731*9e27ce67STomoaki Kawada     pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
732*9e27ce67STomoaki Kawada     pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
733*9e27ce67STomoaki Kawada     pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
734*9e27ce67STomoaki Kawada     pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
735*9e27ce67STomoaki Kawada     pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
736*9e27ce67STomoaki Kawada     pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
737*9e27ce67STomoaki Kawada     pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
738*9e27ce67STomoaki Kawada     pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
739*9e27ce67STomoaki Kawada     pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char;
740*9e27ce67STomoaki Kawada     pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int;
741*9e27ce67STomoaki Kawada     pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
742*9e27ce67STomoaki Kawada     pub fn memccpy(
743*9e27ce67STomoaki Kawada         arg1: *mut c_void,
744*9e27ce67STomoaki Kawada         arg2: *const c_void,
745*9e27ce67STomoaki Kawada         arg3: c_int,
746*9e27ce67STomoaki Kawada         arg4: size_t,
747*9e27ce67STomoaki Kawada     ) -> *mut c_void;
748*9e27ce67STomoaki Kawada     pub fn strdup(arg1: *const c_char) -> *mut c_char;
749*9e27ce67STomoaki Kawada     pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
750*9e27ce67STomoaki Kawada     pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
751*9e27ce67STomoaki Kawada     pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t;
752*9e27ce67STomoaki Kawada     pub fn memmem(
753*9e27ce67STomoaki Kawada         arg1: *const c_void,
754*9e27ce67STomoaki Kawada         arg2: size_t,
755*9e27ce67STomoaki Kawada         arg3: *const c_void,
756*9e27ce67STomoaki Kawada         arg4: size_t,
757*9e27ce67STomoaki Kawada     ) -> *mut c_void;
758*9e27ce67STomoaki Kawada     pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
759*9e27ce67STomoaki Kawada     pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
760*9e27ce67STomoaki Kawada     pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
761*9e27ce67STomoaki Kawada     pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char;
762*9e27ce67STomoaki Kawada     pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char;
763*9e27ce67STomoaki Kawada     pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char;
764*9e27ce67STomoaki Kawada     pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
765*9e27ce67STomoaki Kawada     pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
766*9e27ce67STomoaki Kawada     pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
767*9e27ce67STomoaki Kawada     pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int;
768*9e27ce67STomoaki Kawada     pub fn strxfrm_l(
769*9e27ce67STomoaki Kawada         arg1: *mut c_char,
770*9e27ce67STomoaki Kawada         arg2: *const c_char,
771*9e27ce67STomoaki Kawada         arg3: size_t,
772*9e27ce67STomoaki Kawada         arg4: locale_t,
773*9e27ce67STomoaki Kawada     ) -> size_t;
774*9e27ce67STomoaki Kawada     pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char;
775*9e27ce67STomoaki Kawada 
776*9e27ce67STomoaki Kawada     // strings.h
777*9e27ce67STomoaki Kawada     pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
778*9e27ce67STomoaki Kawada     pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t);
779*9e27ce67STomoaki Kawada     pub fn bzero(arg1: *mut c_void, arg2: size_t);
780*9e27ce67STomoaki Kawada     pub fn ffs(arg1: c_int) -> c_int;
781*9e27ce67STomoaki Kawada     pub fn popcount(arg1: c_uint) -> c_uint;
782*9e27ce67STomoaki Kawada     pub fn popcountl(arg1: c_ulong) -> c_uint;
783*9e27ce67STomoaki Kawada     pub fn popcountll(arg1: c_ulonglong) -> c_uint;
784*9e27ce67STomoaki Kawada     pub fn popcount32(arg1: u32) -> c_uint;
785*9e27ce67STomoaki Kawada     pub fn popcount64(arg1: u64) -> c_uint;
786*9e27ce67STomoaki Kawada     pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char;
787*9e27ce67STomoaki Kawada     pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
788*9e27ce67STomoaki Kawada     pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
789*9e27ce67STomoaki Kawada 
790*9e27ce67STomoaki Kawada     // signal.h
791*9e27ce67STomoaki Kawada     pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t;
792*9e27ce67STomoaki Kawada     pub fn raise(arg1: c_int) -> c_int;
793*9e27ce67STomoaki Kawada 
794*9e27ce67STomoaki Kawada     // time.h
795*9e27ce67STomoaki Kawada     pub fn asctime(arg1: *const tm) -> *mut c_char;
796*9e27ce67STomoaki Kawada     pub fn clock() -> clock_t;
797*9e27ce67STomoaki Kawada     pub fn ctime(arg1: *const time_t) -> *mut c_char;
798*9e27ce67STomoaki Kawada     pub fn difftime(arg1: time_t, arg2: time_t) -> f64;
799*9e27ce67STomoaki Kawada     pub fn gmtime(arg1: *const time_t) -> *mut tm;
800*9e27ce67STomoaki Kawada     pub fn localtime(arg1: *const time_t) -> *mut tm;
801*9e27ce67STomoaki Kawada     pub fn time(arg1: *mut time_t) -> time_t;
802*9e27ce67STomoaki Kawada     pub fn mktime(arg1: *mut tm) -> time_t;
803*9e27ce67STomoaki Kawada     pub fn strftime(
804*9e27ce67STomoaki Kawada         arg1: *mut c_char,
805*9e27ce67STomoaki Kawada         arg2: size_t,
806*9e27ce67STomoaki Kawada         arg3: *const c_char,
807*9e27ce67STomoaki Kawada         arg4: *const tm,
808*9e27ce67STomoaki Kawada     ) -> size_t;
809*9e27ce67STomoaki Kawada     pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int;
810*9e27ce67STomoaki Kawada     pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char;
811*9e27ce67STomoaki Kawada     pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char;
812*9e27ce67STomoaki Kawada     pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
813*9e27ce67STomoaki Kawada     pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
814*9e27ce67STomoaki Kawada 
815*9e27ce67STomoaki Kawada     // sys/stat.h
816*9e27ce67STomoaki Kawada     pub fn stat(arg1: *const c_char, arg2: *mut stat) -> c_int;
817*9e27ce67STomoaki Kawada     pub fn lstat(arg1: *const c_char, arg2: *mut stat) -> c_int;
818*9e27ce67STomoaki Kawada     pub fn fstat(arg1: c_int, arg2: *mut stat) -> c_int;
819*9e27ce67STomoaki Kawada     pub fn chmod(arg1: *const c_char, arg2: __mode_t) -> c_int;
820*9e27ce67STomoaki Kawada     pub fn mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int;
821*9e27ce67STomoaki Kawada 
822*9e27ce67STomoaki Kawada     // fcntl.h
823*9e27ce67STomoaki Kawada     pub fn open(arg1: *const c_char, arg2: c_int, ...) -> c_int;
824*9e27ce67STomoaki Kawada     pub fn creat(arg1: *const c_char, arg2: c_int) -> c_int;
825*9e27ce67STomoaki Kawada     pub fn close(arg1: c_int) -> c_int;
826*9e27ce67STomoaki Kawada     pub fn read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int;
827*9e27ce67STomoaki Kawada     pub fn write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int;
828*9e27ce67STomoaki Kawada     pub fn unlink(arg1: *const c_char) -> c_int;
829*9e27ce67STomoaki Kawada     pub fn tell(arg1: c_int) -> c_long;
830*9e27ce67STomoaki Kawada     pub fn dup(arg1: c_int) -> c_int;
831*9e27ce67STomoaki Kawada     pub fn dup2(arg1: c_int, arg2: c_int) -> c_int;
832*9e27ce67STomoaki Kawada     pub fn access(arg1: *const c_char, arg2: c_int) -> c_int;
833*9e27ce67STomoaki Kawada     pub fn rmdir(arg1: *const c_char) -> c_int;
834*9e27ce67STomoaki Kawada     pub fn chdir(arg1: *const c_char) -> c_int;
835*9e27ce67STomoaki Kawada     pub fn _exit(arg1: c_int);
836*9e27ce67STomoaki Kawada     pub fn getwd(arg1: *mut c_char) -> *mut c_char;
837*9e27ce67STomoaki Kawada     pub fn getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char;
838*9e27ce67STomoaki Kawada     pub static mut optarg: *mut c_char;
839*9e27ce67STomoaki Kawada     pub static mut opterr: c_int;
840*9e27ce67STomoaki Kawada     pub static mut optind: c_int;
841*9e27ce67STomoaki Kawada     pub static mut optopt: c_int;
842*9e27ce67STomoaki Kawada     pub static mut optreset: c_int;
843*9e27ce67STomoaki Kawada     pub fn getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int;
844*9e27ce67STomoaki Kawada     pub static mut suboptarg: *mut c_char;
845*9e27ce67STomoaki Kawada     pub fn getsubopt(
846*9e27ce67STomoaki Kawada         arg1: *mut *mut c_char,
847*9e27ce67STomoaki Kawada         arg2: *const *mut c_char,
848*9e27ce67STomoaki Kawada         arg3: *mut *mut c_char,
849*9e27ce67STomoaki Kawada     ) -> c_int;
850*9e27ce67STomoaki Kawada     pub fn fcntl(arg1: c_int, arg2: c_int, ...) -> c_int;
851*9e27ce67STomoaki Kawada     pub fn getpid() -> pid_t;
852*9e27ce67STomoaki Kawada     pub fn sleep(arg1: c_uint) -> c_uint;
853*9e27ce67STomoaki Kawada     pub fn usleep(arg1: useconds_t) -> c_int;
854*9e27ce67STomoaki Kawada 
855*9e27ce67STomoaki Kawada     // locale.h
856*9e27ce67STomoaki Kawada     pub fn localeconv() -> *mut lconv;
857*9e27ce67STomoaki Kawada     pub fn setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char;
858*9e27ce67STomoaki Kawada     pub fn duplocale(arg1: locale_t) -> locale_t;
859*9e27ce67STomoaki Kawada     pub fn freelocale(arg1: locale_t);
860*9e27ce67STomoaki Kawada     pub fn localeconv_l(arg1: locale_t) -> *mut lconv;
861*9e27ce67STomoaki Kawada     pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t;
862*9e27ce67STomoaki Kawada 
863*9e27ce67STomoaki Kawada     // langinfo.h
864*9e27ce67STomoaki Kawada     pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
865*9e27ce67STomoaki Kawada     pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char;
866*9e27ce67STomoaki Kawada 
867*9e27ce67STomoaki Kawada     // malloc.h
868*9e27ce67STomoaki Kawada     pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
869*9e27ce67STomoaki Kawada 
870*9e27ce67STomoaki Kawada     // sys/types.h
871*9e27ce67STomoaki Kawada     pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t;
872*9e27ce67STomoaki Kawada }
873*9e27ce67STomoaki Kawada 
874*9e27ce67STomoaki Kawada cfg_if! {
875*9e27ce67STomoaki Kawada     if #[cfg(libc_core_cvoid)] {
876*9e27ce67STomoaki Kawada         pub use ::ffi::c_void;
877*9e27ce67STomoaki Kawada     } else {
878*9e27ce67STomoaki Kawada         // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
879*9e27ce67STomoaki Kawada         // enable more optimization opportunities around it recognizing things
880*9e27ce67STomoaki Kawada         // like malloc/free.
881*9e27ce67STomoaki Kawada         #[repr(u8)]
882*9e27ce67STomoaki Kawada         #[allow(missing_copy_implementations)]
883*9e27ce67STomoaki Kawada         #[allow(missing_debug_implementations)]
884*9e27ce67STomoaki Kawada         pub enum c_void {
885*9e27ce67STomoaki Kawada             // Two dummy variants so the #[repr] attribute can be used.
886*9e27ce67STomoaki Kawada             #[doc(hidden)]
887*9e27ce67STomoaki Kawada             __variant1,
888*9e27ce67STomoaki Kawada             #[doc(hidden)]
889*9e27ce67STomoaki Kawada             __variant2,
890*9e27ce67STomoaki Kawada         }
891*9e27ce67STomoaki Kawada     }
892*9e27ce67STomoaki Kawada }
893*9e27ce67STomoaki Kawada 
894*9e27ce67STomoaki Kawada cfg_if! {
895*9e27ce67STomoaki Kawada     if #[cfg(target_arch = "aarch64")] {
896*9e27ce67STomoaki Kawada         mod aarch64;
897*9e27ce67STomoaki Kawada         pub use self::aarch64::*;
898*9e27ce67STomoaki Kawada     } else if #[cfg(any(target_arch = "arm"))] {
899*9e27ce67STomoaki Kawada         mod arm;
900*9e27ce67STomoaki Kawada         pub use self::arm::*;
901*9e27ce67STomoaki Kawada     } else {
902*9e27ce67STomoaki Kawada         // Unknown target_arch
903*9e27ce67STomoaki Kawada     }
904*9e27ce67STomoaki Kawada }
905