Add SOLID target support
This commit is contained in:
parent
2e8a5e6fc9
commit
9e27ce6707
|
@ -123,6 +123,12 @@ cfg_if! {
|
|||
|
||||
mod vxworks;
|
||||
pub use vxworks::*;
|
||||
} else if #[cfg(target_os = "solid-asp3")] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
|
||||
mod solid;
|
||||
pub use solid::*;
|
||||
} else if #[cfg(unix)] {
|
||||
mod fixed_width_ints;
|
||||
pub use fixed_width_ints::*;
|
||||
|
|
4
src/solid/aarch64.rs
Normal file
4
src/solid/aarch64.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
pub type c_char = i8;
|
||||
pub type wchar_t = i16;
|
||||
pub type c_long = i64;
|
||||
pub type c_ulong = u64;
|
4
src/solid/arm.rs
Normal file
4
src/solid/arm.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
pub type c_char = i8;
|
||||
pub type wchar_t = i16;
|
||||
pub type c_long = i32;
|
||||
pub type c_ulong = u32;
|
904
src/solid/mod.rs
Normal file
904
src/solid/mod.rs
Normal file
|
@ -0,0 +1,904 @@
|
|||
//! Interface to the [SOLID] C library
|
||||
//!
|
||||
//! [SOLID]: https://solid.kmckk.com/
|
||||
|
||||
pub type c_schar = i8;
|
||||
pub type c_uchar = u8;
|
||||
pub type c_short = i16;
|
||||
pub type c_ushort = u16;
|
||||
pub type c_int = i32;
|
||||
pub type c_uint = u32;
|
||||
pub type c_float = f32;
|
||||
pub type c_double = f64;
|
||||
pub type c_longlong = i64;
|
||||
pub type c_ulonglong = u64;
|
||||
pub type intmax_t = i64;
|
||||
pub type uintmax_t = u64;
|
||||
|
||||
pub type uintptr_t = usize;
|
||||
pub type intptr_t = isize;
|
||||
pub type ptrdiff_t = isize;
|
||||
pub type size_t = ::uintptr_t;
|
||||
pub type ssize_t = ::intptr_t;
|
||||
|
||||
pub type clock_t = c_uint;
|
||||
pub type time_t = i64;
|
||||
pub type clockid_t = c_int;
|
||||
pub type timer_t = c_int;
|
||||
pub type suseconds_t = c_int;
|
||||
pub type useconds_t = c_uint;
|
||||
|
||||
pub type sighandler_t = size_t;
|
||||
|
||||
// sys/ansi.h
|
||||
pub type __caddr_t = *mut c_char;
|
||||
pub type __gid_t = u32;
|
||||
pub type __in_addr_t = u32;
|
||||
pub type __in_port_t = u16;
|
||||
pub type __mode_t = u32;
|
||||
pub type __off_t = i64;
|
||||
pub type __pid_t = i32;
|
||||
pub type __sa_family_t = u8;
|
||||
pub type __socklen_t = c_uint;
|
||||
pub type __uid_t = u32;
|
||||
pub type __fsblkcnt_t = u64;
|
||||
pub type __fsfilcnt_t = u64;
|
||||
|
||||
// locale.h
|
||||
pub type locale_t = usize;
|
||||
|
||||
// nl_types.h
|
||||
pub type nl_item = c_long;
|
||||
|
||||
// sys/types.h
|
||||
pub type __va_list = *mut c_char;
|
||||
pub type u_int8_t = u8;
|
||||
pub type u_int16_t = u16;
|
||||
pub type u_int32_t = u32;
|
||||
pub type u_int64_t = u64;
|
||||
pub type u_char = c_uchar;
|
||||
pub type u_short = c_ushort;
|
||||
pub type u_int = c_uint;
|
||||
pub type u_long = c_ulong;
|
||||
pub type unchar = c_uchar;
|
||||
pub type ushort = c_ushort;
|
||||
pub type uint = c_uint;
|
||||
pub type ulong = c_ulong;
|
||||
pub type u_quad_t = u64;
|
||||
pub type quad_t = i64;
|
||||
pub type qaddr_t = *mut quad_t;
|
||||
pub type longlong_t = i64;
|
||||
pub type u_longlong_t = u64;
|
||||
pub type blkcnt_t = i64;
|
||||
pub type blksize_t = i32;
|
||||
pub type fsblkcnt_t = __fsblkcnt_t;
|
||||
pub type fsfilcnt_t = __fsfilcnt_t;
|
||||
pub type caddr_t = __caddr_t;
|
||||
pub type daddr_t = i64;
|
||||
pub type dev_t = u64;
|
||||
pub type fixpt_t = u32;
|
||||
pub type gid_t = __gid_t;
|
||||
pub type idtype_t = c_int;
|
||||
pub type id_t = u32;
|
||||
pub type ino_t = u64;
|
||||
pub type key_t = c_long;
|
||||
pub type mode_t = __mode_t;
|
||||
pub type nlink_t = u32;
|
||||
pub type off_t = __off_t;
|
||||
pub type pid_t = __pid_t;
|
||||
pub type lwpid_t = i32;
|
||||
pub type rlim_t = u64;
|
||||
pub type segsz_t = i32;
|
||||
pub type swblk_t = i32;
|
||||
pub type mqd_t = c_int;
|
||||
pub type cpuid_t = c_ulong;
|
||||
pub type psetid_t = c_int;
|
||||
|
||||
s! {
|
||||
// stat.h
|
||||
pub struct stat {
|
||||
pub st_dev: dev_t,
|
||||
pub st_ino: ino_t,
|
||||
pub st_mode: c_short,
|
||||
pub st_nlink: c_short,
|
||||
pub st_uid: c_short,
|
||||
pub st_gid: c_short,
|
||||
pub st_rdev: dev_t,
|
||||
pub st_size: off_t,
|
||||
pub st_atime: time_t,
|
||||
pub st_mtime: time_t,
|
||||
pub st_ctime: time_t,
|
||||
pub st_blksize: blksize_t,
|
||||
}
|
||||
|
||||
// time.h
|
||||
pub struct tm {
|
||||
pub tm_sec: c_int,
|
||||
pub tm_min: c_int,
|
||||
pub tm_hour: c_int,
|
||||
pub tm_mday: c_int,
|
||||
pub tm_mon: c_int,
|
||||
pub tm_year: c_int,
|
||||
pub tm_wday: c_int,
|
||||
pub tm_yday: c_int,
|
||||
pub tm_isdst: c_int,
|
||||
pub tm_gmtoff: c_long,
|
||||
pub tm_zone: *mut c_char,
|
||||
}
|
||||
|
||||
// stdlib.h
|
||||
pub struct qdiv_t {
|
||||
pub quot: quad_t,
|
||||
pub rem: quad_t,
|
||||
}
|
||||
pub struct lldiv_t {
|
||||
pub quot: c_longlong,
|
||||
pub rem: c_longlong,
|
||||
}
|
||||
pub struct div_t {
|
||||
pub quot: c_int,
|
||||
pub rem: c_int,
|
||||
}
|
||||
pub struct ldiv_t {
|
||||
pub quot: c_long,
|
||||
pub rem: c_long,
|
||||
}
|
||||
|
||||
// locale.h
|
||||
pub struct lconv {
|
||||
pub decimal_point: *mut c_char,
|
||||
pub thousands_sep: *mut c_char,
|
||||
pub grouping: *mut c_char,
|
||||
pub int_curr_symbol: *mut c_char,
|
||||
pub currency_symbol: *mut c_char,
|
||||
pub mon_decimal_point: *mut c_char,
|
||||
pub mon_thousands_sep: *mut c_char,
|
||||
pub mon_grouping: *mut c_char,
|
||||
pub positive_sign: *mut c_char,
|
||||
pub negative_sign: *mut c_char,
|
||||
pub int_frac_digits: c_char,
|
||||
pub frac_digits: c_char,
|
||||
pub p_cs_precedes: c_char,
|
||||
pub p_sep_by_space: c_char,
|
||||
pub n_cs_precedes: c_char,
|
||||
pub n_sep_by_space: c_char,
|
||||
pub p_sign_posn: c_char,
|
||||
pub n_sign_posn: c_char,
|
||||
pub int_p_cs_precedes: c_char,
|
||||
pub int_n_cs_precedes: c_char,
|
||||
pub int_p_sep_by_space: c_char,
|
||||
pub int_n_sep_by_space: c_char,
|
||||
pub int_p_sign_posn: c_char,
|
||||
pub int_n_sign_posn: c_char,
|
||||
}
|
||||
|
||||
pub struct iovec {
|
||||
pub iov_base: *mut c_void,
|
||||
pub iov_len: size_t,
|
||||
}
|
||||
|
||||
pub struct timeval {
|
||||
pub tv_sec: c_long,
|
||||
pub tv_usec: c_long,
|
||||
}
|
||||
}
|
||||
|
||||
pub const INT_MIN: c_int = -2147483648;
|
||||
pub const INT_MAX: c_int = 2147483647;
|
||||
|
||||
pub const EXIT_FAILURE: c_int = 1;
|
||||
pub const EXIT_SUCCESS: c_int = 0;
|
||||
pub const RAND_MAX: c_int = 0x7fffffff;
|
||||
pub const EOF: c_int = -1;
|
||||
pub const SEEK_SET: c_int = 0;
|
||||
pub const SEEK_CUR: c_int = 1;
|
||||
pub const SEEK_END: c_int = 2;
|
||||
pub const _IOFBF: c_int = 0;
|
||||
pub const _IONBF: c_int = 2;
|
||||
pub const _IOLBF: c_int = 1;
|
||||
pub const BUFSIZ: c_uint = 1024;
|
||||
pub const FOPEN_MAX: c_uint = 20;
|
||||
pub const FILENAME_MAX: c_uint = 1024;
|
||||
|
||||
pub const O_RDONLY: c_int = 1;
|
||||
pub const O_WRONLY: c_int = 2;
|
||||
pub const O_RDWR: c_int = 4;
|
||||
pub const O_APPEND: c_int = 8;
|
||||
pub const O_CREAT: c_int = 0x10;
|
||||
pub const O_EXCL: c_int = 0x400;
|
||||
pub const O_TEXT: c_int = 0x100;
|
||||
pub const O_BINARY: c_int = 0x200;
|
||||
pub const O_TRUNC: c_int = 0x20;
|
||||
pub const S_IEXEC: c_short = 0x0040;
|
||||
pub const S_IWRITE: c_short = 0x0080;
|
||||
pub const S_IREAD: c_short = 0x0100;
|
||||
pub const S_IFCHR: c_short = 0x2000;
|
||||
pub const S_IFDIR: c_short = 0x4000;
|
||||
pub const S_IFMT: c_short = 0o160000;
|
||||
pub const S_IFIFO: c_short = 0o0010000;
|
||||
pub const S_IFBLK: c_short = 0o0060000;
|
||||
pub const S_IFREG: c_short = 0o0100000;
|
||||
|
||||
pub const LC_ALL: c_int = 0;
|
||||
pub const LC_COLLATE: c_int = 1;
|
||||
pub const LC_CTYPE: c_int = 2;
|
||||
pub const LC_MONETARY: c_int = 3;
|
||||
pub const LC_NUMERIC: c_int = 4;
|
||||
pub const LC_TIME: c_int = 5;
|
||||
pub const LC_MESSAGES: c_int = 6;
|
||||
pub const _LC_LAST: c_int = 7;
|
||||
|
||||
pub const EPERM: c_int = 1;
|
||||
pub const ENOENT: c_int = 2;
|
||||
pub const ESRCH: c_int = 3;
|
||||
pub const EINTR: c_int = 4;
|
||||
pub const EIO: c_int = 5;
|
||||
pub const ENXIO: c_int = 6;
|
||||
pub const E2BIG: c_int = 7;
|
||||
pub const ENOEXEC: c_int = 8;
|
||||
pub const EBADF: c_int = 9;
|
||||
pub const ECHILD: c_int = 10;
|
||||
pub const EAGAIN: c_int = 11;
|
||||
pub const ENOMEM: c_int = 12;
|
||||
pub const EACCES: c_int = 13;
|
||||
pub const EFAULT: c_int = 14;
|
||||
pub const ENOTBLK: c_int = 15;
|
||||
pub const EBUSY: c_int = 16;
|
||||
pub const EEXIST: c_int = 17;
|
||||
pub const EXDEV: c_int = 18;
|
||||
pub const ENODEV: c_int = 19;
|
||||
pub const ENOTDIR: c_int = 20;
|
||||
pub const EISDIR: c_int = 21;
|
||||
pub const EINVAL: c_int = 22;
|
||||
pub const ENFILE: c_int = 23;
|
||||
pub const EMFILE: c_int = 24;
|
||||
pub const ENOTTY: c_int = 25;
|
||||
pub const ETXTBSY: c_int = 26;
|
||||
pub const EFBIG: c_int = 27;
|
||||
pub const ENOSPC: c_int = 28;
|
||||
pub const ESPIPE: c_int = 29;
|
||||
pub const EROFS: c_int = 30;
|
||||
pub const EMLINK: c_int = 31;
|
||||
pub const EPIPE: c_int = 32;
|
||||
pub const EDOM: c_int = 33;
|
||||
pub const ERANGE: c_int = 34;
|
||||
|
||||
pub const EDEADLK: c_int = 35;
|
||||
pub const ENAMETOOLONG: c_int = 36;
|
||||
pub const ENOLCK: c_int = 37;
|
||||
pub const ENOSYS: c_int = 38;
|
||||
pub const ENOTEMPTY: c_int = 39;
|
||||
pub const ELOOP: c_int = 40;
|
||||
pub const EWOULDBLOCK: c_int = EAGAIN;
|
||||
pub const ENOMSG: c_int = 42;
|
||||
pub const EIDRM: c_int = 43;
|
||||
pub const ECHRNG: c_int = 44;
|
||||
pub const EL2NSYNC: c_int = 45;
|
||||
pub const EL3HLT: c_int = 46;
|
||||
pub const EL3RST: c_int = 47;
|
||||
pub const ELNRNG: c_int = 48;
|
||||
pub const EUNATCH: c_int = 49;
|
||||
pub const ENOCSI: c_int = 50;
|
||||
pub const EL2HLT: c_int = 51;
|
||||
pub const EBADE: c_int = 52;
|
||||
pub const EBADR: c_int = 53;
|
||||
pub const EXFULL: c_int = 54;
|
||||
pub const ENOANO: c_int = 55;
|
||||
pub const EBADRQC: c_int = 56;
|
||||
pub const EBADSLT: c_int = 57;
|
||||
|
||||
pub const EDEADLOCK: c_int = EDEADLK;
|
||||
|
||||
pub const EBFONT: c_int = 59;
|
||||
pub const ENOSTR: c_int = 60;
|
||||
pub const ENODATA: c_int = 61;
|
||||
pub const ETIME: c_int = 62;
|
||||
pub const ENOSR: c_int = 63;
|
||||
pub const ENONET: c_int = 64;
|
||||
pub const ENOPKG: c_int = 65;
|
||||
pub const EREMOTE: c_int = 66;
|
||||
pub const ENOLINK: c_int = 67;
|
||||
pub const EADV: c_int = 68;
|
||||
pub const ESRMNT: c_int = 69;
|
||||
pub const ECOMM: c_int = 70;
|
||||
pub const EPROTO: c_int = 71;
|
||||
pub const EMULTIHOP: c_int = 72;
|
||||
pub const EDOTDOT: c_int = 73;
|
||||
pub const EBADMSG: c_int = 74;
|
||||
pub const EOVERFLOW: c_int = 75;
|
||||
pub const ENOTUNIQ: c_int = 76;
|
||||
pub const EBADFD: c_int = 77;
|
||||
pub const EREMCHG: c_int = 78;
|
||||
pub const ELIBACC: c_int = 79;
|
||||
pub const ELIBBAD: c_int = 80;
|
||||
pub const ELIBSCN: c_int = 81;
|
||||
pub const ELIBMAX: c_int = 82;
|
||||
pub const ELIBEXEC: c_int = 83;
|
||||
pub const EILSEQ: c_int = 84;
|
||||
pub const ERESTART: c_int = 85;
|
||||
pub const ESTRPIPE: c_int = 86;
|
||||
pub const EUSERS: c_int = 87;
|
||||
pub const ENOTSOCK: c_int = 88;
|
||||
pub const EDESTADDRREQ: c_int = 89;
|
||||
pub const EMSGSIZE: c_int = 90;
|
||||
pub const EPROTOTYPE: c_int = 91;
|
||||
pub const ENOPROTOOPT: c_int = 92;
|
||||
pub const EPROTONOSUPPORT: c_int = 93;
|
||||
pub const ESOCKTNOSUPPORT: c_int = 94;
|
||||
pub const EOPNOTSUPP: c_int = 95;
|
||||
pub const EPFNOSUPPORT: c_int = 96;
|
||||
pub const EAFNOSUPPORT: c_int = 97;
|
||||
pub const EADDRINUSE: c_int = 98;
|
||||
pub const EADDRNOTAVAIL: c_int = 99;
|
||||
pub const ENETDOWN: c_int = 100;
|
||||
pub const ENETUNREACH: c_int = 101;
|
||||
pub const ENETRESET: c_int = 102;
|
||||
pub const ECONNABORTED: c_int = 103;
|
||||
pub const ECONNRESET: c_int = 104;
|
||||
pub const ENOBUFS: c_int = 105;
|
||||
pub const EISCONN: c_int = 106;
|
||||
pub const ENOTCONN: c_int = 107;
|
||||
pub const ESHUTDOWN: c_int = 108;
|
||||
pub const ETOOMANYREFS: c_int = 109;
|
||||
pub const ETIMEDOUT: c_int = 110;
|
||||
pub const ECONNREFUSED: c_int = 111;
|
||||
pub const EHOSTDOWN: c_int = 112;
|
||||
pub const EHOSTUNREACH: c_int = 113;
|
||||
pub const EALREADY: c_int = 114;
|
||||
pub const EINPROGRESS: c_int = 115;
|
||||
pub const ESTALE: c_int = 116;
|
||||
pub const EUCLEAN: c_int = 117;
|
||||
pub const ENOTNAM: c_int = 118;
|
||||
pub const ENAVAIL: c_int = 119;
|
||||
pub const EISNAM: c_int = 120;
|
||||
pub const EREMOTEIO: c_int = 121;
|
||||
pub const EDQUOT: c_int = 122;
|
||||
|
||||
pub const ENOMEDIUM: c_int = 123;
|
||||
pub const EMEDIUMTYPE: c_int = 124;
|
||||
pub const ECANCELED: c_int = 125;
|
||||
pub const ENOKEY: c_int = 126;
|
||||
pub const EKEYEXPIRED: c_int = 127;
|
||||
pub const EKEYREVOKED: c_int = 128;
|
||||
pub const EKEYREJECTED: c_int = 129;
|
||||
|
||||
pub const EOWNERDEAD: c_int = 130;
|
||||
pub const ENOTRECOVERABLE: c_int = 131;
|
||||
|
||||
pub const ENOTSUP: c_int = 132;
|
||||
pub const EFTYPE: c_int = 133;
|
||||
|
||||
// signal codes
|
||||
pub const SIGHUP: c_int = 1;
|
||||
pub const SIGINT: c_int = 2;
|
||||
pub const SIGQUIT: c_int = 3;
|
||||
pub const SIGILL: c_int = 4;
|
||||
pub const SIGTRAP: c_int = 5;
|
||||
pub const SIGABRT: c_int = 6;
|
||||
pub const SIGIOT: c_int = SIGABRT;
|
||||
pub const SIGEMT: c_int = 7;
|
||||
pub const SIGFPE: c_int = 8;
|
||||
pub const SIGKILL: c_int = 9;
|
||||
pub const SIGBUS: c_int = 10;
|
||||
pub const SIGSEGV: c_int = 11;
|
||||
pub const SIGSYS: c_int = 12;
|
||||
pub const SIGPIPE: c_int = 13;
|
||||
pub const SIGALRM: c_int = 14;
|
||||
pub const SIGTERM: c_int = 15;
|
||||
pub const SIGURG: c_int = 16;
|
||||
pub const SIGSTOP: c_int = 17;
|
||||
pub const SIGTSTP: c_int = 18;
|
||||
pub const SIGCONT: c_int = 19;
|
||||
pub const SIGCHLD: c_int = 20;
|
||||
pub const SIGTTIN: c_int = 21;
|
||||
pub const SIGTTOU: c_int = 22;
|
||||
pub const SIGIO: c_int = 23;
|
||||
pub const SIGXCPU: c_int = 24;
|
||||
pub const SIGXFSZ: c_int = 25;
|
||||
pub const SIGVTALRM: c_int = 26;
|
||||
pub const SIGPROF: c_int = 27;
|
||||
pub const SIGWINCH: c_int = 28;
|
||||
pub const SIGINFO: c_int = 29;
|
||||
pub const SIGUSR1: c_int = 30;
|
||||
pub const SIGUSR2: c_int = 31;
|
||||
pub const SIGPWR: c_int = 32;
|
||||
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug))]
|
||||
pub enum FILE {}
|
||||
impl ::Copy for FILE {}
|
||||
impl ::Clone for FILE {
|
||||
fn clone(&self) -> FILE {
|
||||
*self
|
||||
}
|
||||
}
|
||||
#[cfg_attr(feature = "extra_traits", derive(Debug))]
|
||||
pub enum fpos_t {}
|
||||
impl ::Copy for fpos_t {}
|
||||
impl ::Clone for fpos_t {
|
||||
fn clone(&self) -> fpos_t {
|
||||
*self
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
// ctype.h
|
||||
pub fn isalnum(c: c_int) -> c_int;
|
||||
pub fn isalpha(c: c_int) -> c_int;
|
||||
pub fn iscntrl(c: c_int) -> c_int;
|
||||
pub fn isdigit(c: c_int) -> c_int;
|
||||
pub fn isgraph(c: c_int) -> c_int;
|
||||
pub fn islower(c: c_int) -> c_int;
|
||||
pub fn isprint(c: c_int) -> c_int;
|
||||
pub fn ispunct(c: c_int) -> c_int;
|
||||
pub fn isspace(c: c_int) -> c_int;
|
||||
pub fn isupper(c: c_int) -> c_int;
|
||||
pub fn isxdigit(c: c_int) -> c_int;
|
||||
pub fn isblank(c: c_int) -> c_int;
|
||||
pub fn tolower(c: c_int) -> c_int;
|
||||
pub fn toupper(c: c_int) -> c_int;
|
||||
|
||||
// stdio.h
|
||||
pub fn __get_stdio_file(fileno: c_int) -> *mut FILE;
|
||||
pub fn clearerr(arg1: *mut FILE);
|
||||
pub fn fclose(arg1: *mut FILE) -> c_int;
|
||||
pub fn feof(arg1: *mut FILE) -> c_int;
|
||||
pub fn ferror(arg1: *mut FILE) -> c_int;
|
||||
pub fn fflush(arg1: *mut FILE) -> c_int;
|
||||
pub fn fgetc(arg1: *mut FILE) -> c_int;
|
||||
pub fn fgets(arg1: *mut c_char, arg2: c_int, arg3: *mut FILE) -> *mut c_char;
|
||||
pub fn fopen(arg1: *const c_char, arg2: *const c_char) -> *mut FILE;
|
||||
pub fn fprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn fputc(arg1: c_int, arg2: *mut FILE) -> c_int;
|
||||
pub fn fputs(arg1: *const c_char, arg2: *mut FILE) -> c_int;
|
||||
pub fn fread(arg1: *mut c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
|
||||
pub fn freopen(arg1: *const c_char, arg2: *const c_char, arg3: *mut FILE) -> *mut FILE;
|
||||
pub fn fscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn fseek(arg1: *mut FILE, arg2: c_long, arg3: c_int) -> c_int;
|
||||
pub fn ftell(arg1: *mut FILE) -> c_long;
|
||||
pub fn fwrite(arg1: *const c_void, arg2: size_t, arg3: size_t, arg4: *mut FILE) -> size_t;
|
||||
pub fn getc(arg1: *mut FILE) -> c_int;
|
||||
pub fn getchar() -> c_int;
|
||||
pub fn perror(arg1: *const c_char);
|
||||
pub fn printf(arg1: *const c_char, ...) -> c_int;
|
||||
pub fn putc(arg1: c_int, arg2: *mut FILE) -> c_int;
|
||||
pub fn putchar(arg1: c_int) -> c_int;
|
||||
pub fn puts(arg1: *const c_char) -> c_int;
|
||||
pub fn remove(arg1: *const c_char) -> c_int;
|
||||
pub fn rewind(arg1: *mut FILE);
|
||||
pub fn scanf(arg1: *const c_char, ...) -> c_int;
|
||||
pub fn setbuf(arg1: *mut FILE, arg2: *mut c_char);
|
||||
pub fn setvbuf(arg1: *mut FILE, arg2: *mut c_char, arg3: c_int, arg4: size_t) -> c_int;
|
||||
pub fn sscanf(arg1: *const c_char, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn tmpfile() -> *mut FILE;
|
||||
pub fn ungetc(arg1: c_int, arg2: *mut FILE) -> c_int;
|
||||
pub fn vfprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn vprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
|
||||
pub fn gets(arg1: *mut c_char) -> *mut c_char;
|
||||
pub fn sprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn tmpnam(arg1: *const c_char) -> *mut c_char;
|
||||
pub fn vsprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn rename(arg1: *const c_char, arg2: *const c_char) -> c_int;
|
||||
pub fn asiprintf(arg1: *mut *mut c_char, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn fiprintf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn fiscanf(arg1: *mut FILE, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn iprintf(arg1: *const c_char, ...) -> c_int;
|
||||
pub fn iscanf(arg1: *const c_char, ...) -> c_int;
|
||||
pub fn siprintf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn siscanf(arg1: *mut c_char, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn sniprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
|
||||
pub fn vasiprintf(arg1: *mut *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn vfiprintf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn vfiscanf(arg1: *mut FILE, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn viprintf(arg1: *const c_char, arg2: __va_list) -> c_int;
|
||||
pub fn viscanf(arg1: *const c_char, arg2: __va_list) -> c_int;
|
||||
pub fn vsiprintf(arg1: *mut c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn vsiscanf(arg1: *const c_char, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn vsniprintf(
|
||||
arg1: *mut c_char,
|
||||
arg2: size_t,
|
||||
arg3: *const c_char,
|
||||
arg4: __va_list,
|
||||
) -> c_int;
|
||||
pub fn vdiprintf(arg1: c_int, arg2: *const c_char, arg3: __va_list) -> c_int;
|
||||
pub fn diprintf(arg1: c_int, arg2: *const c_char, ...) -> c_int;
|
||||
pub fn fgetpos(arg1: *mut FILE, arg2: *mut fpos_t) -> c_int;
|
||||
pub fn fsetpos(arg1: *mut FILE, arg2: *const fpos_t) -> c_int;
|
||||
pub fn fdopen(arg1: c_int, arg2: *const c_char) -> *mut FILE;
|
||||
pub fn fileno(arg1: *mut FILE) -> c_int;
|
||||
pub fn flockfile(arg1: *mut FILE);
|
||||
pub fn ftrylockfile(arg1: *mut FILE) -> c_int;
|
||||
pub fn funlockfile(arg1: *mut FILE);
|
||||
pub fn getc_unlocked(arg1: *mut FILE) -> c_int;
|
||||
pub fn getchar_unlocked() -> c_int;
|
||||
pub fn putc_unlocked(arg1: c_int, arg2: *mut FILE) -> c_int;
|
||||
pub fn putchar_unlocked(arg1: c_int) -> c_int;
|
||||
pub fn snprintf(arg1: *mut c_char, arg2: size_t, arg3: *const c_char, ...) -> c_int;
|
||||
pub fn vsnprintf(
|
||||
arg1: *mut c_char,
|
||||
arg2: size_t,
|
||||
arg3: *const c_char,
|
||||
arg4: __va_list,
|
||||
) -> c_int;
|
||||
pub fn getw(arg1: *mut FILE) -> c_int;
|
||||
pub fn putw(arg1: c_int, arg2: *mut FILE) -> c_int;
|
||||
pub fn tempnam(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn fseeko(stream: *mut FILE, offset: off_t, whence: c_int) -> c_int;
|
||||
pub fn ftello(stream: *mut FILE) -> off_t;
|
||||
|
||||
// stdlib.h
|
||||
pub fn atof(arg1: *const c_char) -> f64;
|
||||
pub fn strtod(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
|
||||
pub fn drand48() -> f64;
|
||||
pub fn erand48(arg1: *mut c_ushort) -> f64;
|
||||
pub fn strtof(arg1: *const c_char, arg2: *mut *mut c_char) -> f32;
|
||||
pub fn strtold(arg1: *const c_char, arg2: *mut *mut c_char) -> f64;
|
||||
pub fn strtod_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
|
||||
pub fn strtof_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f32;
|
||||
pub fn strtold_l(arg1: *const c_char, arg2: *mut *mut c_char, arg3: locale_t) -> f64;
|
||||
pub fn _Exit(arg1: c_int);
|
||||
pub fn abort();
|
||||
pub fn abs(arg1: c_int) -> c_int;
|
||||
pub fn atexit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn atoi(arg1: *const c_char) -> c_int;
|
||||
pub fn atol(arg1: *const c_char) -> c_long;
|
||||
pub fn itoa(arg1: c_int, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
|
||||
pub fn ltoa(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
|
||||
pub fn ultoa(arg1: c_ulong, arg2: *mut c_char, arg3: c_int) -> *mut c_char;
|
||||
pub fn bsearch(
|
||||
arg1: *const c_void,
|
||||
arg2: *const c_void,
|
||||
arg3: size_t,
|
||||
arg4: size_t,
|
||||
arg5: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> *mut c_void;
|
||||
pub fn calloc(arg1: size_t, arg2: size_t) -> *mut c_void;
|
||||
pub fn div(arg1: c_int, arg2: c_int) -> div_t;
|
||||
pub fn exit(arg1: c_int);
|
||||
pub fn free(arg1: *mut c_void);
|
||||
pub fn getenv(arg1: *const c_char) -> *mut c_char;
|
||||
pub fn labs(arg1: c_long) -> c_long;
|
||||
pub fn ldiv(arg1: c_long, arg2: c_long) -> ldiv_t;
|
||||
pub fn malloc(arg1: size_t) -> *mut c_void;
|
||||
pub fn qsort(
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
);
|
||||
pub fn rand() -> c_int;
|
||||
pub fn realloc(arg1: *mut c_void, arg2: size_t) -> *mut c_void;
|
||||
pub fn srand(arg1: c_uint);
|
||||
pub fn strtol(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_long;
|
||||
pub fn strtoul(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulong;
|
||||
pub fn mblen(arg1: *const c_char, arg2: size_t) -> c_int;
|
||||
pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> size_t;
|
||||
pub fn wctomb(arg1: *mut c_char, arg2: wchar_t) -> c_int;
|
||||
pub fn mbtowc(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t) -> c_int;
|
||||
pub fn wcstombs(arg1: *mut c_char, arg2: *const wchar_t, arg3: size_t) -> size_t;
|
||||
pub fn rand_r(arg1: *mut c_uint) -> c_int;
|
||||
pub fn jrand48(arg1: *mut c_ushort) -> c_long;
|
||||
pub fn lcong48(arg1: *mut c_ushort);
|
||||
pub fn lrand48() -> c_long;
|
||||
pub fn mrand48() -> c_long;
|
||||
pub fn nrand48(arg1: *mut c_ushort) -> c_long;
|
||||
pub fn seed48(arg1: *mut c_ushort) -> *mut c_ushort;
|
||||
pub fn srand48(arg1: c_long);
|
||||
pub fn putenv(arg1: *mut c_char) -> c_int;
|
||||
pub fn a64l(arg1: *const c_char) -> c_long;
|
||||
pub fn l64a(arg1: c_long) -> *mut c_char;
|
||||
pub fn random() -> c_long;
|
||||
pub fn setstate(arg1: *mut c_char) -> *mut c_char;
|
||||
pub fn initstate(arg1: c_uint, arg2: *mut c_char, arg3: size_t) -> *mut c_char;
|
||||
pub fn srandom(arg1: c_uint);
|
||||
pub fn mkostemp(arg1: *mut c_char, arg2: c_int) -> c_int;
|
||||
pub fn mkostemps(arg1: *mut c_char, arg2: c_int, arg3: c_int) -> c_int;
|
||||
pub fn mkdtemp(arg1: *mut c_char) -> *mut c_char;
|
||||
pub fn mkstemp(arg1: *mut c_char) -> c_int;
|
||||
pub fn mktemp(arg1: *mut c_char) -> *mut c_char;
|
||||
pub fn atoll(arg1: *const c_char) -> c_longlong;
|
||||
pub fn llabs(arg1: c_longlong) -> c_longlong;
|
||||
pub fn lldiv(arg1: c_longlong, arg2: c_longlong) -> lldiv_t;
|
||||
pub fn strtoll(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_longlong;
|
||||
pub fn strtoull(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> c_ulonglong;
|
||||
pub fn aligned_alloc(arg1: size_t, arg2: size_t) -> *mut c_void;
|
||||
pub fn at_quick_exit(arg1: ::Option<unsafe extern "C" fn()>) -> c_int;
|
||||
pub fn quick_exit(arg1: c_int);
|
||||
pub fn setenv(arg1: *const c_char, arg2: *const c_char, arg3: c_int) -> c_int;
|
||||
pub fn unsetenv(arg1: *const c_char) -> c_int;
|
||||
pub fn humanize_number(
|
||||
arg1: *mut c_char,
|
||||
arg2: size_t,
|
||||
arg3: i64,
|
||||
arg4: *const c_char,
|
||||
arg5: c_int,
|
||||
arg6: c_int,
|
||||
) -> c_int;
|
||||
pub fn dehumanize_number(arg1: *const c_char, arg2: *mut i64) -> c_int;
|
||||
pub fn getenv_r(arg1: *const c_char, arg2: *mut c_char, arg3: size_t) -> c_int;
|
||||
pub fn heapsort(
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> c_int;
|
||||
pub fn mergesort(
|
||||
arg1: *mut c_void,
|
||||
arg2: size_t,
|
||||
arg3: size_t,
|
||||
arg4: ::Option<unsafe extern "C" fn(arg1: *const c_void, arg2: *const c_void) -> c_int>,
|
||||
) -> c_int;
|
||||
pub fn radixsort(
|
||||
arg1: *mut *const c_uchar,
|
||||
arg2: c_int,
|
||||
arg3: *const c_uchar,
|
||||
arg4: c_uint,
|
||||
) -> c_int;
|
||||
pub fn sradixsort(
|
||||
arg1: *mut *const c_uchar,
|
||||
arg2: c_int,
|
||||
arg3: *const c_uchar,
|
||||
arg4: c_uint,
|
||||
) -> c_int;
|
||||
pub fn getprogname() -> *const c_char;
|
||||
pub fn setprogname(arg1: *const c_char);
|
||||
pub fn qabs(arg1: quad_t) -> quad_t;
|
||||
pub fn strtoq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> quad_t;
|
||||
pub fn strtouq(arg1: *const c_char, arg2: *mut *mut c_char, arg3: c_int) -> u_quad_t;
|
||||
pub fn strsuftoll(
|
||||
arg1: *const c_char,
|
||||
arg2: *const c_char,
|
||||
arg3: c_longlong,
|
||||
arg4: c_longlong,
|
||||
) -> c_longlong;
|
||||
pub fn strsuftollx(
|
||||
arg1: *const c_char,
|
||||
arg2: *const c_char,
|
||||
arg3: c_longlong,
|
||||
arg4: c_longlong,
|
||||
arg5: *mut c_char,
|
||||
arg6: size_t,
|
||||
) -> c_longlong;
|
||||
pub fn l64a_r(arg1: c_long, arg2: *mut c_char, arg3: c_int) -> c_int;
|
||||
pub fn qdiv(arg1: quad_t, arg2: quad_t) -> qdiv_t;
|
||||
pub fn strtol_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> c_long;
|
||||
pub fn strtoul_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> c_ulong;
|
||||
pub fn strtoll_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> c_longlong;
|
||||
pub fn strtoull_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> c_ulonglong;
|
||||
pub fn strtoq_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> quad_t;
|
||||
pub fn strtouq_l(
|
||||
arg1: *const c_char,
|
||||
arg2: *mut *mut c_char,
|
||||
arg3: c_int,
|
||||
arg4: locale_t,
|
||||
) -> u_quad_t;
|
||||
pub fn _mb_cur_max_l(arg1: locale_t) -> size_t;
|
||||
pub fn mblen_l(arg1: *const c_char, arg2: size_t, arg3: locale_t) -> c_int;
|
||||
pub fn mbstowcs_l(
|
||||
arg1: *mut wchar_t,
|
||||
arg2: *const c_char,
|
||||
arg3: size_t,
|
||||
arg4: locale_t,
|
||||
) -> size_t;
|
||||
pub fn wctomb_l(arg1: *mut c_char, arg2: wchar_t, arg3: locale_t) -> c_int;
|
||||
pub fn mbtowc_l(arg1: *mut wchar_t, arg2: *const c_char, arg3: size_t, arg4: locale_t)
|
||||
-> c_int;
|
||||
pub fn wcstombs_l(
|
||||
arg1: *mut c_char,
|
||||
arg2: *const wchar_t,
|
||||
arg3: size_t,
|
||||
arg4: locale_t,
|
||||
) -> size_t;
|
||||
|
||||
// string.h
|
||||
pub fn memchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
|
||||
pub fn memcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
|
||||
pub fn memcpy(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
|
||||
pub fn memmove(arg1: *mut c_void, arg2: *const c_void, arg3: size_t) -> *mut c_void;
|
||||
pub fn memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
|
||||
pub fn strcat(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
|
||||
pub fn strcmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
|
||||
pub fn strcoll(arg1: *const c_char, arg2: *const c_char) -> c_int;
|
||||
pub fn strcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strcspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
|
||||
pub fn strerror(arg1: c_int) -> *mut c_char;
|
||||
pub fn strlen(arg1: *const c_char) -> size_t;
|
||||
pub fn strncat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
|
||||
pub fn strncmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
|
||||
pub fn strncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
|
||||
pub fn strpbrk(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strrchr(arg1: *const c_char, arg2: c_int) -> *mut c_char;
|
||||
pub fn strspn(arg1: *const c_char, arg2: *const c_char) -> size_t;
|
||||
pub fn strstr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strtok(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strtok_r(arg1: *mut c_char, arg2: *const c_char, arg3: *mut *mut c_char) -> *mut c_char;
|
||||
pub fn strerror_r(arg1: c_int, arg2: *mut c_char, arg3: size_t) -> c_int;
|
||||
pub fn strxfrm(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
|
||||
pub fn memccpy(
|
||||
arg1: *mut c_void,
|
||||
arg2: *const c_void,
|
||||
arg3: c_int,
|
||||
arg4: size_t,
|
||||
) -> *mut c_void;
|
||||
pub fn strdup(arg1: *const c_char) -> *mut c_char;
|
||||
pub fn stpcpy(arg1: *mut c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn stpncpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> *mut c_char;
|
||||
pub fn strnlen(arg1: *const c_char, arg2: size_t) -> size_t;
|
||||
pub fn memmem(
|
||||
arg1: *const c_void,
|
||||
arg2: size_t,
|
||||
arg3: *const c_void,
|
||||
arg4: size_t,
|
||||
) -> *mut c_void;
|
||||
pub fn strcasestr(arg1: *const c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn strlcat(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
|
||||
pub fn strlcpy(arg1: *mut c_char, arg2: *const c_char, arg3: size_t) -> size_t;
|
||||
pub fn strsep(arg1: *mut *mut c_char, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn stresep(arg1: *mut *mut c_char, arg2: *const c_char, arg3: c_int) -> *mut c_char;
|
||||
pub fn strndup(arg1: *const c_char, arg2: size_t) -> *mut c_char;
|
||||
pub fn memrchr(arg1: *const c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
|
||||
pub fn explicit_memset(arg1: *mut c_void, arg2: c_int, arg3: size_t) -> *mut c_void;
|
||||
pub fn consttime_memequal(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
|
||||
pub fn strcoll_l(arg1: *const c_char, arg2: *const c_char, arg3: locale_t) -> c_int;
|
||||
pub fn strxfrm_l(
|
||||
arg1: *mut c_char,
|
||||
arg2: *const c_char,
|
||||
arg3: size_t,
|
||||
arg4: locale_t,
|
||||
) -> size_t;
|
||||
pub fn strerror_l(arg1: c_int, arg2: locale_t) -> *mut c_char;
|
||||
|
||||
// strings.h
|
||||
pub fn bcmp(arg1: *const c_void, arg2: *const c_void, arg3: size_t) -> c_int;
|
||||
pub fn bcopy(arg1: *const c_void, arg2: *mut c_void, arg3: size_t);
|
||||
pub fn bzero(arg1: *mut c_void, arg2: size_t);
|
||||
pub fn ffs(arg1: c_int) -> c_int;
|
||||
pub fn popcount(arg1: c_uint) -> c_uint;
|
||||
pub fn popcountl(arg1: c_ulong) -> c_uint;
|
||||
pub fn popcountll(arg1: c_ulonglong) -> c_uint;
|
||||
pub fn popcount32(arg1: u32) -> c_uint;
|
||||
pub fn popcount64(arg1: u64) -> c_uint;
|
||||
pub fn rindex(arg1: *const c_char, arg2: c_int) -> *mut c_char;
|
||||
pub fn strcasecmp(arg1: *const c_char, arg2: *const c_char) -> c_int;
|
||||
pub fn strncasecmp(arg1: *const c_char, arg2: *const c_char, arg3: size_t) -> c_int;
|
||||
|
||||
// signal.h
|
||||
pub fn signal(arg1: c_int, arg2: sighandler_t) -> sighandler_t;
|
||||
pub fn raise(arg1: c_int) -> c_int;
|
||||
|
||||
// time.h
|
||||
pub fn asctime(arg1: *const tm) -> *mut c_char;
|
||||
pub fn clock() -> clock_t;
|
||||
pub fn ctime(arg1: *const time_t) -> *mut c_char;
|
||||
pub fn difftime(arg1: time_t, arg2: time_t) -> f64;
|
||||
pub fn gmtime(arg1: *const time_t) -> *mut tm;
|
||||
pub fn localtime(arg1: *const time_t) -> *mut tm;
|
||||
pub fn time(arg1: *mut time_t) -> time_t;
|
||||
pub fn mktime(arg1: *mut tm) -> time_t;
|
||||
pub fn strftime(
|
||||
arg1: *mut c_char,
|
||||
arg2: size_t,
|
||||
arg3: *const c_char,
|
||||
arg4: *const tm,
|
||||
) -> size_t;
|
||||
pub fn utime(arg1: *const c_char, arg2: *mut time_t) -> c_int;
|
||||
pub fn asctime_r(arg1: *const tm, arg2: *mut c_char) -> *mut c_char;
|
||||
pub fn ctime_r(arg1: *const time_t, arg2: *mut c_char) -> *mut c_char;
|
||||
pub fn gmtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
|
||||
pub fn localtime_r(arg1: *const time_t, arg2: *mut tm) -> *mut tm;
|
||||
|
||||
// sys/stat.h
|
||||
pub fn stat(arg1: *const c_char, arg2: *mut stat) -> c_int;
|
||||
pub fn lstat(arg1: *const c_char, arg2: *mut stat) -> c_int;
|
||||
pub fn fstat(arg1: c_int, arg2: *mut stat) -> c_int;
|
||||
pub fn chmod(arg1: *const c_char, arg2: __mode_t) -> c_int;
|
||||
pub fn mkdir(arg1: *const c_char, arg2: __mode_t) -> c_int;
|
||||
|
||||
// fcntl.h
|
||||
pub fn open(arg1: *const c_char, arg2: c_int, ...) -> c_int;
|
||||
pub fn creat(arg1: *const c_char, arg2: c_int) -> c_int;
|
||||
pub fn close(arg1: c_int) -> c_int;
|
||||
pub fn read(arg1: c_int, arg2: *mut c_void, arg3: c_int) -> c_int;
|
||||
pub fn write(arg1: c_int, arg2: *const c_void, arg3: c_int) -> c_int;
|
||||
pub fn unlink(arg1: *const c_char) -> c_int;
|
||||
pub fn tell(arg1: c_int) -> c_long;
|
||||
pub fn dup(arg1: c_int) -> c_int;
|
||||
pub fn dup2(arg1: c_int, arg2: c_int) -> c_int;
|
||||
pub fn access(arg1: *const c_char, arg2: c_int) -> c_int;
|
||||
pub fn rmdir(arg1: *const c_char) -> c_int;
|
||||
pub fn chdir(arg1: *const c_char) -> c_int;
|
||||
pub fn _exit(arg1: c_int);
|
||||
pub fn getwd(arg1: *mut c_char) -> *mut c_char;
|
||||
pub fn getcwd(arg1: *mut c_char, arg2: size_t) -> *mut c_char;
|
||||
pub static mut optarg: *mut c_char;
|
||||
pub static mut opterr: c_int;
|
||||
pub static mut optind: c_int;
|
||||
pub static mut optopt: c_int;
|
||||
pub static mut optreset: c_int;
|
||||
pub fn getopt(arg1: c_int, arg2: *mut *mut c_char, arg3: *const c_char) -> c_int;
|
||||
pub static mut suboptarg: *mut c_char;
|
||||
pub fn getsubopt(
|
||||
arg1: *mut *mut c_char,
|
||||
arg2: *const *mut c_char,
|
||||
arg3: *mut *mut c_char,
|
||||
) -> c_int;
|
||||
pub fn fcntl(arg1: c_int, arg2: c_int, ...) -> c_int;
|
||||
pub fn getpid() -> pid_t;
|
||||
pub fn sleep(arg1: c_uint) -> c_uint;
|
||||
pub fn usleep(arg1: useconds_t) -> c_int;
|
||||
|
||||
// locale.h
|
||||
pub fn localeconv() -> *mut lconv;
|
||||
pub fn setlocale(arg1: c_int, arg2: *const c_char) -> *mut c_char;
|
||||
pub fn duplocale(arg1: locale_t) -> locale_t;
|
||||
pub fn freelocale(arg1: locale_t);
|
||||
pub fn localeconv_l(arg1: locale_t) -> *mut lconv;
|
||||
pub fn newlocale(arg1: c_int, arg2: *const c_char, arg3: locale_t) -> locale_t;
|
||||
|
||||
// langinfo.h
|
||||
pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
|
||||
pub fn nl_langinfo_l(item: ::nl_item, locale: locale_t) -> *mut ::c_char;
|
||||
|
||||
// malloc.h
|
||||
pub fn memalign(align: ::size_t, size: ::size_t) -> *mut ::c_void;
|
||||
|
||||
// sys/types.h
|
||||
pub fn lseek(arg1: c_int, arg2: __off_t, arg3: c_int) -> __off_t;
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(libc_core_cvoid)] {
|
||||
pub use ::ffi::c_void;
|
||||
} else {
|
||||
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
|
||||
// enable more optimization opportunities around it recognizing things
|
||||
// like malloc/free.
|
||||
#[repr(u8)]
|
||||
#[allow(missing_copy_implementations)]
|
||||
#[allow(missing_debug_implementations)]
|
||||
pub enum c_void {
|
||||
// Two dummy variants so the #[repr] attribute can be used.
|
||||
#[doc(hidden)]
|
||||
__variant1,
|
||||
#[doc(hidden)]
|
||||
__variant2,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if! {
|
||||
if #[cfg(target_arch = "aarch64")] {
|
||||
mod aarch64;
|
||||
pub use self::aarch64::*;
|
||||
} else if #[cfg(any(target_arch = "arm"))] {
|
||||
mod arm;
|
||||
pub use self::arm::*;
|
||||
} else {
|
||||
// Unknown target_arch
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue