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