12add0d91Sopenharmony_ci//! Definitions found commonly among almost all Unix derivatives 22add0d91Sopenharmony_ci//! 32add0d91Sopenharmony_ci//! More functions and definitions can be found in the more specific modules 42add0d91Sopenharmony_ci//! according to the platform in question. 52add0d91Sopenharmony_ci 62add0d91Sopenharmony_cipub type c_schar = i8; 72add0d91Sopenharmony_cipub type c_uchar = u8; 82add0d91Sopenharmony_cipub type c_short = i16; 92add0d91Sopenharmony_cipub type c_ushort = u16; 102add0d91Sopenharmony_cipub type c_int = i32; 112add0d91Sopenharmony_cipub type c_uint = u32; 122add0d91Sopenharmony_cipub type c_float = f32; 132add0d91Sopenharmony_cipub type c_double = f64; 142add0d91Sopenharmony_cipub type c_longlong = i64; 152add0d91Sopenharmony_cipub type c_ulonglong = u64; 162add0d91Sopenharmony_cipub type intmax_t = i64; 172add0d91Sopenharmony_cipub type uintmax_t = u64; 182add0d91Sopenharmony_ci 192add0d91Sopenharmony_cipub type size_t = usize; 202add0d91Sopenharmony_cipub type ptrdiff_t = isize; 212add0d91Sopenharmony_cipub type intptr_t = isize; 222add0d91Sopenharmony_cipub type uintptr_t = usize; 232add0d91Sopenharmony_cipub type ssize_t = isize; 242add0d91Sopenharmony_ci 252add0d91Sopenharmony_cipub type pid_t = i32; 262add0d91Sopenharmony_cipub type in_addr_t = u32; 272add0d91Sopenharmony_cipub type in_port_t = u16; 282add0d91Sopenharmony_cipub type sighandler_t = ::size_t; 292add0d91Sopenharmony_cipub type cc_t = ::c_uchar; 302add0d91Sopenharmony_ci 312add0d91Sopenharmony_cicfg_if! { 322add0d91Sopenharmony_ci if #[cfg(any(target_os = "espidf", target_os = "horizon"))] { 332add0d91Sopenharmony_ci pub type uid_t = ::c_ushort; 342add0d91Sopenharmony_ci pub type gid_t = ::c_ushort; 352add0d91Sopenharmony_ci } else if #[cfg(target_os = "nto")] { 362add0d91Sopenharmony_ci pub type uid_t = i32; 372add0d91Sopenharmony_ci pub type gid_t = i32; 382add0d91Sopenharmony_ci } else { 392add0d91Sopenharmony_ci pub type uid_t = u32; 402add0d91Sopenharmony_ci pub type gid_t = u32; 412add0d91Sopenharmony_ci } 422add0d91Sopenharmony_ci} 432add0d91Sopenharmony_ci 442add0d91Sopenharmony_ci#[cfg_attr(feature = "extra_traits", derive(Debug))] 452add0d91Sopenharmony_cipub enum DIR {} 462add0d91Sopenharmony_ciimpl ::Copy for DIR {} 472add0d91Sopenharmony_ciimpl ::Clone for DIR { 482add0d91Sopenharmony_ci fn clone(&self) -> DIR { 492add0d91Sopenharmony_ci *self 502add0d91Sopenharmony_ci } 512add0d91Sopenharmony_ci} 522add0d91Sopenharmony_cipub type locale_t = *mut ::c_void; 532add0d91Sopenharmony_ci 542add0d91Sopenharmony_cis! { 552add0d91Sopenharmony_ci pub struct group { 562add0d91Sopenharmony_ci pub gr_name: *mut ::c_char, 572add0d91Sopenharmony_ci pub gr_passwd: *mut ::c_char, 582add0d91Sopenharmony_ci pub gr_gid: ::gid_t, 592add0d91Sopenharmony_ci pub gr_mem: *mut *mut ::c_char, 602add0d91Sopenharmony_ci } 612add0d91Sopenharmony_ci 622add0d91Sopenharmony_ci pub struct utimbuf { 632add0d91Sopenharmony_ci pub actime: time_t, 642add0d91Sopenharmony_ci pub modtime: time_t, 652add0d91Sopenharmony_ci } 662add0d91Sopenharmony_ci 672add0d91Sopenharmony_ci pub struct timeval { 682add0d91Sopenharmony_ci pub tv_sec: time_t, 692add0d91Sopenharmony_ci pub tv_usec: suseconds_t, 702add0d91Sopenharmony_ci } 712add0d91Sopenharmony_ci 722add0d91Sopenharmony_ci // linux x32 compatibility 732add0d91Sopenharmony_ci // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437 742add0d91Sopenharmony_ci pub struct timespec { 752add0d91Sopenharmony_ci pub tv_sec: time_t, 762add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 772add0d91Sopenharmony_ci pub tv_nsec: i64, 782add0d91Sopenharmony_ci #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] 792add0d91Sopenharmony_ci pub tv_nsec: ::c_long, 802add0d91Sopenharmony_ci } 812add0d91Sopenharmony_ci 822add0d91Sopenharmony_ci pub struct rlimit { 832add0d91Sopenharmony_ci pub rlim_cur: rlim_t, 842add0d91Sopenharmony_ci pub rlim_max: rlim_t, 852add0d91Sopenharmony_ci } 862add0d91Sopenharmony_ci 872add0d91Sopenharmony_ci pub struct rusage { 882add0d91Sopenharmony_ci pub ru_utime: timeval, 892add0d91Sopenharmony_ci pub ru_stime: timeval, 902add0d91Sopenharmony_ci pub ru_maxrss: c_long, 912add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 922add0d91Sopenharmony_ci __pad1: u32, 932add0d91Sopenharmony_ci pub ru_ixrss: c_long, 942add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 952add0d91Sopenharmony_ci __pad2: u32, 962add0d91Sopenharmony_ci pub ru_idrss: c_long, 972add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 982add0d91Sopenharmony_ci __pad3: u32, 992add0d91Sopenharmony_ci pub ru_isrss: c_long, 1002add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1012add0d91Sopenharmony_ci __pad4: u32, 1022add0d91Sopenharmony_ci pub ru_minflt: c_long, 1032add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1042add0d91Sopenharmony_ci __pad5: u32, 1052add0d91Sopenharmony_ci pub ru_majflt: c_long, 1062add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1072add0d91Sopenharmony_ci __pad6: u32, 1082add0d91Sopenharmony_ci pub ru_nswap: c_long, 1092add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1102add0d91Sopenharmony_ci __pad7: u32, 1112add0d91Sopenharmony_ci pub ru_inblock: c_long, 1122add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1132add0d91Sopenharmony_ci __pad8: u32, 1142add0d91Sopenharmony_ci pub ru_oublock: c_long, 1152add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1162add0d91Sopenharmony_ci __pad9: u32, 1172add0d91Sopenharmony_ci pub ru_msgsnd: c_long, 1182add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1192add0d91Sopenharmony_ci __pad10: u32, 1202add0d91Sopenharmony_ci pub ru_msgrcv: c_long, 1212add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1222add0d91Sopenharmony_ci __pad11: u32, 1232add0d91Sopenharmony_ci pub ru_nsignals: c_long, 1242add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1252add0d91Sopenharmony_ci __pad12: u32, 1262add0d91Sopenharmony_ci pub ru_nvcsw: c_long, 1272add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1282add0d91Sopenharmony_ci __pad13: u32, 1292add0d91Sopenharmony_ci pub ru_nivcsw: c_long, 1302add0d91Sopenharmony_ci #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] 1312add0d91Sopenharmony_ci __pad14: u32, 1322add0d91Sopenharmony_ci 1332add0d91Sopenharmony_ci #[cfg(any(target_env = "musl", target_env = "ohos", target_os = "emscripten"))] 1342add0d91Sopenharmony_ci __reserved: [c_long; 16], 1352add0d91Sopenharmony_ci } 1362add0d91Sopenharmony_ci 1372add0d91Sopenharmony_ci pub struct ipv6_mreq { 1382add0d91Sopenharmony_ci pub ipv6mr_multiaddr: in6_addr, 1392add0d91Sopenharmony_ci #[cfg(target_os = "android")] 1402add0d91Sopenharmony_ci pub ipv6mr_interface: ::c_int, 1412add0d91Sopenharmony_ci #[cfg(not(target_os = "android"))] 1422add0d91Sopenharmony_ci pub ipv6mr_interface: ::c_uint, 1432add0d91Sopenharmony_ci } 1442add0d91Sopenharmony_ci 1452add0d91Sopenharmony_ci pub struct hostent { 1462add0d91Sopenharmony_ci pub h_name: *mut ::c_char, 1472add0d91Sopenharmony_ci pub h_aliases: *mut *mut ::c_char, 1482add0d91Sopenharmony_ci pub h_addrtype: ::c_int, 1492add0d91Sopenharmony_ci pub h_length: ::c_int, 1502add0d91Sopenharmony_ci pub h_addr_list: *mut *mut ::c_char, 1512add0d91Sopenharmony_ci } 1522add0d91Sopenharmony_ci 1532add0d91Sopenharmony_ci pub struct iovec { 1542add0d91Sopenharmony_ci pub iov_base: *mut ::c_void, 1552add0d91Sopenharmony_ci pub iov_len: ::size_t, 1562add0d91Sopenharmony_ci } 1572add0d91Sopenharmony_ci 1582add0d91Sopenharmony_ci pub struct pollfd { 1592add0d91Sopenharmony_ci pub fd: ::c_int, 1602add0d91Sopenharmony_ci pub events: ::c_short, 1612add0d91Sopenharmony_ci pub revents: ::c_short, 1622add0d91Sopenharmony_ci } 1632add0d91Sopenharmony_ci 1642add0d91Sopenharmony_ci pub struct winsize { 1652add0d91Sopenharmony_ci pub ws_row: ::c_ushort, 1662add0d91Sopenharmony_ci pub ws_col: ::c_ushort, 1672add0d91Sopenharmony_ci pub ws_xpixel: ::c_ushort, 1682add0d91Sopenharmony_ci pub ws_ypixel: ::c_ushort, 1692add0d91Sopenharmony_ci } 1702add0d91Sopenharmony_ci 1712add0d91Sopenharmony_ci pub struct linger { 1722add0d91Sopenharmony_ci pub l_onoff: ::c_int, 1732add0d91Sopenharmony_ci pub l_linger: ::c_int, 1742add0d91Sopenharmony_ci } 1752add0d91Sopenharmony_ci 1762add0d91Sopenharmony_ci pub struct sigval { 1772add0d91Sopenharmony_ci // Actually a union of an int and a void* 1782add0d91Sopenharmony_ci pub sival_ptr: *mut ::c_void 1792add0d91Sopenharmony_ci } 1802add0d91Sopenharmony_ci 1812add0d91Sopenharmony_ci // <sys/time.h> 1822add0d91Sopenharmony_ci pub struct itimerval { 1832add0d91Sopenharmony_ci pub it_interval: ::timeval, 1842add0d91Sopenharmony_ci pub it_value: ::timeval, 1852add0d91Sopenharmony_ci } 1862add0d91Sopenharmony_ci 1872add0d91Sopenharmony_ci // <sys/times.h> 1882add0d91Sopenharmony_ci pub struct tms { 1892add0d91Sopenharmony_ci pub tms_utime: ::clock_t, 1902add0d91Sopenharmony_ci pub tms_stime: ::clock_t, 1912add0d91Sopenharmony_ci pub tms_cutime: ::clock_t, 1922add0d91Sopenharmony_ci pub tms_cstime: ::clock_t, 1932add0d91Sopenharmony_ci } 1942add0d91Sopenharmony_ci 1952add0d91Sopenharmony_ci pub struct servent { 1962add0d91Sopenharmony_ci pub s_name: *mut ::c_char, 1972add0d91Sopenharmony_ci pub s_aliases: *mut *mut ::c_char, 1982add0d91Sopenharmony_ci pub s_port: ::c_int, 1992add0d91Sopenharmony_ci pub s_proto: *mut ::c_char, 2002add0d91Sopenharmony_ci } 2012add0d91Sopenharmony_ci 2022add0d91Sopenharmony_ci pub struct protoent { 2032add0d91Sopenharmony_ci pub p_name: *mut ::c_char, 2042add0d91Sopenharmony_ci pub p_aliases: *mut *mut ::c_char, 2052add0d91Sopenharmony_ci pub p_proto: ::c_int, 2062add0d91Sopenharmony_ci } 2072add0d91Sopenharmony_ci} 2082add0d91Sopenharmony_ci 2092add0d91Sopenharmony_cipub const INT_MIN: c_int = -2147483648; 2102add0d91Sopenharmony_cipub const INT_MAX: c_int = 2147483647; 2112add0d91Sopenharmony_ci 2122add0d91Sopenharmony_cipub const SIG_DFL: sighandler_t = 0 as sighandler_t; 2132add0d91Sopenharmony_cipub const SIG_IGN: sighandler_t = 1 as sighandler_t; 2142add0d91Sopenharmony_cipub const SIG_ERR: sighandler_t = !0 as sighandler_t; 2152add0d91Sopenharmony_cicfg_if! { 2162add0d91Sopenharmony_ci if #[cfg(not(target_os = "nto"))] { 2172add0d91Sopenharmony_ci pub const DT_UNKNOWN: u8 = 0; 2182add0d91Sopenharmony_ci pub const DT_FIFO: u8 = 1; 2192add0d91Sopenharmony_ci pub const DT_CHR: u8 = 2; 2202add0d91Sopenharmony_ci pub const DT_DIR: u8 = 4; 2212add0d91Sopenharmony_ci pub const DT_BLK: u8 = 6; 2222add0d91Sopenharmony_ci pub const DT_REG: u8 = 8; 2232add0d91Sopenharmony_ci pub const DT_LNK: u8 = 10; 2242add0d91Sopenharmony_ci pub const DT_SOCK: u8 = 12; 2252add0d91Sopenharmony_ci } 2262add0d91Sopenharmony_ci} 2272add0d91Sopenharmony_cicfg_if! { 2282add0d91Sopenharmony_ci if #[cfg(not(target_os = "redox"))] { 2292add0d91Sopenharmony_ci pub const FD_CLOEXEC: ::c_int = 0x1; 2302add0d91Sopenharmony_ci } 2312add0d91Sopenharmony_ci} 2322add0d91Sopenharmony_ci 2332add0d91Sopenharmony_cicfg_if! { 2342add0d91Sopenharmony_ci if #[cfg(not(target_os = "nto"))] 2352add0d91Sopenharmony_ci { 2362add0d91Sopenharmony_ci pub const USRQUOTA: ::c_int = 0; 2372add0d91Sopenharmony_ci pub const GRPQUOTA: ::c_int = 1; 2382add0d91Sopenharmony_ci } 2392add0d91Sopenharmony_ci} 2402add0d91Sopenharmony_cipub const SIGIOT: ::c_int = 6; 2412add0d91Sopenharmony_ci 2422add0d91Sopenharmony_cipub const S_ISUID: ::mode_t = 0x800; 2432add0d91Sopenharmony_cipub const S_ISGID: ::mode_t = 0x400; 2442add0d91Sopenharmony_cipub const S_ISVTX: ::mode_t = 0x200; 2452add0d91Sopenharmony_ci 2462add0d91Sopenharmony_cicfg_if! { 2472add0d91Sopenharmony_ci if #[cfg(not(any(target_os = "haiku", target_os = "illumos", 2482add0d91Sopenharmony_ci target_os = "solaris")))] { 2492add0d91Sopenharmony_ci pub const IF_NAMESIZE: ::size_t = 16; 2502add0d91Sopenharmony_ci pub const IFNAMSIZ: ::size_t = IF_NAMESIZE; 2512add0d91Sopenharmony_ci } 2522add0d91Sopenharmony_ci} 2532add0d91Sopenharmony_ci 2542add0d91Sopenharmony_cipub const LOG_EMERG: ::c_int = 0; 2552add0d91Sopenharmony_cipub const LOG_ALERT: ::c_int = 1; 2562add0d91Sopenharmony_cipub const LOG_CRIT: ::c_int = 2; 2572add0d91Sopenharmony_cipub const LOG_ERR: ::c_int = 3; 2582add0d91Sopenharmony_cipub const LOG_WARNING: ::c_int = 4; 2592add0d91Sopenharmony_cipub const LOG_NOTICE: ::c_int = 5; 2602add0d91Sopenharmony_cipub const LOG_INFO: ::c_int = 6; 2612add0d91Sopenharmony_cipub const LOG_DEBUG: ::c_int = 7; 2622add0d91Sopenharmony_ci 2632add0d91Sopenharmony_cipub const LOG_KERN: ::c_int = 0; 2642add0d91Sopenharmony_cipub const LOG_USER: ::c_int = 1 << 3; 2652add0d91Sopenharmony_cipub const LOG_MAIL: ::c_int = 2 << 3; 2662add0d91Sopenharmony_cipub const LOG_DAEMON: ::c_int = 3 << 3; 2672add0d91Sopenharmony_cipub const LOG_AUTH: ::c_int = 4 << 3; 2682add0d91Sopenharmony_cipub const LOG_SYSLOG: ::c_int = 5 << 3; 2692add0d91Sopenharmony_cipub const LOG_LPR: ::c_int = 6 << 3; 2702add0d91Sopenharmony_cipub const LOG_NEWS: ::c_int = 7 << 3; 2712add0d91Sopenharmony_cipub const LOG_UUCP: ::c_int = 8 << 3; 2722add0d91Sopenharmony_cipub const LOG_LOCAL0: ::c_int = 16 << 3; 2732add0d91Sopenharmony_cipub const LOG_LOCAL1: ::c_int = 17 << 3; 2742add0d91Sopenharmony_cipub const LOG_LOCAL2: ::c_int = 18 << 3; 2752add0d91Sopenharmony_cipub const LOG_LOCAL3: ::c_int = 19 << 3; 2762add0d91Sopenharmony_cipub const LOG_LOCAL4: ::c_int = 20 << 3; 2772add0d91Sopenharmony_cipub const LOG_LOCAL5: ::c_int = 21 << 3; 2782add0d91Sopenharmony_cipub const LOG_LOCAL6: ::c_int = 22 << 3; 2792add0d91Sopenharmony_cipub const LOG_LOCAL7: ::c_int = 23 << 3; 2802add0d91Sopenharmony_ci 2812add0d91Sopenharmony_cicfg_if! { 2822add0d91Sopenharmony_ci if #[cfg(not(target_os = "haiku"))] { 2832add0d91Sopenharmony_ci pub const LOG_PID: ::c_int = 0x01; 2842add0d91Sopenharmony_ci pub const LOG_CONS: ::c_int = 0x02; 2852add0d91Sopenharmony_ci pub const LOG_ODELAY: ::c_int = 0x04; 2862add0d91Sopenharmony_ci pub const LOG_NDELAY: ::c_int = 0x08; 2872add0d91Sopenharmony_ci pub const LOG_NOWAIT: ::c_int = 0x10; 2882add0d91Sopenharmony_ci } 2892add0d91Sopenharmony_ci} 2902add0d91Sopenharmony_cipub const LOG_PRIMASK: ::c_int = 7; 2912add0d91Sopenharmony_cipub const LOG_FACMASK: ::c_int = 0x3f8; 2922add0d91Sopenharmony_ci 2932add0d91Sopenharmony_cicfg_if! { 2942add0d91Sopenharmony_ci if #[cfg(not(target_os = "nto"))] 2952add0d91Sopenharmony_ci { 2962add0d91Sopenharmony_ci pub const PRIO_MIN: ::c_int = -20; 2972add0d91Sopenharmony_ci pub const PRIO_MAX: ::c_int = 20; 2982add0d91Sopenharmony_ci } 2992add0d91Sopenharmony_ci} 3002add0d91Sopenharmony_cipub const IPPROTO_ICMP: ::c_int = 1; 3012add0d91Sopenharmony_cipub const IPPROTO_ICMPV6: ::c_int = 58; 3022add0d91Sopenharmony_cipub const IPPROTO_TCP: ::c_int = 6; 3032add0d91Sopenharmony_cipub const IPPROTO_UDP: ::c_int = 17; 3042add0d91Sopenharmony_cipub const IPPROTO_IP: ::c_int = 0; 3052add0d91Sopenharmony_cipub const IPPROTO_IPV6: ::c_int = 41; 3062add0d91Sopenharmony_ci 3072add0d91Sopenharmony_cipub const INADDR_LOOPBACK: in_addr_t = 2130706433; 3082add0d91Sopenharmony_cipub const INADDR_ANY: in_addr_t = 0; 3092add0d91Sopenharmony_cipub const INADDR_BROADCAST: in_addr_t = 4294967295; 3102add0d91Sopenharmony_cipub const INADDR_NONE: in_addr_t = 4294967295; 3112add0d91Sopenharmony_ci 3122add0d91Sopenharmony_cipub const ARPOP_REQUEST: u16 = 1; 3132add0d91Sopenharmony_cipub const ARPOP_REPLY: u16 = 2; 3142add0d91Sopenharmony_ci 3152add0d91Sopenharmony_cipub const ATF_COM: ::c_int = 0x02; 3162add0d91Sopenharmony_cipub const ATF_PERM: ::c_int = 0x04; 3172add0d91Sopenharmony_cipub const ATF_PUBL: ::c_int = 0x08; 3182add0d91Sopenharmony_cipub const ATF_USETRAILERS: ::c_int = 0x10; 3192add0d91Sopenharmony_ci 3202add0d91Sopenharmony_cicfg_if! { 3212add0d91Sopenharmony_ci if #[cfg(any(target_os = "l4re", target_os = "espidf"))] { 3222add0d91Sopenharmony_ci // required libraries for L4Re and the ESP-IDF framework are linked externally, ATM 3232add0d91Sopenharmony_ci } else if #[cfg(feature = "std")] { 3242add0d91Sopenharmony_ci // cargo build, don't pull in anything extra as the libstd dep 3252add0d91Sopenharmony_ci // already pulls in all libs. 3262add0d91Sopenharmony_ci } else if #[cfg(all(target_os = "linux", 3272add0d91Sopenharmony_ci any(target_env = "gnu", target_env = "uclibc"), 3282add0d91Sopenharmony_ci feature = "rustc-dep-of-std"))] { 3292add0d91Sopenharmony_ci #[link(name = "util", kind = "static", modifiers = "-bundle", 3302add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3312add0d91Sopenharmony_ci #[link(name = "rt", kind = "static", modifiers = "-bundle", 3322add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3332add0d91Sopenharmony_ci #[link(name = "pthread", kind = "static", modifiers = "-bundle", 3342add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3352add0d91Sopenharmony_ci #[link(name = "m", kind = "static", modifiers = "-bundle", 3362add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3372add0d91Sopenharmony_ci #[link(name = "dl", kind = "static", modifiers = "-bundle", 3382add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3392add0d91Sopenharmony_ci #[link(name = "c", kind = "static", modifiers = "-bundle", 3402add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3412add0d91Sopenharmony_ci #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", 3422add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3432add0d91Sopenharmony_ci #[link(name = "gcc", kind = "static", modifiers = "-bundle", 3442add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3452add0d91Sopenharmony_ci #[link(name = "c", kind = "static", modifiers = "-bundle", 3462add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3472add0d91Sopenharmony_ci #[link(name = "util", cfg(not(target_feature = "crt-static")))] 3482add0d91Sopenharmony_ci #[link(name = "rt", cfg(not(target_feature = "crt-static")))] 3492add0d91Sopenharmony_ci #[link(name = "pthread", cfg(not(target_feature = "crt-static")))] 3502add0d91Sopenharmony_ci #[link(name = "m", cfg(not(target_feature = "crt-static")))] 3512add0d91Sopenharmony_ci #[link(name = "dl", cfg(not(target_feature = "crt-static")))] 3522add0d91Sopenharmony_ci #[link(name = "c", cfg(not(target_feature = "crt-static")))] 3532add0d91Sopenharmony_ci extern {} 3542add0d91Sopenharmony_ci } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { 3552add0d91Sopenharmony_ci #[cfg_attr(feature = "rustc-dep-of-std", 3562add0d91Sopenharmony_ci link(name = "c", kind = "static", modifiers = "-bundle", 3572add0d91Sopenharmony_ci cfg(target_feature = "crt-static")))] 3582add0d91Sopenharmony_ci #[cfg_attr(feature = "rustc-dep-of-std", 3592add0d91Sopenharmony_ci link(name = "c", cfg(not(target_feature = "crt-static"))))] 3602add0d91Sopenharmony_ci extern {} 3612add0d91Sopenharmony_ci } else if #[cfg(target_os = "emscripten")] { 3622add0d91Sopenharmony_ci #[link(name = "c")] 3632add0d91Sopenharmony_ci extern {} 3642add0d91Sopenharmony_ci } else if #[cfg(all(target_os = "android", feature = "rustc-dep-of-std"))] { 3652add0d91Sopenharmony_ci #[link(name = "c", kind = "static", modifiers = "-bundle", 3662add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3672add0d91Sopenharmony_ci #[link(name = "m", kind = "static", modifiers = "-bundle", 3682add0d91Sopenharmony_ci cfg(target_feature = "crt-static"))] 3692add0d91Sopenharmony_ci #[link(name = "m", cfg(not(target_feature = "crt-static")))] 3702add0d91Sopenharmony_ci #[link(name = "c", cfg(not(target_feature = "crt-static")))] 3712add0d91Sopenharmony_ci extern {} 3722add0d91Sopenharmony_ci } else if #[cfg(any(target_os = "macos", 3732add0d91Sopenharmony_ci target_os = "ios", 3742add0d91Sopenharmony_ci target_os = "tvos", 3752add0d91Sopenharmony_ci target_os = "watchos", 3762add0d91Sopenharmony_ci target_os = "android", 3772add0d91Sopenharmony_ci target_os = "openbsd", 3782add0d91Sopenharmony_ci target_os = "nto", 3792add0d91Sopenharmony_ci ))] { 3802add0d91Sopenharmony_ci #[link(name = "c")] 3812add0d91Sopenharmony_ci #[link(name = "m")] 3822add0d91Sopenharmony_ci extern {} 3832add0d91Sopenharmony_ci } else if #[cfg(target_os = "haiku")] { 3842add0d91Sopenharmony_ci #[link(name = "root")] 3852add0d91Sopenharmony_ci #[link(name = "network")] 3862add0d91Sopenharmony_ci extern {} 3872add0d91Sopenharmony_ci } else if #[cfg(target_env = "newlib")] { 3882add0d91Sopenharmony_ci #[link(name = "c")] 3892add0d91Sopenharmony_ci #[link(name = "m")] 3902add0d91Sopenharmony_ci extern {} 3912add0d91Sopenharmony_ci } else if #[cfg(target_os = "hermit")] { 3922add0d91Sopenharmony_ci // no_default_libraries is set to false for HermitCore, so only a link 3932add0d91Sopenharmony_ci // to "pthread" needs to be added. 3942add0d91Sopenharmony_ci #[link(name = "pthread")] 3952add0d91Sopenharmony_ci extern {} 3962add0d91Sopenharmony_ci } else if #[cfg(target_env = "illumos")] { 3972add0d91Sopenharmony_ci #[link(name = "c")] 3982add0d91Sopenharmony_ci #[link(name = "m")] 3992add0d91Sopenharmony_ci extern {} 4002add0d91Sopenharmony_ci } else if #[cfg(target_os = "redox")] { 4012add0d91Sopenharmony_ci #[cfg_attr(feature = "rustc-dep-of-std", 4022add0d91Sopenharmony_ci link(name = "c", kind = "static", modifiers = "-bundle", 4032add0d91Sopenharmony_ci cfg(target_feature = "crt-static")))] 4042add0d91Sopenharmony_ci #[cfg_attr(feature = "rustc-dep-of-std", 4052add0d91Sopenharmony_ci link(name = "c", cfg(not(target_feature = "crt-static"))))] 4062add0d91Sopenharmony_ci extern {} 4072add0d91Sopenharmony_ci } else { 4082add0d91Sopenharmony_ci #[link(name = "c")] 4092add0d91Sopenharmony_ci #[link(name = "m")] 4102add0d91Sopenharmony_ci #[link(name = "rt")] 4112add0d91Sopenharmony_ci #[link(name = "pthread")] 4122add0d91Sopenharmony_ci extern {} 4132add0d91Sopenharmony_ci } 4142add0d91Sopenharmony_ci} 4152add0d91Sopenharmony_ci 4162add0d91Sopenharmony_ci#[cfg_attr(feature = "extra_traits", derive(Debug))] 4172add0d91Sopenharmony_cipub enum FILE {} 4182add0d91Sopenharmony_ciimpl ::Copy for FILE {} 4192add0d91Sopenharmony_ciimpl ::Clone for FILE { 4202add0d91Sopenharmony_ci fn clone(&self) -> FILE { 4212add0d91Sopenharmony_ci *self 4222add0d91Sopenharmony_ci } 4232add0d91Sopenharmony_ci} 4242add0d91Sopenharmony_ci#[cfg_attr(feature = "extra_traits", derive(Debug))] 4252add0d91Sopenharmony_cipub enum fpos_t {} // FIXME: fill this out with a struct 4262add0d91Sopenharmony_ciimpl ::Copy for fpos_t {} 4272add0d91Sopenharmony_ciimpl ::Clone for fpos_t { 4282add0d91Sopenharmony_ci fn clone(&self) -> fpos_t { 4292add0d91Sopenharmony_ci *self 4302add0d91Sopenharmony_ci } 4312add0d91Sopenharmony_ci} 4322add0d91Sopenharmony_ci 4332add0d91Sopenharmony_ciextern "C" { 4342add0d91Sopenharmony_ci pub fn isalnum(c: c_int) -> c_int; 4352add0d91Sopenharmony_ci pub fn isalpha(c: c_int) -> c_int; 4362add0d91Sopenharmony_ci pub fn iscntrl(c: c_int) -> c_int; 4372add0d91Sopenharmony_ci pub fn isdigit(c: c_int) -> c_int; 4382add0d91Sopenharmony_ci pub fn isgraph(c: c_int) -> c_int; 4392add0d91Sopenharmony_ci pub fn islower(c: c_int) -> c_int; 4402add0d91Sopenharmony_ci pub fn isprint(c: c_int) -> c_int; 4412add0d91Sopenharmony_ci pub fn ispunct(c: c_int) -> c_int; 4422add0d91Sopenharmony_ci pub fn isspace(c: c_int) -> c_int; 4432add0d91Sopenharmony_ci pub fn isupper(c: c_int) -> c_int; 4442add0d91Sopenharmony_ci pub fn isxdigit(c: c_int) -> c_int; 4452add0d91Sopenharmony_ci pub fn isblank(c: c_int) -> c_int; 4462add0d91Sopenharmony_ci pub fn tolower(c: c_int) -> c_int; 4472add0d91Sopenharmony_ci pub fn toupper(c: c_int) -> c_int; 4482add0d91Sopenharmony_ci pub fn qsort( 4492add0d91Sopenharmony_ci base: *mut c_void, 4502add0d91Sopenharmony_ci num: size_t, 4512add0d91Sopenharmony_ci size: size_t, 4522add0d91Sopenharmony_ci compar: ::Option<unsafe extern "C" fn(*const c_void, *const c_void) -> c_int>, 4532add0d91Sopenharmony_ci ); 4542add0d91Sopenharmony_ci pub fn bsearch( 4552add0d91Sopenharmony_ci key: *const c_void, 4562add0d91Sopenharmony_ci base: *const c_void, 4572add0d91Sopenharmony_ci num: size_t, 4582add0d91Sopenharmony_ci size: size_t, 4592add0d91Sopenharmony_ci compar: ::Option<unsafe extern "C" fn(*const c_void, *const c_void) -> c_int>, 4602add0d91Sopenharmony_ci ) -> *mut c_void; 4612add0d91Sopenharmony_ci #[cfg_attr( 4622add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 4632add0d91Sopenharmony_ci link_name = "fopen$UNIX2003" 4642add0d91Sopenharmony_ci )] 4652add0d91Sopenharmony_ci pub fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE; 4662add0d91Sopenharmony_ci #[cfg_attr( 4672add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 4682add0d91Sopenharmony_ci link_name = "freopen$UNIX2003" 4692add0d91Sopenharmony_ci )] 4702add0d91Sopenharmony_ci pub fn freopen(filename: *const c_char, mode: *const c_char, file: *mut FILE) -> *mut FILE; 4712add0d91Sopenharmony_ci 4722add0d91Sopenharmony_ci pub fn fflush(file: *mut FILE) -> c_int; 4732add0d91Sopenharmony_ci pub fn fclose(file: *mut FILE) -> c_int; 4742add0d91Sopenharmony_ci pub fn remove(filename: *const c_char) -> c_int; 4752add0d91Sopenharmony_ci pub fn rename(oldname: *const c_char, newname: *const c_char) -> c_int; 4762add0d91Sopenharmony_ci pub fn tmpfile() -> *mut FILE; 4772add0d91Sopenharmony_ci pub fn setvbuf(stream: *mut FILE, buffer: *mut c_char, mode: c_int, size: size_t) -> c_int; 4782add0d91Sopenharmony_ci pub fn setbuf(stream: *mut FILE, buf: *mut c_char); 4792add0d91Sopenharmony_ci pub fn getchar() -> c_int; 4802add0d91Sopenharmony_ci pub fn putchar(c: c_int) -> c_int; 4812add0d91Sopenharmony_ci pub fn fgetc(stream: *mut FILE) -> c_int; 4822add0d91Sopenharmony_ci pub fn fgets(buf: *mut c_char, n: c_int, stream: *mut FILE) -> *mut c_char; 4832add0d91Sopenharmony_ci pub fn fputc(c: c_int, stream: *mut FILE) -> c_int; 4842add0d91Sopenharmony_ci #[cfg_attr( 4852add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 4862add0d91Sopenharmony_ci link_name = "fputs$UNIX2003" 4872add0d91Sopenharmony_ci )] 4882add0d91Sopenharmony_ci pub fn fputs(s: *const c_char, stream: *mut FILE) -> c_int; 4892add0d91Sopenharmony_ci pub fn puts(s: *const c_char) -> c_int; 4902add0d91Sopenharmony_ci pub fn ungetc(c: c_int, stream: *mut FILE) -> c_int; 4912add0d91Sopenharmony_ci pub fn fread(ptr: *mut c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; 4922add0d91Sopenharmony_ci #[cfg_attr( 4932add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 4942add0d91Sopenharmony_ci link_name = "fwrite$UNIX2003" 4952add0d91Sopenharmony_ci )] 4962add0d91Sopenharmony_ci pub fn fwrite(ptr: *const c_void, size: size_t, nobj: size_t, stream: *mut FILE) -> size_t; 4972add0d91Sopenharmony_ci pub fn fseek(stream: *mut FILE, offset: c_long, whence: c_int) -> c_int; 4982add0d91Sopenharmony_ci pub fn ftell(stream: *mut FILE) -> c_long; 4992add0d91Sopenharmony_ci pub fn rewind(stream: *mut FILE); 5002add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__fgetpos50")] 5012add0d91Sopenharmony_ci pub fn fgetpos(stream: *mut FILE, ptr: *mut fpos_t) -> c_int; 5022add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__fsetpos50")] 5032add0d91Sopenharmony_ci pub fn fsetpos(stream: *mut FILE, ptr: *const fpos_t) -> c_int; 5042add0d91Sopenharmony_ci pub fn feof(stream: *mut FILE) -> c_int; 5052add0d91Sopenharmony_ci pub fn ferror(stream: *mut FILE) -> c_int; 5062add0d91Sopenharmony_ci pub fn clearerr(stream: *mut FILE); 5072add0d91Sopenharmony_ci pub fn perror(s: *const c_char); 5082add0d91Sopenharmony_ci pub fn atof(s: *const c_char) -> c_double; 5092add0d91Sopenharmony_ci pub fn atoi(s: *const c_char) -> c_int; 5102add0d91Sopenharmony_ci pub fn atol(s: *const c_char) -> c_long; 5112add0d91Sopenharmony_ci pub fn atoll(s: *const c_char) -> c_longlong; 5122add0d91Sopenharmony_ci #[cfg_attr( 5132add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 5142add0d91Sopenharmony_ci link_name = "strtod$UNIX2003" 5152add0d91Sopenharmony_ci )] 5162add0d91Sopenharmony_ci pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double; 5172add0d91Sopenharmony_ci pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float; 5182add0d91Sopenharmony_ci pub fn strtol(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_long; 5192add0d91Sopenharmony_ci pub fn strtoll(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_longlong; 5202add0d91Sopenharmony_ci pub fn strtoul(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulong; 5212add0d91Sopenharmony_ci pub fn strtoull(s: *const c_char, endp: *mut *mut c_char, base: c_int) -> c_ulonglong; 5222add0d91Sopenharmony_ci pub fn calloc(nobj: size_t, size: size_t) -> *mut c_void; 5232add0d91Sopenharmony_ci pub fn malloc(size: size_t) -> *mut c_void; 5242add0d91Sopenharmony_ci pub fn realloc(p: *mut c_void, size: size_t) -> *mut c_void; 5252add0d91Sopenharmony_ci pub fn free(p: *mut c_void); 5262add0d91Sopenharmony_ci pub fn abort() -> !; 5272add0d91Sopenharmony_ci pub fn exit(status: c_int) -> !; 5282add0d91Sopenharmony_ci pub fn _exit(status: c_int) -> !; 5292add0d91Sopenharmony_ci #[cfg_attr( 5302add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 5312add0d91Sopenharmony_ci link_name = "system$UNIX2003" 5322add0d91Sopenharmony_ci )] 5332add0d91Sopenharmony_ci pub fn system(s: *const c_char) -> c_int; 5342add0d91Sopenharmony_ci pub fn getenv(s: *const c_char) -> *mut c_char; 5352add0d91Sopenharmony_ci 5362add0d91Sopenharmony_ci pub fn strcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; 5372add0d91Sopenharmony_ci pub fn strncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; 5382add0d91Sopenharmony_ci pub fn stpcpy(dst: *mut c_char, src: *const c_char) -> *mut c_char; 5392add0d91Sopenharmony_ci pub fn strcat(s: *mut c_char, ct: *const c_char) -> *mut c_char; 5402add0d91Sopenharmony_ci pub fn strncat(s: *mut c_char, ct: *const c_char, n: size_t) -> *mut c_char; 5412add0d91Sopenharmony_ci pub fn strcmp(cs: *const c_char, ct: *const c_char) -> c_int; 5422add0d91Sopenharmony_ci pub fn strncmp(cs: *const c_char, ct: *const c_char, n: size_t) -> c_int; 5432add0d91Sopenharmony_ci pub fn strcoll(cs: *const c_char, ct: *const c_char) -> c_int; 5442add0d91Sopenharmony_ci pub fn strchr(cs: *const c_char, c: c_int) -> *mut c_char; 5452add0d91Sopenharmony_ci pub fn strrchr(cs: *const c_char, c: c_int) -> *mut c_char; 5462add0d91Sopenharmony_ci pub fn strspn(cs: *const c_char, ct: *const c_char) -> size_t; 5472add0d91Sopenharmony_ci pub fn strcspn(cs: *const c_char, ct: *const c_char) -> size_t; 5482add0d91Sopenharmony_ci pub fn strdup(cs: *const c_char) -> *mut c_char; 5492add0d91Sopenharmony_ci pub fn strndup(cs: *const c_char, n: size_t) -> *mut c_char; 5502add0d91Sopenharmony_ci pub fn strpbrk(cs: *const c_char, ct: *const c_char) -> *mut c_char; 5512add0d91Sopenharmony_ci pub fn strstr(cs: *const c_char, ct: *const c_char) -> *mut c_char; 5522add0d91Sopenharmony_ci pub fn strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; 5532add0d91Sopenharmony_ci pub fn strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; 5542add0d91Sopenharmony_ci pub fn strlen(cs: *const c_char) -> size_t; 5552add0d91Sopenharmony_ci pub fn strnlen(cs: *const c_char, maxlen: size_t) -> size_t; 5562add0d91Sopenharmony_ci #[cfg_attr( 5572add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 5582add0d91Sopenharmony_ci link_name = "strerror$UNIX2003" 5592add0d91Sopenharmony_ci )] 5602add0d91Sopenharmony_ci pub fn strerror(n: c_int) -> *mut c_char; 5612add0d91Sopenharmony_ci pub fn strtok(s: *mut c_char, t: *const c_char) -> *mut c_char; 5622add0d91Sopenharmony_ci pub fn strtok_r(s: *mut c_char, t: *const c_char, p: *mut *mut c_char) -> *mut c_char; 5632add0d91Sopenharmony_ci pub fn strxfrm(s: *mut c_char, ct: *const c_char, n: size_t) -> size_t; 5642add0d91Sopenharmony_ci pub fn strsignal(sig: c_int) -> *mut c_char; 5652add0d91Sopenharmony_ci pub fn wcslen(buf: *const wchar_t) -> size_t; 5662add0d91Sopenharmony_ci pub fn wcstombs(dest: *mut c_char, src: *const wchar_t, n: size_t) -> ::size_t; 5672add0d91Sopenharmony_ci 5682add0d91Sopenharmony_ci pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void; 5692add0d91Sopenharmony_ci pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t; 5702add0d91Sopenharmony_ci pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int; 5712add0d91Sopenharmony_ci pub fn memcpy(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; 5722add0d91Sopenharmony_ci pub fn memmove(dest: *mut c_void, src: *const c_void, n: size_t) -> *mut c_void; 5732add0d91Sopenharmony_ci pub fn memset(dest: *mut c_void, c: c_int, n: size_t) -> *mut c_void; 5742add0d91Sopenharmony_ci} 5752add0d91Sopenharmony_ci 5762add0d91Sopenharmony_ciextern "C" { 5772add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam50")] 5782add0d91Sopenharmony_ci pub fn getpwnam(name: *const ::c_char) -> *mut passwd; 5792add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid50")] 5802add0d91Sopenharmony_ci pub fn getpwuid(uid: ::uid_t) -> *mut passwd; 5812add0d91Sopenharmony_ci 5822add0d91Sopenharmony_ci pub fn fprintf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; 5832add0d91Sopenharmony_ci pub fn printf(format: *const ::c_char, ...) -> ::c_int; 5842add0d91Sopenharmony_ci pub fn snprintf(s: *mut ::c_char, n: ::size_t, format: *const ::c_char, ...) -> ::c_int; 5852add0d91Sopenharmony_ci pub fn sprintf(s: *mut ::c_char, format: *const ::c_char, ...) -> ::c_int; 5862add0d91Sopenharmony_ci #[cfg_attr( 5872add0d91Sopenharmony_ci all(target_os = "linux", not(target_env = "uclibc")), 5882add0d91Sopenharmony_ci link_name = "__isoc99_fscanf" 5892add0d91Sopenharmony_ci )] 5902add0d91Sopenharmony_ci pub fn fscanf(stream: *mut ::FILE, format: *const ::c_char, ...) -> ::c_int; 5912add0d91Sopenharmony_ci #[cfg_attr( 5922add0d91Sopenharmony_ci all(target_os = "linux", not(target_env = "uclibc")), 5932add0d91Sopenharmony_ci link_name = "__isoc99_scanf" 5942add0d91Sopenharmony_ci )] 5952add0d91Sopenharmony_ci pub fn scanf(format: *const ::c_char, ...) -> ::c_int; 5962add0d91Sopenharmony_ci #[cfg_attr( 5972add0d91Sopenharmony_ci all(target_os = "linux", not(target_env = "uclibc")), 5982add0d91Sopenharmony_ci link_name = "__isoc99_sscanf" 5992add0d91Sopenharmony_ci )] 6002add0d91Sopenharmony_ci pub fn sscanf(s: *const ::c_char, format: *const ::c_char, ...) -> ::c_int; 6012add0d91Sopenharmony_ci pub fn getchar_unlocked() -> ::c_int; 6022add0d91Sopenharmony_ci pub fn putchar_unlocked(c: ::c_int) -> ::c_int; 6032add0d91Sopenharmony_ci 6042add0d91Sopenharmony_ci #[cfg(not(all( 6052add0d91Sopenharmony_ci libc_cfg_target_vendor, 6062add0d91Sopenharmony_ci target_arch = "powerpc", 6072add0d91Sopenharmony_ci target_vendor = "nintendo" 6082add0d91Sopenharmony_ci )))] 6092add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__socket30")] 6102add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_socket")] 6112add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_socket")] 6122add0d91Sopenharmony_ci pub fn socket(domain: ::c_int, ty: ::c_int, protocol: ::c_int) -> ::c_int; 6132add0d91Sopenharmony_ci #[cfg(not(all( 6142add0d91Sopenharmony_ci libc_cfg_target_vendor, 6152add0d91Sopenharmony_ci target_arch = "powerpc", 6162add0d91Sopenharmony_ci target_vendor = "nintendo" 6172add0d91Sopenharmony_ci )))] 6182add0d91Sopenharmony_ci #[cfg_attr( 6192add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6202add0d91Sopenharmony_ci link_name = "connect$UNIX2003" 6212add0d91Sopenharmony_ci )] 6222add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_connect")] 6232add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_connect")] 6242add0d91Sopenharmony_ci pub fn connect(socket: ::c_int, address: *const sockaddr, len: socklen_t) -> ::c_int; 6252add0d91Sopenharmony_ci #[cfg_attr( 6262add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6272add0d91Sopenharmony_ci link_name = "listen$UNIX2003" 6282add0d91Sopenharmony_ci )] 6292add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_listen")] 6302add0d91Sopenharmony_ci pub fn listen(socket: ::c_int, backlog: ::c_int) -> ::c_int; 6312add0d91Sopenharmony_ci #[cfg(not(all( 6322add0d91Sopenharmony_ci libc_cfg_target_vendor, 6332add0d91Sopenharmony_ci target_arch = "powerpc", 6342add0d91Sopenharmony_ci target_vendor = "nintendo" 6352add0d91Sopenharmony_ci )))] 6362add0d91Sopenharmony_ci #[cfg_attr( 6372add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6382add0d91Sopenharmony_ci link_name = "accept$UNIX2003" 6392add0d91Sopenharmony_ci )] 6402add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_accept")] 6412add0d91Sopenharmony_ci pub fn accept(socket: ::c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> ::c_int; 6422add0d91Sopenharmony_ci #[cfg(not(all( 6432add0d91Sopenharmony_ci libc_cfg_target_vendor, 6442add0d91Sopenharmony_ci target_arch = "powerpc", 6452add0d91Sopenharmony_ci target_vendor = "nintendo" 6462add0d91Sopenharmony_ci )))] 6472add0d91Sopenharmony_ci #[cfg_attr( 6482add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6492add0d91Sopenharmony_ci link_name = "getpeername$UNIX2003" 6502add0d91Sopenharmony_ci )] 6512add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_getpeername")] 6522add0d91Sopenharmony_ci pub fn getpeername( 6532add0d91Sopenharmony_ci socket: ::c_int, 6542add0d91Sopenharmony_ci address: *mut sockaddr, 6552add0d91Sopenharmony_ci address_len: *mut socklen_t, 6562add0d91Sopenharmony_ci ) -> ::c_int; 6572add0d91Sopenharmony_ci #[cfg(not(all( 6582add0d91Sopenharmony_ci libc_cfg_target_vendor, 6592add0d91Sopenharmony_ci target_arch = "powerpc", 6602add0d91Sopenharmony_ci target_vendor = "nintendo" 6612add0d91Sopenharmony_ci )))] 6622add0d91Sopenharmony_ci #[cfg_attr( 6632add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6642add0d91Sopenharmony_ci link_name = "getsockname$UNIX2003" 6652add0d91Sopenharmony_ci )] 6662add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockname")] 6672add0d91Sopenharmony_ci pub fn getsockname( 6682add0d91Sopenharmony_ci socket: ::c_int, 6692add0d91Sopenharmony_ci address: *mut sockaddr, 6702add0d91Sopenharmony_ci address_len: *mut socklen_t, 6712add0d91Sopenharmony_ci ) -> ::c_int; 6722add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_setsockopt")] 6732add0d91Sopenharmony_ci pub fn setsockopt( 6742add0d91Sopenharmony_ci socket: ::c_int, 6752add0d91Sopenharmony_ci level: ::c_int, 6762add0d91Sopenharmony_ci name: ::c_int, 6772add0d91Sopenharmony_ci value: *const ::c_void, 6782add0d91Sopenharmony_ci option_len: socklen_t, 6792add0d91Sopenharmony_ci ) -> ::c_int; 6802add0d91Sopenharmony_ci #[cfg_attr( 6812add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6822add0d91Sopenharmony_ci link_name = "socketpair$UNIX2003" 6832add0d91Sopenharmony_ci )] 6842add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_socketpair")] 6852add0d91Sopenharmony_ci pub fn socketpair( 6862add0d91Sopenharmony_ci domain: ::c_int, 6872add0d91Sopenharmony_ci type_: ::c_int, 6882add0d91Sopenharmony_ci protocol: ::c_int, 6892add0d91Sopenharmony_ci socket_vector: *mut ::c_int, 6902add0d91Sopenharmony_ci ) -> ::c_int; 6912add0d91Sopenharmony_ci #[cfg(not(all( 6922add0d91Sopenharmony_ci libc_cfg_target_vendor, 6932add0d91Sopenharmony_ci target_arch = "powerpc", 6942add0d91Sopenharmony_ci target_vendor = "nintendo" 6952add0d91Sopenharmony_ci )))] 6962add0d91Sopenharmony_ci #[cfg_attr( 6972add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 6982add0d91Sopenharmony_ci link_name = "sendto$UNIX2003" 6992add0d91Sopenharmony_ci )] 7002add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_sendto")] 7012add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_sendto")] 7022add0d91Sopenharmony_ci pub fn sendto( 7032add0d91Sopenharmony_ci socket: ::c_int, 7042add0d91Sopenharmony_ci buf: *const ::c_void, 7052add0d91Sopenharmony_ci len: ::size_t, 7062add0d91Sopenharmony_ci flags: ::c_int, 7072add0d91Sopenharmony_ci addr: *const sockaddr, 7082add0d91Sopenharmony_ci addrlen: socklen_t, 7092add0d91Sopenharmony_ci ) -> ::ssize_t; 7102add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_shutdown")] 7112add0d91Sopenharmony_ci pub fn shutdown(socket: ::c_int, how: ::c_int) -> ::c_int; 7122add0d91Sopenharmony_ci 7132add0d91Sopenharmony_ci #[cfg_attr( 7142add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7152add0d91Sopenharmony_ci link_name = "chmod$UNIX2003" 7162add0d91Sopenharmony_ci )] 7172add0d91Sopenharmony_ci pub fn chmod(path: *const c_char, mode: mode_t) -> ::c_int; 7182add0d91Sopenharmony_ci #[cfg_attr( 7192add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7202add0d91Sopenharmony_ci link_name = "fchmod$UNIX2003" 7212add0d91Sopenharmony_ci )] 7222add0d91Sopenharmony_ci pub fn fchmod(fd: ::c_int, mode: mode_t) -> ::c_int; 7232add0d91Sopenharmony_ci 7242add0d91Sopenharmony_ci #[cfg_attr( 7252add0d91Sopenharmony_ci all(target_os = "macos", not(target_arch = "aarch64")), 7262add0d91Sopenharmony_ci link_name = "fstat$INODE64" 7272add0d91Sopenharmony_ci )] 7282add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__fstat50")] 7292add0d91Sopenharmony_ci #[cfg_attr( 7302add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 7312add0d91Sopenharmony_ci link_name = "fstat@FBSD_1.0" 7322add0d91Sopenharmony_ci )] 7332add0d91Sopenharmony_ci pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int; 7342add0d91Sopenharmony_ci 7352add0d91Sopenharmony_ci pub fn mkdir(path: *const c_char, mode: mode_t) -> ::c_int; 7362add0d91Sopenharmony_ci 7372add0d91Sopenharmony_ci #[cfg_attr( 7382add0d91Sopenharmony_ci all(target_os = "macos", not(target_arch = "aarch64")), 7392add0d91Sopenharmony_ci link_name = "stat$INODE64" 7402add0d91Sopenharmony_ci )] 7412add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__stat50")] 7422add0d91Sopenharmony_ci #[cfg_attr( 7432add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 7442add0d91Sopenharmony_ci link_name = "stat@FBSD_1.0" 7452add0d91Sopenharmony_ci )] 7462add0d91Sopenharmony_ci pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int; 7472add0d91Sopenharmony_ci 7482add0d91Sopenharmony_ci pub fn pclose(stream: *mut ::FILE) -> ::c_int; 7492add0d91Sopenharmony_ci #[cfg_attr( 7502add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7512add0d91Sopenharmony_ci link_name = "fdopen$UNIX2003" 7522add0d91Sopenharmony_ci )] 7532add0d91Sopenharmony_ci pub fn fdopen(fd: ::c_int, mode: *const c_char) -> *mut ::FILE; 7542add0d91Sopenharmony_ci pub fn fileno(stream: *mut ::FILE) -> ::c_int; 7552add0d91Sopenharmony_ci 7562add0d91Sopenharmony_ci #[cfg_attr( 7572add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7582add0d91Sopenharmony_ci link_name = "open$UNIX2003" 7592add0d91Sopenharmony_ci )] 7602add0d91Sopenharmony_ci pub fn open(path: *const c_char, oflag: ::c_int, ...) -> ::c_int; 7612add0d91Sopenharmony_ci #[cfg_attr( 7622add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7632add0d91Sopenharmony_ci link_name = "creat$UNIX2003" 7642add0d91Sopenharmony_ci )] 7652add0d91Sopenharmony_ci pub fn creat(path: *const c_char, mode: mode_t) -> ::c_int; 7662add0d91Sopenharmony_ci #[cfg_attr( 7672add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7682add0d91Sopenharmony_ci link_name = "fcntl$UNIX2003" 7692add0d91Sopenharmony_ci )] 7702add0d91Sopenharmony_ci pub fn fcntl(fd: ::c_int, cmd: ::c_int, ...) -> ::c_int; 7712add0d91Sopenharmony_ci 7722add0d91Sopenharmony_ci #[cfg_attr( 7732add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86_64"), 7742add0d91Sopenharmony_ci link_name = "opendir$INODE64" 7752add0d91Sopenharmony_ci )] 7762add0d91Sopenharmony_ci #[cfg_attr( 7772add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7782add0d91Sopenharmony_ci link_name = "opendir$INODE64$UNIX2003" 7792add0d91Sopenharmony_ci )] 7802add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__opendir30")] 7812add0d91Sopenharmony_ci pub fn opendir(dirname: *const c_char) -> *mut ::DIR; 7822add0d91Sopenharmony_ci 7832add0d91Sopenharmony_ci #[cfg_attr( 7842add0d91Sopenharmony_ci all(target_os = "macos", not(target_arch = "aarch64")), 7852add0d91Sopenharmony_ci link_name = "readdir$INODE64" 7862add0d91Sopenharmony_ci )] 7872add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__readdir30")] 7882add0d91Sopenharmony_ci #[cfg_attr( 7892add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 7902add0d91Sopenharmony_ci link_name = "readdir@FBSD_1.0" 7912add0d91Sopenharmony_ci )] 7922add0d91Sopenharmony_ci pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent; 7932add0d91Sopenharmony_ci #[cfg_attr( 7942add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 7952add0d91Sopenharmony_ci link_name = "closedir$UNIX2003" 7962add0d91Sopenharmony_ci )] 7972add0d91Sopenharmony_ci pub fn closedir(dirp: *mut ::DIR) -> ::c_int; 7982add0d91Sopenharmony_ci #[cfg_attr( 7992add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86_64"), 8002add0d91Sopenharmony_ci link_name = "rewinddir$INODE64" 8012add0d91Sopenharmony_ci )] 8022add0d91Sopenharmony_ci #[cfg_attr( 8032add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 8042add0d91Sopenharmony_ci link_name = "rewinddir$INODE64$UNIX2003" 8052add0d91Sopenharmony_ci )] 8062add0d91Sopenharmony_ci pub fn rewinddir(dirp: *mut ::DIR); 8072add0d91Sopenharmony_ci 8082add0d91Sopenharmony_ci pub fn fchmodat( 8092add0d91Sopenharmony_ci dirfd: ::c_int, 8102add0d91Sopenharmony_ci pathname: *const ::c_char, 8112add0d91Sopenharmony_ci mode: ::mode_t, 8122add0d91Sopenharmony_ci flags: ::c_int, 8132add0d91Sopenharmony_ci ) -> ::c_int; 8142add0d91Sopenharmony_ci pub fn fchown(fd: ::c_int, owner: ::uid_t, group: ::gid_t) -> ::c_int; 8152add0d91Sopenharmony_ci pub fn fchownat( 8162add0d91Sopenharmony_ci dirfd: ::c_int, 8172add0d91Sopenharmony_ci pathname: *const ::c_char, 8182add0d91Sopenharmony_ci owner: ::uid_t, 8192add0d91Sopenharmony_ci group: ::gid_t, 8202add0d91Sopenharmony_ci flags: ::c_int, 8212add0d91Sopenharmony_ci ) -> ::c_int; 8222add0d91Sopenharmony_ci #[cfg_attr( 8232add0d91Sopenharmony_ci all(target_os = "macos", not(target_arch = "aarch64")), 8242add0d91Sopenharmony_ci link_name = "fstatat$INODE64" 8252add0d91Sopenharmony_ci )] 8262add0d91Sopenharmony_ci #[cfg_attr( 8272add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 8282add0d91Sopenharmony_ci link_name = "fstatat@FBSD_1.1" 8292add0d91Sopenharmony_ci )] 8302add0d91Sopenharmony_ci pub fn fstatat( 8312add0d91Sopenharmony_ci dirfd: ::c_int, 8322add0d91Sopenharmony_ci pathname: *const ::c_char, 8332add0d91Sopenharmony_ci buf: *mut stat, 8342add0d91Sopenharmony_ci flags: ::c_int, 8352add0d91Sopenharmony_ci ) -> ::c_int; 8362add0d91Sopenharmony_ci pub fn linkat( 8372add0d91Sopenharmony_ci olddirfd: ::c_int, 8382add0d91Sopenharmony_ci oldpath: *const ::c_char, 8392add0d91Sopenharmony_ci newdirfd: ::c_int, 8402add0d91Sopenharmony_ci newpath: *const ::c_char, 8412add0d91Sopenharmony_ci flags: ::c_int, 8422add0d91Sopenharmony_ci ) -> ::c_int; 8432add0d91Sopenharmony_ci pub fn renameat( 8442add0d91Sopenharmony_ci olddirfd: ::c_int, 8452add0d91Sopenharmony_ci oldpath: *const ::c_char, 8462add0d91Sopenharmony_ci newdirfd: ::c_int, 8472add0d91Sopenharmony_ci newpath: *const ::c_char, 8482add0d91Sopenharmony_ci ) -> ::c_int; 8492add0d91Sopenharmony_ci pub fn symlinkat( 8502add0d91Sopenharmony_ci target: *const ::c_char, 8512add0d91Sopenharmony_ci newdirfd: ::c_int, 8522add0d91Sopenharmony_ci linkpath: *const ::c_char, 8532add0d91Sopenharmony_ci ) -> ::c_int; 8542add0d91Sopenharmony_ci pub fn unlinkat(dirfd: ::c_int, pathname: *const ::c_char, flags: ::c_int) -> ::c_int; 8552add0d91Sopenharmony_ci 8562add0d91Sopenharmony_ci pub fn access(path: *const c_char, amode: ::c_int) -> ::c_int; 8572add0d91Sopenharmony_ci pub fn alarm(seconds: ::c_uint) -> ::c_uint; 8582add0d91Sopenharmony_ci pub fn chdir(dir: *const c_char) -> ::c_int; 8592add0d91Sopenharmony_ci pub fn fchdir(dirfd: ::c_int) -> ::c_int; 8602add0d91Sopenharmony_ci pub fn chown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; 8612add0d91Sopenharmony_ci #[cfg_attr( 8622add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 8632add0d91Sopenharmony_ci link_name = "lchown$UNIX2003" 8642add0d91Sopenharmony_ci )] 8652add0d91Sopenharmony_ci pub fn lchown(path: *const c_char, uid: uid_t, gid: gid_t) -> ::c_int; 8662add0d91Sopenharmony_ci #[cfg_attr( 8672add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 8682add0d91Sopenharmony_ci link_name = "close$NOCANCEL$UNIX2003" 8692add0d91Sopenharmony_ci )] 8702add0d91Sopenharmony_ci #[cfg_attr( 8712add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86_64"), 8722add0d91Sopenharmony_ci link_name = "close$NOCANCEL" 8732add0d91Sopenharmony_ci )] 8742add0d91Sopenharmony_ci pub fn close(fd: ::c_int) -> ::c_int; 8752add0d91Sopenharmony_ci pub fn dup(fd: ::c_int) -> ::c_int; 8762add0d91Sopenharmony_ci pub fn dup2(src: ::c_int, dst: ::c_int) -> ::c_int; 8772add0d91Sopenharmony_ci pub fn execl(path: *const c_char, arg0: *const c_char, ...) -> ::c_int; 8782add0d91Sopenharmony_ci pub fn execle(path: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; 8792add0d91Sopenharmony_ci pub fn execlp(file: *const ::c_char, arg0: *const ::c_char, ...) -> ::c_int; 8802add0d91Sopenharmony_ci pub fn execv(prog: *const c_char, argv: *const *const c_char) -> ::c_int; 8812add0d91Sopenharmony_ci pub fn execve( 8822add0d91Sopenharmony_ci prog: *const c_char, 8832add0d91Sopenharmony_ci argv: *const *const c_char, 8842add0d91Sopenharmony_ci envp: *const *const c_char, 8852add0d91Sopenharmony_ci ) -> ::c_int; 8862add0d91Sopenharmony_ci pub fn execvp(c: *const c_char, argv: *const *const c_char) -> ::c_int; 8872add0d91Sopenharmony_ci pub fn fork() -> pid_t; 8882add0d91Sopenharmony_ci pub fn fpathconf(filedes: ::c_int, name: ::c_int) -> c_long; 8892add0d91Sopenharmony_ci pub fn getcwd(buf: *mut c_char, size: ::size_t) -> *mut c_char; 8902add0d91Sopenharmony_ci pub fn getegid() -> gid_t; 8912add0d91Sopenharmony_ci pub fn geteuid() -> uid_t; 8922add0d91Sopenharmony_ci pub fn getgid() -> gid_t; 8932add0d91Sopenharmony_ci pub fn getgroups(ngroups_max: ::c_int, groups: *mut gid_t) -> ::c_int; 8942add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "getloginx")] 8952add0d91Sopenharmony_ci pub fn getlogin() -> *mut c_char; 8962add0d91Sopenharmony_ci #[cfg_attr( 8972add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 8982add0d91Sopenharmony_ci link_name = "getopt$UNIX2003" 8992add0d91Sopenharmony_ci )] 9002add0d91Sopenharmony_ci pub fn getopt(argc: ::c_int, argv: *const *mut c_char, optstr: *const c_char) -> ::c_int; 9012add0d91Sopenharmony_ci pub fn getpgid(pid: pid_t) -> pid_t; 9022add0d91Sopenharmony_ci pub fn getpgrp() -> pid_t; 9032add0d91Sopenharmony_ci pub fn getpid() -> pid_t; 9042add0d91Sopenharmony_ci pub fn getppid() -> pid_t; 9052add0d91Sopenharmony_ci pub fn getuid() -> uid_t; 9062add0d91Sopenharmony_ci pub fn isatty(fd: ::c_int) -> ::c_int; 9072add0d91Sopenharmony_ci pub fn link(src: *const c_char, dst: *const c_char) -> ::c_int; 9082add0d91Sopenharmony_ci pub fn lseek(fd: ::c_int, offset: off_t, whence: ::c_int) -> off_t; 9092add0d91Sopenharmony_ci pub fn pathconf(path: *const c_char, name: ::c_int) -> c_long; 9102add0d91Sopenharmony_ci pub fn pipe(fds: *mut ::c_int) -> ::c_int; 9112add0d91Sopenharmony_ci pub fn posix_memalign(memptr: *mut *mut ::c_void, align: ::size_t, size: ::size_t) -> ::c_int; 9122add0d91Sopenharmony_ci #[cfg_attr( 9132add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9142add0d91Sopenharmony_ci link_name = "read$UNIX2003" 9152add0d91Sopenharmony_ci )] 9162add0d91Sopenharmony_ci pub fn read(fd: ::c_int, buf: *mut ::c_void, count: ::size_t) -> ::ssize_t; 9172add0d91Sopenharmony_ci pub fn rmdir(path: *const c_char) -> ::c_int; 9182add0d91Sopenharmony_ci pub fn seteuid(uid: uid_t) -> ::c_int; 9192add0d91Sopenharmony_ci pub fn setegid(gid: gid_t) -> ::c_int; 9202add0d91Sopenharmony_ci pub fn setgid(gid: gid_t) -> ::c_int; 9212add0d91Sopenharmony_ci pub fn setpgid(pid: pid_t, pgid: pid_t) -> ::c_int; 9222add0d91Sopenharmony_ci pub fn setsid() -> pid_t; 9232add0d91Sopenharmony_ci pub fn setuid(uid: uid_t) -> ::c_int; 9242add0d91Sopenharmony_ci pub fn setreuid(ruid: uid_t, euid: uid_t) -> ::c_int; 9252add0d91Sopenharmony_ci pub fn setregid(rgid: gid_t, egid: gid_t) -> ::c_int; 9262add0d91Sopenharmony_ci #[cfg_attr( 9272add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9282add0d91Sopenharmony_ci link_name = "sleep$UNIX2003" 9292add0d91Sopenharmony_ci )] 9302add0d91Sopenharmony_ci pub fn sleep(secs: ::c_uint) -> ::c_uint; 9312add0d91Sopenharmony_ci #[cfg_attr( 9322add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9332add0d91Sopenharmony_ci link_name = "nanosleep$UNIX2003" 9342add0d91Sopenharmony_ci )] 9352add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__nanosleep50")] 9362add0d91Sopenharmony_ci pub fn nanosleep(rqtp: *const timespec, rmtp: *mut timespec) -> ::c_int; 9372add0d91Sopenharmony_ci pub fn tcgetpgrp(fd: ::c_int) -> pid_t; 9382add0d91Sopenharmony_ci pub fn tcsetpgrp(fd: ::c_int, pgrp: ::pid_t) -> ::c_int; 9392add0d91Sopenharmony_ci pub fn ttyname(fd: ::c_int) -> *mut c_char; 9402add0d91Sopenharmony_ci #[cfg_attr( 9412add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9422add0d91Sopenharmony_ci link_name = "ttyname_r$UNIX2003" 9432add0d91Sopenharmony_ci )] 9442add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__posix_ttyname_r")] 9452add0d91Sopenharmony_ci pub fn ttyname_r(fd: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; 9462add0d91Sopenharmony_ci pub fn unlink(c: *const c_char) -> ::c_int; 9472add0d91Sopenharmony_ci #[cfg_attr( 9482add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9492add0d91Sopenharmony_ci link_name = "wait$UNIX2003" 9502add0d91Sopenharmony_ci )] 9512add0d91Sopenharmony_ci pub fn wait(status: *mut ::c_int) -> pid_t; 9522add0d91Sopenharmony_ci #[cfg_attr( 9532add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9542add0d91Sopenharmony_ci link_name = "waitpid$UNIX2003" 9552add0d91Sopenharmony_ci )] 9562add0d91Sopenharmony_ci pub fn waitpid(pid: pid_t, status: *mut ::c_int, options: ::c_int) -> pid_t; 9572add0d91Sopenharmony_ci #[cfg_attr( 9582add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9592add0d91Sopenharmony_ci link_name = "write$UNIX2003" 9602add0d91Sopenharmony_ci )] 9612add0d91Sopenharmony_ci pub fn write(fd: ::c_int, buf: *const ::c_void, count: ::size_t) -> ::ssize_t; 9622add0d91Sopenharmony_ci #[cfg_attr( 9632add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9642add0d91Sopenharmony_ci link_name = "pread$UNIX2003" 9652add0d91Sopenharmony_ci )] 9662add0d91Sopenharmony_ci pub fn pread(fd: ::c_int, buf: *mut ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; 9672add0d91Sopenharmony_ci #[cfg_attr( 9682add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9692add0d91Sopenharmony_ci link_name = "pwrite$UNIX2003" 9702add0d91Sopenharmony_ci )] 9712add0d91Sopenharmony_ci pub fn pwrite(fd: ::c_int, buf: *const ::c_void, count: ::size_t, offset: off_t) -> ::ssize_t; 9722add0d91Sopenharmony_ci pub fn umask(mask: mode_t) -> mode_t; 9732add0d91Sopenharmony_ci 9742add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__utime50")] 9752add0d91Sopenharmony_ci pub fn utime(file: *const c_char, buf: *const utimbuf) -> ::c_int; 9762add0d91Sopenharmony_ci 9772add0d91Sopenharmony_ci #[cfg_attr( 9782add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9792add0d91Sopenharmony_ci link_name = "kill$UNIX2003" 9802add0d91Sopenharmony_ci )] 9812add0d91Sopenharmony_ci pub fn kill(pid: pid_t, sig: ::c_int) -> ::c_int; 9822add0d91Sopenharmony_ci #[cfg_attr( 9832add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9842add0d91Sopenharmony_ci link_name = "killpg$UNIX2003" 9852add0d91Sopenharmony_ci )] 9862add0d91Sopenharmony_ci pub fn killpg(pgrp: pid_t, sig: ::c_int) -> ::c_int; 9872add0d91Sopenharmony_ci 9882add0d91Sopenharmony_ci pub fn mlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; 9892add0d91Sopenharmony_ci pub fn munlock(addr: *const ::c_void, len: ::size_t) -> ::c_int; 9902add0d91Sopenharmony_ci pub fn mlockall(flags: ::c_int) -> ::c_int; 9912add0d91Sopenharmony_ci pub fn munlockall() -> ::c_int; 9922add0d91Sopenharmony_ci 9932add0d91Sopenharmony_ci #[cfg_attr( 9942add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 9952add0d91Sopenharmony_ci link_name = "mmap$UNIX2003" 9962add0d91Sopenharmony_ci )] 9972add0d91Sopenharmony_ci pub fn mmap( 9982add0d91Sopenharmony_ci addr: *mut ::c_void, 9992add0d91Sopenharmony_ci len: ::size_t, 10002add0d91Sopenharmony_ci prot: ::c_int, 10012add0d91Sopenharmony_ci flags: ::c_int, 10022add0d91Sopenharmony_ci fd: ::c_int, 10032add0d91Sopenharmony_ci offset: off_t, 10042add0d91Sopenharmony_ci ) -> *mut ::c_void; 10052add0d91Sopenharmony_ci #[cfg_attr( 10062add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 10072add0d91Sopenharmony_ci link_name = "munmap$UNIX2003" 10082add0d91Sopenharmony_ci )] 10092add0d91Sopenharmony_ci pub fn munmap(addr: *mut ::c_void, len: ::size_t) -> ::c_int; 10102add0d91Sopenharmony_ci 10112add0d91Sopenharmony_ci pub fn if_nametoindex(ifname: *const c_char) -> ::c_uint; 10122add0d91Sopenharmony_ci pub fn if_indextoname(ifindex: ::c_uint, ifname: *mut ::c_char) -> *mut ::c_char; 10132add0d91Sopenharmony_ci 10142add0d91Sopenharmony_ci #[cfg_attr( 10152add0d91Sopenharmony_ci all(target_os = "macos", not(target_arch = "aarch64")), 10162add0d91Sopenharmony_ci link_name = "lstat$INODE64" 10172add0d91Sopenharmony_ci )] 10182add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__lstat50")] 10192add0d91Sopenharmony_ci #[cfg_attr( 10202add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 10212add0d91Sopenharmony_ci link_name = "lstat@FBSD_1.0" 10222add0d91Sopenharmony_ci )] 10232add0d91Sopenharmony_ci pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int; 10242add0d91Sopenharmony_ci 10252add0d91Sopenharmony_ci #[cfg_attr( 10262add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 10272add0d91Sopenharmony_ci link_name = "fsync$UNIX2003" 10282add0d91Sopenharmony_ci )] 10292add0d91Sopenharmony_ci pub fn fsync(fd: ::c_int) -> ::c_int; 10302add0d91Sopenharmony_ci 10312add0d91Sopenharmony_ci #[cfg_attr( 10322add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 10332add0d91Sopenharmony_ci link_name = "setenv$UNIX2003" 10342add0d91Sopenharmony_ci )] 10352add0d91Sopenharmony_ci pub fn setenv(name: *const c_char, val: *const c_char, overwrite: ::c_int) -> ::c_int; 10362add0d91Sopenharmony_ci #[cfg_attr( 10372add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 10382add0d91Sopenharmony_ci link_name = "unsetenv$UNIX2003" 10392add0d91Sopenharmony_ci )] 10402add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__unsetenv13")] 10412add0d91Sopenharmony_ci pub fn unsetenv(name: *const c_char) -> ::c_int; 10422add0d91Sopenharmony_ci 10432add0d91Sopenharmony_ci pub fn symlink(path1: *const c_char, path2: *const c_char) -> ::c_int; 10442add0d91Sopenharmony_ci 10452add0d91Sopenharmony_ci pub fn ftruncate(fd: ::c_int, length: off_t) -> ::c_int; 10462add0d91Sopenharmony_ci 10472add0d91Sopenharmony_ci pub fn signal(signum: ::c_int, handler: sighandler_t) -> sighandler_t; 10482add0d91Sopenharmony_ci 10492add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__getrusage50")] 10502add0d91Sopenharmony_ci pub fn getrusage(resource: ::c_int, usage: *mut rusage) -> ::c_int; 10512add0d91Sopenharmony_ci 10522add0d91Sopenharmony_ci #[cfg_attr( 10532add0d91Sopenharmony_ci any( 10542add0d91Sopenharmony_ci target_os = "macos", 10552add0d91Sopenharmony_ci target_os = "ios", 10562add0d91Sopenharmony_ci target_os = "tvos", 10572add0d91Sopenharmony_ci target_os = "watchos" 10582add0d91Sopenharmony_ci ), 10592add0d91Sopenharmony_ci link_name = "realpath$DARWIN_EXTSN" 10602add0d91Sopenharmony_ci )] 10612add0d91Sopenharmony_ci pub fn realpath(pathname: *const ::c_char, resolved: *mut ::c_char) -> *mut ::c_char; 10622add0d91Sopenharmony_ci 10632add0d91Sopenharmony_ci pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int; 10642add0d91Sopenharmony_ci 10652add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__times13")] 10662add0d91Sopenharmony_ci pub fn times(buf: *mut ::tms) -> ::clock_t; 10672add0d91Sopenharmony_ci 10682add0d91Sopenharmony_ci pub fn pthread_self() -> ::pthread_t; 10692add0d91Sopenharmony_ci #[cfg_attr( 10702add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 10712add0d91Sopenharmony_ci link_name = "pthread_join$UNIX2003" 10722add0d91Sopenharmony_ci )] 10732add0d91Sopenharmony_ci pub fn pthread_join(native: ::pthread_t, value: *mut *mut ::c_void) -> ::c_int; 10742add0d91Sopenharmony_ci pub fn pthread_exit(value: *mut ::c_void) -> !; 10752add0d91Sopenharmony_ci pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int; 10762add0d91Sopenharmony_ci pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int; 10772add0d91Sopenharmony_ci pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int; 10782add0d91Sopenharmony_ci pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int; 10792add0d91Sopenharmony_ci pub fn pthread_detach(thread: ::pthread_t) -> ::c_int; 10802add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__libc_thr_yield")] 10812add0d91Sopenharmony_ci pub fn sched_yield() -> ::c_int; 10822add0d91Sopenharmony_ci pub fn pthread_key_create( 10832add0d91Sopenharmony_ci key: *mut pthread_key_t, 10842add0d91Sopenharmony_ci dtor: ::Option<unsafe extern "C" fn(*mut ::c_void)>, 10852add0d91Sopenharmony_ci ) -> ::c_int; 10862add0d91Sopenharmony_ci pub fn pthread_key_delete(key: pthread_key_t) -> ::c_int; 10872add0d91Sopenharmony_ci pub fn pthread_getspecific(key: pthread_key_t) -> *mut ::c_void; 10882add0d91Sopenharmony_ci pub fn pthread_setspecific(key: pthread_key_t, value: *const ::c_void) -> ::c_int; 10892add0d91Sopenharmony_ci pub fn pthread_mutex_init( 10902add0d91Sopenharmony_ci lock: *mut pthread_mutex_t, 10912add0d91Sopenharmony_ci attr: *const pthread_mutexattr_t, 10922add0d91Sopenharmony_ci ) -> ::c_int; 10932add0d91Sopenharmony_ci pub fn pthread_mutex_destroy(lock: *mut pthread_mutex_t) -> ::c_int; 10942add0d91Sopenharmony_ci pub fn pthread_mutex_lock(lock: *mut pthread_mutex_t) -> ::c_int; 10952add0d91Sopenharmony_ci pub fn pthread_mutex_trylock(lock: *mut pthread_mutex_t) -> ::c_int; 10962add0d91Sopenharmony_ci pub fn pthread_mutex_unlock(lock: *mut pthread_mutex_t) -> ::c_int; 10972add0d91Sopenharmony_ci 10982add0d91Sopenharmony_ci pub fn pthread_mutexattr_init(attr: *mut pthread_mutexattr_t) -> ::c_int; 10992add0d91Sopenharmony_ci #[cfg_attr( 11002add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11012add0d91Sopenharmony_ci link_name = "pthread_mutexattr_destroy$UNIX2003" 11022add0d91Sopenharmony_ci )] 11032add0d91Sopenharmony_ci pub fn pthread_mutexattr_destroy(attr: *mut pthread_mutexattr_t) -> ::c_int; 11042add0d91Sopenharmony_ci pub fn pthread_mutexattr_settype(attr: *mut pthread_mutexattr_t, _type: ::c_int) -> ::c_int; 11052add0d91Sopenharmony_ci 11062add0d91Sopenharmony_ci #[cfg_attr( 11072add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11082add0d91Sopenharmony_ci link_name = "pthread_cond_init$UNIX2003" 11092add0d91Sopenharmony_ci )] 11102add0d91Sopenharmony_ci pub fn pthread_cond_init(cond: *mut pthread_cond_t, attr: *const pthread_condattr_t) 11112add0d91Sopenharmony_ci -> ::c_int; 11122add0d91Sopenharmony_ci #[cfg_attr( 11132add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11142add0d91Sopenharmony_ci link_name = "pthread_cond_wait$UNIX2003" 11152add0d91Sopenharmony_ci )] 11162add0d91Sopenharmony_ci pub fn pthread_cond_wait(cond: *mut pthread_cond_t, lock: *mut pthread_mutex_t) -> ::c_int; 11172add0d91Sopenharmony_ci #[cfg_attr( 11182add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11192add0d91Sopenharmony_ci link_name = "pthread_cond_timedwait$UNIX2003" 11202add0d91Sopenharmony_ci )] 11212add0d91Sopenharmony_ci pub fn pthread_cond_timedwait( 11222add0d91Sopenharmony_ci cond: *mut pthread_cond_t, 11232add0d91Sopenharmony_ci lock: *mut pthread_mutex_t, 11242add0d91Sopenharmony_ci abstime: *const ::timespec, 11252add0d91Sopenharmony_ci ) -> ::c_int; 11262add0d91Sopenharmony_ci pub fn pthread_cond_signal(cond: *mut pthread_cond_t) -> ::c_int; 11272add0d91Sopenharmony_ci pub fn pthread_cond_broadcast(cond: *mut pthread_cond_t) -> ::c_int; 11282add0d91Sopenharmony_ci pub fn pthread_cond_destroy(cond: *mut pthread_cond_t) -> ::c_int; 11292add0d91Sopenharmony_ci pub fn pthread_condattr_init(attr: *mut pthread_condattr_t) -> ::c_int; 11302add0d91Sopenharmony_ci pub fn pthread_condattr_destroy(attr: *mut pthread_condattr_t) -> ::c_int; 11312add0d91Sopenharmony_ci #[cfg_attr( 11322add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11332add0d91Sopenharmony_ci link_name = "pthread_rwlock_init$UNIX2003" 11342add0d91Sopenharmony_ci )] 11352add0d91Sopenharmony_ci pub fn pthread_rwlock_init( 11362add0d91Sopenharmony_ci lock: *mut pthread_rwlock_t, 11372add0d91Sopenharmony_ci attr: *const pthread_rwlockattr_t, 11382add0d91Sopenharmony_ci ) -> ::c_int; 11392add0d91Sopenharmony_ci #[cfg_attr( 11402add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11412add0d91Sopenharmony_ci link_name = "pthread_rwlock_destroy$UNIX2003" 11422add0d91Sopenharmony_ci )] 11432add0d91Sopenharmony_ci pub fn pthread_rwlock_destroy(lock: *mut pthread_rwlock_t) -> ::c_int; 11442add0d91Sopenharmony_ci #[cfg_attr( 11452add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11462add0d91Sopenharmony_ci link_name = "pthread_rwlock_rdlock$UNIX2003" 11472add0d91Sopenharmony_ci )] 11482add0d91Sopenharmony_ci pub fn pthread_rwlock_rdlock(lock: *mut pthread_rwlock_t) -> ::c_int; 11492add0d91Sopenharmony_ci #[cfg_attr( 11502add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11512add0d91Sopenharmony_ci link_name = "pthread_rwlock_tryrdlock$UNIX2003" 11522add0d91Sopenharmony_ci )] 11532add0d91Sopenharmony_ci pub fn pthread_rwlock_tryrdlock(lock: *mut pthread_rwlock_t) -> ::c_int; 11542add0d91Sopenharmony_ci #[cfg_attr( 11552add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11562add0d91Sopenharmony_ci link_name = "pthread_rwlock_wrlock$UNIX2003" 11572add0d91Sopenharmony_ci )] 11582add0d91Sopenharmony_ci pub fn pthread_rwlock_wrlock(lock: *mut pthread_rwlock_t) -> ::c_int; 11592add0d91Sopenharmony_ci #[cfg_attr( 11602add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11612add0d91Sopenharmony_ci link_name = "pthread_rwlock_trywrlock$UNIX2003" 11622add0d91Sopenharmony_ci )] 11632add0d91Sopenharmony_ci pub fn pthread_rwlock_trywrlock(lock: *mut pthread_rwlock_t) -> ::c_int; 11642add0d91Sopenharmony_ci #[cfg_attr( 11652add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 11662add0d91Sopenharmony_ci link_name = "pthread_rwlock_unlock$UNIX2003" 11672add0d91Sopenharmony_ci )] 11682add0d91Sopenharmony_ci pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int; 11692add0d91Sopenharmony_ci pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int; 11702add0d91Sopenharmony_ci pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int; 11712add0d91Sopenharmony_ci 11722add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_getsockopt")] 11732add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_getsockopt")] 11742add0d91Sopenharmony_ci pub fn getsockopt( 11752add0d91Sopenharmony_ci sockfd: ::c_int, 11762add0d91Sopenharmony_ci level: ::c_int, 11772add0d91Sopenharmony_ci optname: ::c_int, 11782add0d91Sopenharmony_ci optval: *mut ::c_void, 11792add0d91Sopenharmony_ci optlen: *mut ::socklen_t, 11802add0d91Sopenharmony_ci ) -> ::c_int; 11812add0d91Sopenharmony_ci pub fn raise(signum: ::c_int) -> ::c_int; 11822add0d91Sopenharmony_ci 11832add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__utimes50")] 11842add0d91Sopenharmony_ci pub fn utimes(filename: *const ::c_char, times: *const ::timeval) -> ::c_int; 11852add0d91Sopenharmony_ci pub fn dlopen(filename: *const ::c_char, flag: ::c_int) -> *mut ::c_void; 11862add0d91Sopenharmony_ci pub fn dlerror() -> *mut ::c_char; 11872add0d91Sopenharmony_ci pub fn dlsym(handle: *mut ::c_void, symbol: *const ::c_char) -> *mut ::c_void; 11882add0d91Sopenharmony_ci pub fn dlclose(handle: *mut ::c_void) -> ::c_int; 11892add0d91Sopenharmony_ci pub fn dladdr(addr: *const ::c_void, info: *mut Dl_info) -> ::c_int; 11902add0d91Sopenharmony_ci 11912add0d91Sopenharmony_ci #[cfg(not(all( 11922add0d91Sopenharmony_ci libc_cfg_target_vendor, 11932add0d91Sopenharmony_ci target_arch = "powerpc", 11942add0d91Sopenharmony_ci target_vendor = "nintendo" 11952add0d91Sopenharmony_ci )))] 11962add0d91Sopenharmony_ci #[cfg_attr(target_os = "illumos", link_name = "__xnet_getaddrinfo")] 11972add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_getaddrinfo")] 11982add0d91Sopenharmony_ci pub fn getaddrinfo( 11992add0d91Sopenharmony_ci node: *const c_char, 12002add0d91Sopenharmony_ci service: *const c_char, 12012add0d91Sopenharmony_ci hints: *const addrinfo, 12022add0d91Sopenharmony_ci res: *mut *mut addrinfo, 12032add0d91Sopenharmony_ci ) -> ::c_int; 12042add0d91Sopenharmony_ci #[cfg(not(all( 12052add0d91Sopenharmony_ci libc_cfg_target_vendor, 12062add0d91Sopenharmony_ci target_arch = "powerpc", 12072add0d91Sopenharmony_ci target_vendor = "nintendo" 12082add0d91Sopenharmony_ci )))] 12092add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_freeaddrinfo")] 12102add0d91Sopenharmony_ci pub fn freeaddrinfo(res: *mut addrinfo); 12112add0d91Sopenharmony_ci pub fn hstrerror(errcode: ::c_int) -> *const ::c_char; 12122add0d91Sopenharmony_ci pub fn gai_strerror(errcode: ::c_int) -> *const ::c_char; 12132add0d91Sopenharmony_ci #[cfg_attr( 12142add0d91Sopenharmony_ci any( 12152add0d91Sopenharmony_ci all( 12162add0d91Sopenharmony_ci target_os = "linux", 12172add0d91Sopenharmony_ci not(any(target_env = "musl", target_env = "ohos")) 12182add0d91Sopenharmony_ci ), 12192add0d91Sopenharmony_ci target_os = "freebsd", 12202add0d91Sopenharmony_ci target_os = "dragonfly", 12212add0d91Sopenharmony_ci target_os = "haiku" 12222add0d91Sopenharmony_ci ), 12232add0d91Sopenharmony_ci link_name = "__res_init" 12242add0d91Sopenharmony_ci )] 12252add0d91Sopenharmony_ci #[cfg_attr( 12262add0d91Sopenharmony_ci any( 12272add0d91Sopenharmony_ci target_os = "macos", 12282add0d91Sopenharmony_ci target_os = "ios", 12292add0d91Sopenharmony_ci target_os = "tvos", 12302add0d91Sopenharmony_ci target_os = "watchos" 12312add0d91Sopenharmony_ci ), 12322add0d91Sopenharmony_ci link_name = "res_9_init" 12332add0d91Sopenharmony_ci )] 12342add0d91Sopenharmony_ci pub fn res_init() -> ::c_int; 12352add0d91Sopenharmony_ci 12362add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__gmtime_r50")] 12372add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12382add0d91Sopenharmony_ci // FIXME: for `time_t` 12392add0d91Sopenharmony_ci pub fn gmtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; 12402add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__localtime_r50")] 12412add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12422add0d91Sopenharmony_ci // FIXME: for `time_t` 12432add0d91Sopenharmony_ci pub fn localtime_r(time_p: *const time_t, result: *mut tm) -> *mut tm; 12442add0d91Sopenharmony_ci #[cfg_attr( 12452add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 12462add0d91Sopenharmony_ci link_name = "mktime$UNIX2003" 12472add0d91Sopenharmony_ci )] 12482add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__mktime50")] 12492add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12502add0d91Sopenharmony_ci // FIXME: for `time_t` 12512add0d91Sopenharmony_ci pub fn mktime(tm: *mut tm) -> time_t; 12522add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__time50")] 12532add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12542add0d91Sopenharmony_ci // FIXME: for `time_t` 12552add0d91Sopenharmony_ci pub fn time(time: *mut time_t) -> time_t; 12562add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__gmtime50")] 12572add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12582add0d91Sopenharmony_ci // FIXME: for `time_t` 12592add0d91Sopenharmony_ci pub fn gmtime(time_p: *const time_t) -> *mut tm; 12602add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__locatime50")] 12612add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12622add0d91Sopenharmony_ci // FIXME: for `time_t` 12632add0d91Sopenharmony_ci pub fn localtime(time_p: *const time_t) -> *mut tm; 12642add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__difftime50")] 12652add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12662add0d91Sopenharmony_ci // FIXME: for `time_t` 12672add0d91Sopenharmony_ci pub fn difftime(time1: time_t, time0: time_t) -> ::c_double; 12682add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__timegm50")] 12692add0d91Sopenharmony_ci #[cfg_attr(any(target_env = "musl", target_env = "ohos"), allow(deprecated))] 12702add0d91Sopenharmony_ci // FIXME: for `time_t` 12712add0d91Sopenharmony_ci pub fn timegm(tm: *mut ::tm) -> time_t; 12722add0d91Sopenharmony_ci 12732add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__mknod50")] 12742add0d91Sopenharmony_ci #[cfg_attr( 12752add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 12762add0d91Sopenharmony_ci link_name = "mknod@FBSD_1.0" 12772add0d91Sopenharmony_ci )] 12782add0d91Sopenharmony_ci pub fn mknod(pathname: *const ::c_char, mode: ::mode_t, dev: ::dev_t) -> ::c_int; 12792add0d91Sopenharmony_ci pub fn gethostname(name: *mut ::c_char, len: ::size_t) -> ::c_int; 12802add0d91Sopenharmony_ci pub fn endservent(); 12812add0d91Sopenharmony_ci pub fn getservbyname(name: *const ::c_char, proto: *const ::c_char) -> *mut servent; 12822add0d91Sopenharmony_ci pub fn getservbyport(port: ::c_int, proto: *const ::c_char) -> *mut servent; 12832add0d91Sopenharmony_ci pub fn getservent() -> *mut servent; 12842add0d91Sopenharmony_ci pub fn setservent(stayopen: ::c_int); 12852add0d91Sopenharmony_ci pub fn getprotobyname(name: *const ::c_char) -> *mut protoent; 12862add0d91Sopenharmony_ci pub fn getprotobynumber(proto: ::c_int) -> *mut protoent; 12872add0d91Sopenharmony_ci pub fn chroot(name: *const ::c_char) -> ::c_int; 12882add0d91Sopenharmony_ci #[cfg_attr( 12892add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 12902add0d91Sopenharmony_ci link_name = "usleep$UNIX2003" 12912add0d91Sopenharmony_ci )] 12922add0d91Sopenharmony_ci pub fn usleep(secs: ::c_uint) -> ::c_int; 12932add0d91Sopenharmony_ci #[cfg_attr( 12942add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 12952add0d91Sopenharmony_ci link_name = "send$UNIX2003" 12962add0d91Sopenharmony_ci )] 12972add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_send")] 12982add0d91Sopenharmony_ci pub fn send(socket: ::c_int, buf: *const ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; 12992add0d91Sopenharmony_ci #[cfg_attr( 13002add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13012add0d91Sopenharmony_ci link_name = "recv$UNIX2003" 13022add0d91Sopenharmony_ci )] 13032add0d91Sopenharmony_ci #[cfg_attr(target_os = "espidf", link_name = "lwip_recv")] 13042add0d91Sopenharmony_ci pub fn recv(socket: ::c_int, buf: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::ssize_t; 13052add0d91Sopenharmony_ci #[cfg_attr( 13062add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13072add0d91Sopenharmony_ci link_name = "putenv$UNIX2003" 13082add0d91Sopenharmony_ci )] 13092add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__putenv50")] 13102add0d91Sopenharmony_ci pub fn putenv(string: *mut c_char) -> ::c_int; 13112add0d91Sopenharmony_ci #[cfg_attr( 13122add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13132add0d91Sopenharmony_ci link_name = "poll$UNIX2003" 13142add0d91Sopenharmony_ci )] 13152add0d91Sopenharmony_ci pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: ::c_int) -> ::c_int; 13162add0d91Sopenharmony_ci #[cfg_attr( 13172add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86_64"), 13182add0d91Sopenharmony_ci link_name = "select$1050" 13192add0d91Sopenharmony_ci )] 13202add0d91Sopenharmony_ci #[cfg_attr( 13212add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13222add0d91Sopenharmony_ci link_name = "select$UNIX2003" 13232add0d91Sopenharmony_ci )] 13242add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__select50")] 13252add0d91Sopenharmony_ci pub fn select( 13262add0d91Sopenharmony_ci nfds: ::c_int, 13272add0d91Sopenharmony_ci readfds: *mut fd_set, 13282add0d91Sopenharmony_ci writefds: *mut fd_set, 13292add0d91Sopenharmony_ci errorfds: *mut fd_set, 13302add0d91Sopenharmony_ci timeout: *mut timeval, 13312add0d91Sopenharmony_ci ) -> ::c_int; 13322add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__setlocale50")] 13332add0d91Sopenharmony_ci pub fn setlocale(category: ::c_int, locale: *const ::c_char) -> *mut ::c_char; 13342add0d91Sopenharmony_ci pub fn localeconv() -> *mut lconv; 13352add0d91Sopenharmony_ci 13362add0d91Sopenharmony_ci #[cfg_attr( 13372add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13382add0d91Sopenharmony_ci link_name = "sem_wait$UNIX2003" 13392add0d91Sopenharmony_ci )] 13402add0d91Sopenharmony_ci pub fn sem_wait(sem: *mut sem_t) -> ::c_int; 13412add0d91Sopenharmony_ci pub fn sem_trywait(sem: *mut sem_t) -> ::c_int; 13422add0d91Sopenharmony_ci pub fn sem_post(sem: *mut sem_t) -> ::c_int; 13432add0d91Sopenharmony_ci pub fn statvfs(path: *const c_char, buf: *mut statvfs) -> ::c_int; 13442add0d91Sopenharmony_ci pub fn fstatvfs(fd: ::c_int, buf: *mut statvfs) -> ::c_int; 13452add0d91Sopenharmony_ci 13462add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigemptyset14")] 13472add0d91Sopenharmony_ci pub fn sigemptyset(set: *mut sigset_t) -> ::c_int; 13482add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigaddset14")] 13492add0d91Sopenharmony_ci pub fn sigaddset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; 13502add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigfillset14")] 13512add0d91Sopenharmony_ci pub fn sigfillset(set: *mut sigset_t) -> ::c_int; 13522add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigdelset14")] 13532add0d91Sopenharmony_ci pub fn sigdelset(set: *mut sigset_t, signum: ::c_int) -> ::c_int; 13542add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigismember14")] 13552add0d91Sopenharmony_ci pub fn sigismember(set: *const sigset_t, signum: ::c_int) -> ::c_int; 13562add0d91Sopenharmony_ci 13572add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigprocmask14")] 13582add0d91Sopenharmony_ci pub fn sigprocmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int; 13592add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigpending14")] 13602add0d91Sopenharmony_ci pub fn sigpending(set: *mut sigset_t) -> ::c_int; 13612add0d91Sopenharmony_ci 13622add0d91Sopenharmony_ci pub fn sysconf(name: ::c_int) -> ::c_long; 13632add0d91Sopenharmony_ci 13642add0d91Sopenharmony_ci pub fn mkfifo(path: *const c_char, mode: mode_t) -> ::c_int; 13652add0d91Sopenharmony_ci 13662add0d91Sopenharmony_ci pub fn fseeko(stream: *mut ::FILE, offset: ::off_t, whence: ::c_int) -> ::c_int; 13672add0d91Sopenharmony_ci pub fn ftello(stream: *mut ::FILE) -> ::off_t; 13682add0d91Sopenharmony_ci #[cfg_attr( 13692add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13702add0d91Sopenharmony_ci link_name = "tcdrain$UNIX2003" 13712add0d91Sopenharmony_ci )] 13722add0d91Sopenharmony_ci pub fn tcdrain(fd: ::c_int) -> ::c_int; 13732add0d91Sopenharmony_ci pub fn cfgetispeed(termios: *const ::termios) -> ::speed_t; 13742add0d91Sopenharmony_ci pub fn cfgetospeed(termios: *const ::termios) -> ::speed_t; 13752add0d91Sopenharmony_ci pub fn cfsetispeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; 13762add0d91Sopenharmony_ci pub fn cfsetospeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int; 13772add0d91Sopenharmony_ci pub fn tcgetattr(fd: ::c_int, termios: *mut ::termios) -> ::c_int; 13782add0d91Sopenharmony_ci pub fn tcsetattr(fd: ::c_int, optional_actions: ::c_int, termios: *const ::termios) -> ::c_int; 13792add0d91Sopenharmony_ci pub fn tcflow(fd: ::c_int, action: ::c_int) -> ::c_int; 13802add0d91Sopenharmony_ci pub fn tcflush(fd: ::c_int, action: ::c_int) -> ::c_int; 13812add0d91Sopenharmony_ci pub fn tcgetsid(fd: ::c_int) -> ::pid_t; 13822add0d91Sopenharmony_ci pub fn tcsendbreak(fd: ::c_int, duration: ::c_int) -> ::c_int; 13832add0d91Sopenharmony_ci pub fn mkstemp(template: *mut ::c_char) -> ::c_int; 13842add0d91Sopenharmony_ci pub fn mkdtemp(template: *mut ::c_char) -> *mut ::c_char; 13852add0d91Sopenharmony_ci 13862add0d91Sopenharmony_ci pub fn tmpnam(ptr: *mut ::c_char) -> *mut ::c_char; 13872add0d91Sopenharmony_ci 13882add0d91Sopenharmony_ci pub fn openlog(ident: *const ::c_char, logopt: ::c_int, facility: ::c_int); 13892add0d91Sopenharmony_ci pub fn closelog(); 13902add0d91Sopenharmony_ci pub fn setlogmask(maskpri: ::c_int) -> ::c_int; 13912add0d91Sopenharmony_ci #[cfg_attr(target_os = "macos", link_name = "syslog$DARWIN_EXTSN")] 13922add0d91Sopenharmony_ci pub fn syslog(priority: ::c_int, message: *const ::c_char, ...); 13932add0d91Sopenharmony_ci #[cfg_attr( 13942add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 13952add0d91Sopenharmony_ci link_name = "nice$UNIX2003" 13962add0d91Sopenharmony_ci )] 13972add0d91Sopenharmony_ci pub fn nice(incr: ::c_int) -> ::c_int; 13982add0d91Sopenharmony_ci 13992add0d91Sopenharmony_ci pub fn grantpt(fd: ::c_int) -> ::c_int; 14002add0d91Sopenharmony_ci pub fn posix_openpt(flags: ::c_int) -> ::c_int; 14012add0d91Sopenharmony_ci pub fn ptsname(fd: ::c_int) -> *mut ::c_char; 14022add0d91Sopenharmony_ci pub fn unlockpt(fd: ::c_int) -> ::c_int; 14032add0d91Sopenharmony_ci 14042add0d91Sopenharmony_ci pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char; 14052add0d91Sopenharmony_ci pub fn getline(lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t; 14062add0d91Sopenharmony_ci 14072add0d91Sopenharmony_ci pub fn lockf(fd: ::c_int, cmd: ::c_int, len: ::off_t) -> ::c_int; 14082add0d91Sopenharmony_ci 14092add0d91Sopenharmony_ci} 14102add0d91Sopenharmony_cicfg_if! { 14112add0d91Sopenharmony_ci if #[cfg(not(any(target_os = "emscripten", 14122add0d91Sopenharmony_ci target_os = "android", 14132add0d91Sopenharmony_ci target_os = "haiku", 14142add0d91Sopenharmony_ci target_os = "nto")))] { 14152add0d91Sopenharmony_ci extern "C" { 14162add0d91Sopenharmony_ci pub fn adjtime(delta: *const timeval, olddelta: *mut timeval) -> ::c_int; 14172add0d91Sopenharmony_ci pub fn stpncpy(dst: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; 14182add0d91Sopenharmony_ci } 14192add0d91Sopenharmony_ci } 14202add0d91Sopenharmony_ci} 14212add0d91Sopenharmony_ci 14222add0d91Sopenharmony_cicfg_if! { 14232add0d91Sopenharmony_ci if #[cfg(not(any(target_env = "uclibc", target_os = "nto")))] { 14242add0d91Sopenharmony_ci extern "C" { 14252add0d91Sopenharmony_ci pub fn open_wmemstream( 14262add0d91Sopenharmony_ci ptr: *mut *mut wchar_t, 14272add0d91Sopenharmony_ci sizeloc: *mut size_t, 14282add0d91Sopenharmony_ci ) -> *mut FILE; 14292add0d91Sopenharmony_ci } 14302add0d91Sopenharmony_ci } 14312add0d91Sopenharmony_ci} 14322add0d91Sopenharmony_ci 14332add0d91Sopenharmony_cicfg_if! { 14342add0d91Sopenharmony_ci if #[cfg(not(target_os = "redox"))] { 14352add0d91Sopenharmony_ci extern { 14362add0d91Sopenharmony_ci pub fn getsid(pid: pid_t) -> pid_t; 14372add0d91Sopenharmony_ci pub fn truncate(path: *const c_char, length: off_t) -> ::c_int; 14382add0d91Sopenharmony_ci #[cfg_attr(all(target_os = "macos", target_arch = "x86"), 14392add0d91Sopenharmony_ci link_name = "pause$UNIX2003")] 14402add0d91Sopenharmony_ci pub fn pause() -> ::c_int; 14412add0d91Sopenharmony_ci 14422add0d91Sopenharmony_ci pub fn mkdirat(dirfd: ::c_int, pathname: *const ::c_char, 14432add0d91Sopenharmony_ci mode: ::mode_t) -> ::c_int; 14442add0d91Sopenharmony_ci pub fn openat(dirfd: ::c_int, pathname: *const ::c_char, 14452add0d91Sopenharmony_ci flags: ::c_int, ...) -> ::c_int; 14462add0d91Sopenharmony_ci 14472add0d91Sopenharmony_ci #[cfg_attr(all(target_os = "macos", target_arch = "x86_64"), 14482add0d91Sopenharmony_ci link_name = "fdopendir$INODE64")] 14492add0d91Sopenharmony_ci #[cfg_attr(all(target_os = "macos", target_arch = "x86"), 14502add0d91Sopenharmony_ci link_name = "fdopendir$INODE64$UNIX2003")] 14512add0d91Sopenharmony_ci pub fn fdopendir(fd: ::c_int) -> *mut ::DIR; 14522add0d91Sopenharmony_ci 14532add0d91Sopenharmony_ci #[cfg_attr(all(target_os = "macos", not(target_arch = "aarch64")), 14542add0d91Sopenharmony_ci link_name = "readdir_r$INODE64")] 14552add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")] 14562add0d91Sopenharmony_ci #[cfg_attr( 14572add0d91Sopenharmony_ci all(target_os = "freebsd", any(freebsd11, freebsd10)), 14582add0d91Sopenharmony_ci link_name = "readdir_r@FBSD_1.0" 14592add0d91Sopenharmony_ci )] 14602add0d91Sopenharmony_ci #[allow(non_autolinks)] // FIXME: `<>` breaks line length limit. 14612add0d91Sopenharmony_ci /// The 64-bit libc on Solaris and illumos only has readdir_r. If a 14622add0d91Sopenharmony_ci /// 32-bit Solaris or illumos target is ever created, it should use 14632add0d91Sopenharmony_ci /// __posix_readdir_r. See libc(3LIB) on Solaris or illumos: 14642add0d91Sopenharmony_ci /// https://illumos.org/man/3lib/libc 14652add0d91Sopenharmony_ci /// https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html 14662add0d91Sopenharmony_ci /// https://www.unix.com/man-page/opensolaris/3LIB/libc/ 14672add0d91Sopenharmony_ci pub fn readdir_r(dirp: *mut ::DIR, entry: *mut ::dirent, 14682add0d91Sopenharmony_ci result: *mut *mut ::dirent) -> ::c_int; 14692add0d91Sopenharmony_ci } 14702add0d91Sopenharmony_ci } 14712add0d91Sopenharmony_ci} 14722add0d91Sopenharmony_ci 14732add0d91Sopenharmony_cicfg_if! { 14742add0d91Sopenharmony_ci if #[cfg(target_os = "nto")] { 14752add0d91Sopenharmony_ci extern { 14762add0d91Sopenharmony_ci pub fn readlinkat(dirfd: ::c_int, 14772add0d91Sopenharmony_ci pathname: *const ::c_char, 14782add0d91Sopenharmony_ci buf: *mut ::c_char, 14792add0d91Sopenharmony_ci bufsiz: ::size_t) -> ::c_int; 14802add0d91Sopenharmony_ci pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::c_int; 14812add0d91Sopenharmony_ci pub fn pselect( 14822add0d91Sopenharmony_ci nfds: ::c_int, 14832add0d91Sopenharmony_ci readfds: *mut fd_set, 14842add0d91Sopenharmony_ci writefds: *mut fd_set, 14852add0d91Sopenharmony_ci errorfds: *mut fd_set, 14862add0d91Sopenharmony_ci timeout: *mut timespec, 14872add0d91Sopenharmony_ci sigmask: *const sigset_t, 14882add0d91Sopenharmony_ci ) -> ::c_int; 14892add0d91Sopenharmony_ci } 14902add0d91Sopenharmony_ci } else { 14912add0d91Sopenharmony_ci extern { 14922add0d91Sopenharmony_ci pub fn readlinkat(dirfd: ::c_int, 14932add0d91Sopenharmony_ci pathname: *const ::c_char, 14942add0d91Sopenharmony_ci buf: *mut ::c_char, 14952add0d91Sopenharmony_ci bufsiz: ::size_t) -> ::ssize_t; 14962add0d91Sopenharmony_ci pub fn fmemopen(buf: *mut c_void, size: size_t, mode: *const c_char) -> *mut FILE; 14972add0d91Sopenharmony_ci pub fn open_memstream(ptr: *mut *mut c_char, sizeloc: *mut size_t) -> *mut FILE; 14982add0d91Sopenharmony_ci pub fn atexit(cb: extern "C" fn()) -> c_int; 14992add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__sigaction14")] 15002add0d91Sopenharmony_ci pub fn sigaction( 15012add0d91Sopenharmony_ci signum: ::c_int, 15022add0d91Sopenharmony_ci act: *const sigaction, 15032add0d91Sopenharmony_ci oldact: *mut sigaction 15042add0d91Sopenharmony_ci ) -> ::c_int; 15052add0d91Sopenharmony_ci pub fn readlink(path: *const c_char, buf: *mut c_char, bufsz: ::size_t) -> ::ssize_t; 15062add0d91Sopenharmony_ci #[cfg_attr( 15072add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86_64"), 15082add0d91Sopenharmony_ci link_name = "pselect$1050" 15092add0d91Sopenharmony_ci )] 15102add0d91Sopenharmony_ci #[cfg_attr( 15112add0d91Sopenharmony_ci all(target_os = "macos", target_arch = "x86"), 15122add0d91Sopenharmony_ci link_name = "pselect$UNIX2003" 15132add0d91Sopenharmony_ci )] 15142add0d91Sopenharmony_ci #[cfg_attr(target_os = "netbsd", link_name = "__pselect50")] 15152add0d91Sopenharmony_ci pub fn pselect( 15162add0d91Sopenharmony_ci nfds: ::c_int, 15172add0d91Sopenharmony_ci readfds: *mut fd_set, 15182add0d91Sopenharmony_ci writefds: *mut fd_set, 15192add0d91Sopenharmony_ci errorfds: *mut fd_set, 15202add0d91Sopenharmony_ci timeout: *const timespec, 15212add0d91Sopenharmony_ci sigmask: *const sigset_t, 15222add0d91Sopenharmony_ci ) -> ::c_int; 15232add0d91Sopenharmony_ci } 15242add0d91Sopenharmony_ci } 15252add0d91Sopenharmony_ci} 15262add0d91Sopenharmony_ci 15272add0d91Sopenharmony_cicfg_if! { 15282add0d91Sopenharmony_ci if #[cfg(not(any(target_os = "solaris", 15292add0d91Sopenharmony_ci target_os = "illumos", 15302add0d91Sopenharmony_ci target_os = "nto", 15312add0d91Sopenharmony_ci )))] { 15322add0d91Sopenharmony_ci extern { 15332add0d91Sopenharmony_ci pub fn cfmakeraw(termios: *mut ::termios); 15342add0d91Sopenharmony_ci pub fn cfsetspeed(termios: *mut ::termios, 15352add0d91Sopenharmony_ci speed: ::speed_t) -> ::c_int; 15362add0d91Sopenharmony_ci } 15372add0d91Sopenharmony_ci } 15382add0d91Sopenharmony_ci} 15392add0d91Sopenharmony_ci 15402add0d91Sopenharmony_cicfg_if! { 15412add0d91Sopenharmony_ci if #[cfg(target_env = "newlib")] { 15422add0d91Sopenharmony_ci mod newlib; 15432add0d91Sopenharmony_ci pub use self::newlib::*; 15442add0d91Sopenharmony_ci } else if #[cfg(any(target_os = "linux", 15452add0d91Sopenharmony_ci target_os = "l4re", 15462add0d91Sopenharmony_ci target_os = "android", 15472add0d91Sopenharmony_ci target_os = "emscripten"))] { 15482add0d91Sopenharmony_ci mod linux_like; 15492add0d91Sopenharmony_ci pub use self::linux_like::*; 15502add0d91Sopenharmony_ci } else if #[cfg(any(target_os = "macos", 15512add0d91Sopenharmony_ci target_os = "ios", 15522add0d91Sopenharmony_ci target_os = "tvos", 15532add0d91Sopenharmony_ci target_os = "watchos", 15542add0d91Sopenharmony_ci target_os = "freebsd", 15552add0d91Sopenharmony_ci target_os = "dragonfly", 15562add0d91Sopenharmony_ci target_os = "openbsd", 15572add0d91Sopenharmony_ci target_os = "netbsd"))] { 15582add0d91Sopenharmony_ci mod bsd; 15592add0d91Sopenharmony_ci pub use self::bsd::*; 15602add0d91Sopenharmony_ci } else if #[cfg(any(target_os = "solaris", 15612add0d91Sopenharmony_ci target_os = "illumos"))] { 15622add0d91Sopenharmony_ci mod solarish; 15632add0d91Sopenharmony_ci pub use self::solarish::*; 15642add0d91Sopenharmony_ci } else if #[cfg(target_os = "haiku")] { 15652add0d91Sopenharmony_ci mod haiku; 15662add0d91Sopenharmony_ci pub use self::haiku::*; 15672add0d91Sopenharmony_ci } else if #[cfg(target_os = "hermit")] { 15682add0d91Sopenharmony_ci mod hermit; 15692add0d91Sopenharmony_ci pub use self::hermit::*; 15702add0d91Sopenharmony_ci } else if #[cfg(target_os = "redox")] { 15712add0d91Sopenharmony_ci mod redox; 15722add0d91Sopenharmony_ci pub use self::redox::*; 15732add0d91Sopenharmony_ci } else if #[cfg(target_os = "nto")] { 15742add0d91Sopenharmony_ci mod nto; 15752add0d91Sopenharmony_ci pub use self::nto::*; 15762add0d91Sopenharmony_ci } else { 15772add0d91Sopenharmony_ci // Unknown target_os 15782add0d91Sopenharmony_ci } 15792add0d91Sopenharmony_ci} 15802add0d91Sopenharmony_ci 15812add0d91Sopenharmony_cicfg_if! { 15822add0d91Sopenharmony_ci if #[cfg(libc_core_cvoid)] { 15832add0d91Sopenharmony_ci pub use ::ffi::c_void; 15842add0d91Sopenharmony_ci } else { 15852add0d91Sopenharmony_ci // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help 15862add0d91Sopenharmony_ci // enable more optimization opportunities around it recognizing things 15872add0d91Sopenharmony_ci // like malloc/free. 15882add0d91Sopenharmony_ci #[repr(u8)] 15892add0d91Sopenharmony_ci #[allow(missing_copy_implementations)] 15902add0d91Sopenharmony_ci #[allow(missing_debug_implementations)] 15912add0d91Sopenharmony_ci pub enum c_void { 15922add0d91Sopenharmony_ci // Two dummy variants so the #[repr] attribute can be used. 15932add0d91Sopenharmony_ci #[doc(hidden)] 15942add0d91Sopenharmony_ci __variant1, 15952add0d91Sopenharmony_ci #[doc(hidden)] 15962add0d91Sopenharmony_ci __variant2, 15972add0d91Sopenharmony_ci } 15982add0d91Sopenharmony_ci } 15992add0d91Sopenharmony_ci} 16002add0d91Sopenharmony_ci 16012add0d91Sopenharmony_cicfg_if! { 16022add0d91Sopenharmony_ci if #[cfg(libc_align)] { 16032add0d91Sopenharmony_ci mod align; 16042add0d91Sopenharmony_ci pub use self::align::*; 16052add0d91Sopenharmony_ci } else { 16062add0d91Sopenharmony_ci mod no_align; 16072add0d91Sopenharmony_ci pub use self::no_align::*; 16082add0d91Sopenharmony_ci } 16092add0d91Sopenharmony_ci} 1610