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