12add0d91Sopenharmony_cipub type off_t = i64;
22add0d91Sopenharmony_cipub type useconds_t = u32;
32add0d91Sopenharmony_cipub type blkcnt_t = i64;
42add0d91Sopenharmony_cipub type socklen_t = u32;
52add0d91Sopenharmony_cipub type sa_family_t = u8;
62add0d91Sopenharmony_cipub type pthread_t = ::uintptr_t;
72add0d91Sopenharmony_cipub type nfds_t = ::c_uint;
82add0d91Sopenharmony_cipub type regoff_t = off_t;
92add0d91Sopenharmony_ci
102add0d91Sopenharmony_cis! {
112add0d91Sopenharmony_ci    pub struct sockaddr {
122add0d91Sopenharmony_ci        pub sa_len: u8,
132add0d91Sopenharmony_ci        pub sa_family: sa_family_t,
142add0d91Sopenharmony_ci        pub sa_data: [::c_char; 14],
152add0d91Sopenharmony_ci    }
162add0d91Sopenharmony_ci
172add0d91Sopenharmony_ci    pub struct sockaddr_in6 {
182add0d91Sopenharmony_ci        pub sin6_len: u8,
192add0d91Sopenharmony_ci        pub sin6_family: sa_family_t,
202add0d91Sopenharmony_ci        pub sin6_port: ::in_port_t,
212add0d91Sopenharmony_ci        pub sin6_flowinfo: u32,
222add0d91Sopenharmony_ci        pub sin6_addr: ::in6_addr,
232add0d91Sopenharmony_ci        pub sin6_scope_id: u32,
242add0d91Sopenharmony_ci    }
252add0d91Sopenharmony_ci
262add0d91Sopenharmony_ci    pub struct passwd {
272add0d91Sopenharmony_ci        pub pw_name: *mut ::c_char,
282add0d91Sopenharmony_ci        pub pw_passwd: *mut ::c_char,
292add0d91Sopenharmony_ci        pub pw_uid: ::uid_t,
302add0d91Sopenharmony_ci        pub pw_gid: ::gid_t,
312add0d91Sopenharmony_ci        pub pw_change: ::time_t,
322add0d91Sopenharmony_ci        pub pw_class: *mut ::c_char,
332add0d91Sopenharmony_ci        pub pw_gecos: *mut ::c_char,
342add0d91Sopenharmony_ci        pub pw_dir: *mut ::c_char,
352add0d91Sopenharmony_ci        pub pw_shell: *mut ::c_char,
362add0d91Sopenharmony_ci        pub pw_expire: ::time_t,
372add0d91Sopenharmony_ci
382add0d91Sopenharmony_ci        #[cfg(not(any(target_os = "macos",
392add0d91Sopenharmony_ci                      target_os = "ios",
402add0d91Sopenharmony_ci                      target_os = "tvos",
412add0d91Sopenharmony_ci                      target_os = "watchos",
422add0d91Sopenharmony_ci                      target_os = "netbsd",
432add0d91Sopenharmony_ci                      target_os = "openbsd")))]
442add0d91Sopenharmony_ci        pub pw_fields: ::c_int,
452add0d91Sopenharmony_ci    }
462add0d91Sopenharmony_ci
472add0d91Sopenharmony_ci    pub struct ifaddrs {
482add0d91Sopenharmony_ci        pub ifa_next: *mut ifaddrs,
492add0d91Sopenharmony_ci        pub ifa_name: *mut ::c_char,
502add0d91Sopenharmony_ci        pub ifa_flags: ::c_uint,
512add0d91Sopenharmony_ci        pub ifa_addr: *mut ::sockaddr,
522add0d91Sopenharmony_ci        pub ifa_netmask: *mut ::sockaddr,
532add0d91Sopenharmony_ci        pub ifa_dstaddr: *mut ::sockaddr,
542add0d91Sopenharmony_ci        pub ifa_data: *mut ::c_void,
552add0d91Sopenharmony_ci        #[cfg(target_os = "netbsd")]
562add0d91Sopenharmony_ci        pub ifa_addrflags: ::c_uint
572add0d91Sopenharmony_ci    }
582add0d91Sopenharmony_ci
592add0d91Sopenharmony_ci    pub struct fd_set {
602add0d91Sopenharmony_ci        #[cfg(all(target_pointer_width = "64",
612add0d91Sopenharmony_ci                  any(target_os = "freebsd", target_os = "dragonfly")))]
622add0d91Sopenharmony_ci        fds_bits: [i64; FD_SETSIZE / 64],
632add0d91Sopenharmony_ci        #[cfg(not(all(target_pointer_width = "64",
642add0d91Sopenharmony_ci                      any(target_os = "freebsd", target_os = "dragonfly"))))]
652add0d91Sopenharmony_ci        fds_bits: [i32; FD_SETSIZE / 32],
662add0d91Sopenharmony_ci    }
672add0d91Sopenharmony_ci
682add0d91Sopenharmony_ci    pub struct tm {
692add0d91Sopenharmony_ci        pub tm_sec: ::c_int,
702add0d91Sopenharmony_ci        pub tm_min: ::c_int,
712add0d91Sopenharmony_ci        pub tm_hour: ::c_int,
722add0d91Sopenharmony_ci        pub tm_mday: ::c_int,
732add0d91Sopenharmony_ci        pub tm_mon: ::c_int,
742add0d91Sopenharmony_ci        pub tm_year: ::c_int,
752add0d91Sopenharmony_ci        pub tm_wday: ::c_int,
762add0d91Sopenharmony_ci        pub tm_yday: ::c_int,
772add0d91Sopenharmony_ci        pub tm_isdst: ::c_int,
782add0d91Sopenharmony_ci        pub tm_gmtoff: ::c_long,
792add0d91Sopenharmony_ci        pub tm_zone: *mut ::c_char,
802add0d91Sopenharmony_ci    }
812add0d91Sopenharmony_ci
822add0d91Sopenharmony_ci    pub struct msghdr {
832add0d91Sopenharmony_ci        pub msg_name: *mut ::c_void,
842add0d91Sopenharmony_ci        pub msg_namelen: ::socklen_t,
852add0d91Sopenharmony_ci        pub msg_iov: *mut ::iovec,
862add0d91Sopenharmony_ci        pub msg_iovlen: ::c_int,
872add0d91Sopenharmony_ci        pub msg_control: *mut ::c_void,
882add0d91Sopenharmony_ci        pub msg_controllen: ::socklen_t,
892add0d91Sopenharmony_ci        pub msg_flags: ::c_int,
902add0d91Sopenharmony_ci    }
912add0d91Sopenharmony_ci
922add0d91Sopenharmony_ci    pub struct cmsghdr {
932add0d91Sopenharmony_ci        pub cmsg_len: ::socklen_t,
942add0d91Sopenharmony_ci        pub cmsg_level: ::c_int,
952add0d91Sopenharmony_ci        pub cmsg_type: ::c_int,
962add0d91Sopenharmony_ci    }
972add0d91Sopenharmony_ci
982add0d91Sopenharmony_ci    pub struct fsid_t {
992add0d91Sopenharmony_ci        __fsid_val: [i32; 2],
1002add0d91Sopenharmony_ci    }
1012add0d91Sopenharmony_ci
1022add0d91Sopenharmony_ci    pub struct if_nameindex {
1032add0d91Sopenharmony_ci        pub if_index: ::c_uint,
1042add0d91Sopenharmony_ci        pub if_name: *mut ::c_char,
1052add0d91Sopenharmony_ci    }
1062add0d91Sopenharmony_ci
1072add0d91Sopenharmony_ci    pub struct regex_t {
1082add0d91Sopenharmony_ci        __re_magic: ::c_int,
1092add0d91Sopenharmony_ci        __re_nsub: ::size_t,
1102add0d91Sopenharmony_ci        __re_endp: *const ::c_char,
1112add0d91Sopenharmony_ci        __re_g: *mut ::c_void,
1122add0d91Sopenharmony_ci    }
1132add0d91Sopenharmony_ci
1142add0d91Sopenharmony_ci    pub struct regmatch_t {
1152add0d91Sopenharmony_ci        pub rm_so: regoff_t,
1162add0d91Sopenharmony_ci        pub rm_eo: regoff_t,
1172add0d91Sopenharmony_ci    }
1182add0d91Sopenharmony_ci
1192add0d91Sopenharmony_ci    pub struct option {
1202add0d91Sopenharmony_ci        pub name: *const ::c_char,
1212add0d91Sopenharmony_ci        pub has_arg: ::c_int,
1222add0d91Sopenharmony_ci        pub flag: *mut ::c_int,
1232add0d91Sopenharmony_ci        pub val: ::c_int,
1242add0d91Sopenharmony_ci    }
1252add0d91Sopenharmony_ci}
1262add0d91Sopenharmony_ci
1272add0d91Sopenharmony_cis_no_extra_traits! {
1282add0d91Sopenharmony_ci    pub struct sockaddr_un {
1292add0d91Sopenharmony_ci        pub sun_len: u8,
1302add0d91Sopenharmony_ci        pub sun_family: sa_family_t,
1312add0d91Sopenharmony_ci        pub sun_path: [c_char; 104]
1322add0d91Sopenharmony_ci    }
1332add0d91Sopenharmony_ci
1342add0d91Sopenharmony_ci    pub struct utsname {
1352add0d91Sopenharmony_ci        #[cfg(not(target_os = "dragonfly"))]
1362add0d91Sopenharmony_ci        pub sysname: [::c_char; 256],
1372add0d91Sopenharmony_ci        #[cfg(target_os = "dragonfly")]
1382add0d91Sopenharmony_ci        pub sysname: [::c_char; 32],
1392add0d91Sopenharmony_ci        #[cfg(not(target_os = "dragonfly"))]
1402add0d91Sopenharmony_ci        pub nodename: [::c_char; 256],
1412add0d91Sopenharmony_ci        #[cfg(target_os = "dragonfly")]
1422add0d91Sopenharmony_ci        pub nodename: [::c_char; 32],
1432add0d91Sopenharmony_ci        #[cfg(not(target_os = "dragonfly"))]
1442add0d91Sopenharmony_ci        pub release: [::c_char; 256],
1452add0d91Sopenharmony_ci        #[cfg(target_os = "dragonfly")]
1462add0d91Sopenharmony_ci        pub release: [::c_char; 32],
1472add0d91Sopenharmony_ci        #[cfg(not(target_os = "dragonfly"))]
1482add0d91Sopenharmony_ci        pub version: [::c_char; 256],
1492add0d91Sopenharmony_ci        #[cfg(target_os = "dragonfly")]
1502add0d91Sopenharmony_ci        pub version: [::c_char; 32],
1512add0d91Sopenharmony_ci        #[cfg(not(target_os = "dragonfly"))]
1522add0d91Sopenharmony_ci        pub machine: [::c_char; 256],
1532add0d91Sopenharmony_ci        #[cfg(target_os = "dragonfly")]
1542add0d91Sopenharmony_ci        pub machine: [::c_char; 32],
1552add0d91Sopenharmony_ci    }
1562add0d91Sopenharmony_ci
1572add0d91Sopenharmony_ci}
1582add0d91Sopenharmony_ci
1592add0d91Sopenharmony_cicfg_if! {
1602add0d91Sopenharmony_ci    if #[cfg(feature = "extra_traits")] {
1612add0d91Sopenharmony_ci        impl PartialEq for sockaddr_un {
1622add0d91Sopenharmony_ci            fn eq(&self, other: &sockaddr_un) -> bool {
1632add0d91Sopenharmony_ci                self.sun_len == other.sun_len
1642add0d91Sopenharmony_ci                    && self.sun_family == other.sun_family
1652add0d91Sopenharmony_ci                    && self
1662add0d91Sopenharmony_ci                    .sun_path
1672add0d91Sopenharmony_ci                    .iter()
1682add0d91Sopenharmony_ci                    .zip(other.sun_path.iter())
1692add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
1702add0d91Sopenharmony_ci            }
1712add0d91Sopenharmony_ci        }
1722add0d91Sopenharmony_ci
1732add0d91Sopenharmony_ci        impl Eq for sockaddr_un {}
1742add0d91Sopenharmony_ci
1752add0d91Sopenharmony_ci        impl ::fmt::Debug for sockaddr_un {
1762add0d91Sopenharmony_ci            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
1772add0d91Sopenharmony_ci                f.debug_struct("sockaddr_un")
1782add0d91Sopenharmony_ci                    .field("sun_len", &self.sun_len)
1792add0d91Sopenharmony_ci                    .field("sun_family", &self.sun_family)
1802add0d91Sopenharmony_ci                // FIXME: .field("sun_path", &self.sun_path)
1812add0d91Sopenharmony_ci                    .finish()
1822add0d91Sopenharmony_ci            }
1832add0d91Sopenharmony_ci        }
1842add0d91Sopenharmony_ci
1852add0d91Sopenharmony_ci        impl ::hash::Hash for sockaddr_un {
1862add0d91Sopenharmony_ci            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
1872add0d91Sopenharmony_ci                self.sun_len.hash(state);
1882add0d91Sopenharmony_ci                self.sun_family.hash(state);
1892add0d91Sopenharmony_ci                self.sun_path.hash(state);
1902add0d91Sopenharmony_ci            }
1912add0d91Sopenharmony_ci        }
1922add0d91Sopenharmony_ci
1932add0d91Sopenharmony_ci        impl PartialEq for utsname {
1942add0d91Sopenharmony_ci            fn eq(&self, other: &utsname) -> bool {
1952add0d91Sopenharmony_ci                self.sysname
1962add0d91Sopenharmony_ci                    .iter()
1972add0d91Sopenharmony_ci                    .zip(other.sysname.iter())
1982add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
1992add0d91Sopenharmony_ci                    && self
2002add0d91Sopenharmony_ci                    .nodename
2012add0d91Sopenharmony_ci                    .iter()
2022add0d91Sopenharmony_ci                    .zip(other.nodename.iter())
2032add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
2042add0d91Sopenharmony_ci                    && self
2052add0d91Sopenharmony_ci                    .release
2062add0d91Sopenharmony_ci                    .iter()
2072add0d91Sopenharmony_ci                    .zip(other.release.iter())
2082add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
2092add0d91Sopenharmony_ci                    && self
2102add0d91Sopenharmony_ci                    .version
2112add0d91Sopenharmony_ci                    .iter()
2122add0d91Sopenharmony_ci                    .zip(other.version.iter())
2132add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
2142add0d91Sopenharmony_ci                    && self
2152add0d91Sopenharmony_ci                    .machine
2162add0d91Sopenharmony_ci                    .iter()
2172add0d91Sopenharmony_ci                    .zip(other.machine.iter())
2182add0d91Sopenharmony_ci                    .all(|(a,b)| a == b)
2192add0d91Sopenharmony_ci            }
2202add0d91Sopenharmony_ci        }
2212add0d91Sopenharmony_ci
2222add0d91Sopenharmony_ci        impl Eq for utsname {}
2232add0d91Sopenharmony_ci
2242add0d91Sopenharmony_ci        impl ::fmt::Debug for utsname {
2252add0d91Sopenharmony_ci            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
2262add0d91Sopenharmony_ci                f.debug_struct("utsname")
2272add0d91Sopenharmony_ci                // FIXME: .field("sysname", &self.sysname)
2282add0d91Sopenharmony_ci                // FIXME: .field("nodename", &self.nodename)
2292add0d91Sopenharmony_ci                // FIXME: .field("release", &self.release)
2302add0d91Sopenharmony_ci                // FIXME: .field("version", &self.version)
2312add0d91Sopenharmony_ci                // FIXME: .field("machine", &self.machine)
2322add0d91Sopenharmony_ci                    .finish()
2332add0d91Sopenharmony_ci            }
2342add0d91Sopenharmony_ci        }
2352add0d91Sopenharmony_ci
2362add0d91Sopenharmony_ci        impl ::hash::Hash for utsname {
2372add0d91Sopenharmony_ci            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
2382add0d91Sopenharmony_ci                self.sysname.hash(state);
2392add0d91Sopenharmony_ci                self.nodename.hash(state);
2402add0d91Sopenharmony_ci                self.release.hash(state);
2412add0d91Sopenharmony_ci                self.version.hash(state);
2422add0d91Sopenharmony_ci                self.machine.hash(state);
2432add0d91Sopenharmony_ci            }
2442add0d91Sopenharmony_ci        }
2452add0d91Sopenharmony_ci    }
2462add0d91Sopenharmony_ci}
2472add0d91Sopenharmony_ci
2482add0d91Sopenharmony_cipub const LC_ALL: ::c_int = 0;
2492add0d91Sopenharmony_cipub const LC_COLLATE: ::c_int = 1;
2502add0d91Sopenharmony_cipub const LC_CTYPE: ::c_int = 2;
2512add0d91Sopenharmony_cipub const LC_MONETARY: ::c_int = 3;
2522add0d91Sopenharmony_cipub const LC_NUMERIC: ::c_int = 4;
2532add0d91Sopenharmony_cipub const LC_TIME: ::c_int = 5;
2542add0d91Sopenharmony_cipub const LC_MESSAGES: ::c_int = 6;
2552add0d91Sopenharmony_ci
2562add0d91Sopenharmony_cipub const FIOCLEX: ::c_ulong = 0x20006601;
2572add0d91Sopenharmony_cipub const FIONCLEX: ::c_ulong = 0x20006602;
2582add0d91Sopenharmony_cipub const FIONREAD: ::c_ulong = 0x4004667f;
2592add0d91Sopenharmony_cipub const FIONBIO: ::c_ulong = 0x8004667e;
2602add0d91Sopenharmony_cipub const FIOASYNC: ::c_ulong = 0x8004667d;
2612add0d91Sopenharmony_cipub const FIOSETOWN: ::c_ulong = 0x8004667c;
2622add0d91Sopenharmony_cipub const FIOGETOWN: ::c_ulong = 0x4004667b;
2632add0d91Sopenharmony_ci
2642add0d91Sopenharmony_cipub const PATH_MAX: ::c_int = 1024;
2652add0d91Sopenharmony_cipub const MAXPATHLEN: ::c_int = PATH_MAX;
2662add0d91Sopenharmony_ci
2672add0d91Sopenharmony_cipub const IOV_MAX: ::c_int = 1024;
2682add0d91Sopenharmony_ci
2692add0d91Sopenharmony_cipub const SA_ONSTACK: ::c_int = 0x0001;
2702add0d91Sopenharmony_cipub const SA_SIGINFO: ::c_int = 0x0040;
2712add0d91Sopenharmony_cipub const SA_RESTART: ::c_int = 0x0002;
2722add0d91Sopenharmony_cipub const SA_RESETHAND: ::c_int = 0x0004;
2732add0d91Sopenharmony_cipub const SA_NOCLDSTOP: ::c_int = 0x0008;
2742add0d91Sopenharmony_cipub const SA_NODEFER: ::c_int = 0x0010;
2752add0d91Sopenharmony_cipub const SA_NOCLDWAIT: ::c_int = 0x0020;
2762add0d91Sopenharmony_ci
2772add0d91Sopenharmony_cipub const SS_ONSTACK: ::c_int = 1;
2782add0d91Sopenharmony_cipub const SS_DISABLE: ::c_int = 4;
2792add0d91Sopenharmony_ci
2802add0d91Sopenharmony_cipub const SIGCHLD: ::c_int = 20;
2812add0d91Sopenharmony_cipub const SIGBUS: ::c_int = 10;
2822add0d91Sopenharmony_cipub const SIGUSR1: ::c_int = 30;
2832add0d91Sopenharmony_cipub const SIGUSR2: ::c_int = 31;
2842add0d91Sopenharmony_cipub const SIGCONT: ::c_int = 19;
2852add0d91Sopenharmony_cipub const SIGSTOP: ::c_int = 17;
2862add0d91Sopenharmony_cipub const SIGTSTP: ::c_int = 18;
2872add0d91Sopenharmony_cipub const SIGURG: ::c_int = 16;
2882add0d91Sopenharmony_cipub const SIGIO: ::c_int = 23;
2892add0d91Sopenharmony_cipub const SIGSYS: ::c_int = 12;
2902add0d91Sopenharmony_cipub const SIGTTIN: ::c_int = 21;
2912add0d91Sopenharmony_cipub const SIGTTOU: ::c_int = 22;
2922add0d91Sopenharmony_cipub const SIGXCPU: ::c_int = 24;
2932add0d91Sopenharmony_cipub const SIGXFSZ: ::c_int = 25;
2942add0d91Sopenharmony_cipub const SIGVTALRM: ::c_int = 26;
2952add0d91Sopenharmony_cipub const SIGPROF: ::c_int = 27;
2962add0d91Sopenharmony_cipub const SIGWINCH: ::c_int = 28;
2972add0d91Sopenharmony_cipub const SIGINFO: ::c_int = 29;
2982add0d91Sopenharmony_ci
2992add0d91Sopenharmony_cipub const SIG_SETMASK: ::c_int = 3;
3002add0d91Sopenharmony_cipub const SIG_BLOCK: ::c_int = 0x1;
3012add0d91Sopenharmony_cipub const SIG_UNBLOCK: ::c_int = 0x2;
3022add0d91Sopenharmony_ci
3032add0d91Sopenharmony_cipub const IP_TOS: ::c_int = 3;
3042add0d91Sopenharmony_cipub const IP_MULTICAST_IF: ::c_int = 9;
3052add0d91Sopenharmony_cipub const IP_MULTICAST_TTL: ::c_int = 10;
3062add0d91Sopenharmony_cipub const IP_MULTICAST_LOOP: ::c_int = 11;
3072add0d91Sopenharmony_ci
3082add0d91Sopenharmony_cipub const IPV6_UNICAST_HOPS: ::c_int = 4;
3092add0d91Sopenharmony_cipub const IPV6_MULTICAST_IF: ::c_int = 9;
3102add0d91Sopenharmony_cipub const IPV6_MULTICAST_HOPS: ::c_int = 10;
3112add0d91Sopenharmony_cipub const IPV6_MULTICAST_LOOP: ::c_int = 11;
3122add0d91Sopenharmony_cipub const IPV6_V6ONLY: ::c_int = 27;
3132add0d91Sopenharmony_ci
3142add0d91Sopenharmony_cipub const IPTOS_ECN_NOTECT: u8 = 0x00;
3152add0d91Sopenharmony_cipub const IPTOS_ECN_MASK: u8 = 0x03;
3162add0d91Sopenharmony_cipub const IPTOS_ECN_ECT1: u8 = 0x01;
3172add0d91Sopenharmony_cipub const IPTOS_ECN_ECT0: u8 = 0x02;
3182add0d91Sopenharmony_cipub const IPTOS_ECN_CE: u8 = 0x03;
3192add0d91Sopenharmony_ci
3202add0d91Sopenharmony_cipub const ST_RDONLY: ::c_ulong = 1;
3212add0d91Sopenharmony_ci
3222add0d91Sopenharmony_cipub const SCM_RIGHTS: ::c_int = 0x01;
3232add0d91Sopenharmony_ci
3242add0d91Sopenharmony_cipub const NCCS: usize = 20;
3252add0d91Sopenharmony_ci
3262add0d91Sopenharmony_cipub const O_ACCMODE: ::c_int = 0x3;
3272add0d91Sopenharmony_cipub const O_RDONLY: ::c_int = 0;
3282add0d91Sopenharmony_cipub const O_WRONLY: ::c_int = 1;
3292add0d91Sopenharmony_cipub const O_RDWR: ::c_int = 2;
3302add0d91Sopenharmony_cipub const O_APPEND: ::c_int = 8;
3312add0d91Sopenharmony_cipub const O_CREAT: ::c_int = 512;
3322add0d91Sopenharmony_cipub const O_TRUNC: ::c_int = 1024;
3332add0d91Sopenharmony_cipub const O_EXCL: ::c_int = 2048;
3342add0d91Sopenharmony_cipub const O_ASYNC: ::c_int = 0x40;
3352add0d91Sopenharmony_cipub const O_SYNC: ::c_int = 0x80;
3362add0d91Sopenharmony_cipub const O_NONBLOCK: ::c_int = 0x4;
3372add0d91Sopenharmony_cipub const O_NOFOLLOW: ::c_int = 0x100;
3382add0d91Sopenharmony_cipub const O_SHLOCK: ::c_int = 0x10;
3392add0d91Sopenharmony_cipub const O_EXLOCK: ::c_int = 0x20;
3402add0d91Sopenharmony_cipub const O_FSYNC: ::c_int = O_SYNC;
3412add0d91Sopenharmony_cipub const O_NDELAY: ::c_int = O_NONBLOCK;
3422add0d91Sopenharmony_ci
3432add0d91Sopenharmony_cipub const F_GETOWN: ::c_int = 5;
3442add0d91Sopenharmony_cipub const F_SETOWN: ::c_int = 6;
3452add0d91Sopenharmony_ci
3462add0d91Sopenharmony_cipub const F_RDLCK: ::c_short = 1;
3472add0d91Sopenharmony_cipub const F_UNLCK: ::c_short = 2;
3482add0d91Sopenharmony_cipub const F_WRLCK: ::c_short = 3;
3492add0d91Sopenharmony_ci
3502add0d91Sopenharmony_cipub const MNT_RDONLY: ::c_int = 0x00000001;
3512add0d91Sopenharmony_cipub const MNT_SYNCHRONOUS: ::c_int = 0x00000002;
3522add0d91Sopenharmony_cipub const MNT_NOEXEC: ::c_int = 0x00000004;
3532add0d91Sopenharmony_cipub const MNT_NOSUID: ::c_int = 0x00000008;
3542add0d91Sopenharmony_cipub const MNT_ASYNC: ::c_int = 0x00000040;
3552add0d91Sopenharmony_cipub const MNT_EXPORTED: ::c_int = 0x00000100;
3562add0d91Sopenharmony_cipub const MNT_UPDATE: ::c_int = 0x00010000;
3572add0d91Sopenharmony_cipub const MNT_RELOAD: ::c_int = 0x00040000;
3582add0d91Sopenharmony_cipub const MNT_FORCE: ::c_int = 0x00080000;
3592add0d91Sopenharmony_ci
3602add0d91Sopenharmony_cipub const Q_SYNC: ::c_int = 0x600;
3612add0d91Sopenharmony_cipub const Q_QUOTAON: ::c_int = 0x100;
3622add0d91Sopenharmony_cipub const Q_QUOTAOFF: ::c_int = 0x200;
3632add0d91Sopenharmony_ci
3642add0d91Sopenharmony_cipub const TCIOFF: ::c_int = 3;
3652add0d91Sopenharmony_cipub const TCION: ::c_int = 4;
3662add0d91Sopenharmony_cipub const TCOOFF: ::c_int = 1;
3672add0d91Sopenharmony_cipub const TCOON: ::c_int = 2;
3682add0d91Sopenharmony_cipub const TCIFLUSH: ::c_int = 1;
3692add0d91Sopenharmony_cipub const TCOFLUSH: ::c_int = 2;
3702add0d91Sopenharmony_cipub const TCIOFLUSH: ::c_int = 3;
3712add0d91Sopenharmony_cipub const TCSANOW: ::c_int = 0;
3722add0d91Sopenharmony_cipub const TCSADRAIN: ::c_int = 1;
3732add0d91Sopenharmony_cipub const TCSAFLUSH: ::c_int = 2;
3742add0d91Sopenharmony_cipub const VEOF: usize = 0;
3752add0d91Sopenharmony_cipub const VEOL: usize = 1;
3762add0d91Sopenharmony_cipub const VEOL2: usize = 2;
3772add0d91Sopenharmony_cipub const VERASE: usize = 3;
3782add0d91Sopenharmony_cipub const VWERASE: usize = 4;
3792add0d91Sopenharmony_cipub const VKILL: usize = 5;
3802add0d91Sopenharmony_cipub const VREPRINT: usize = 6;
3812add0d91Sopenharmony_cipub const VINTR: usize = 8;
3822add0d91Sopenharmony_cipub const VQUIT: usize = 9;
3832add0d91Sopenharmony_cipub const VSUSP: usize = 10;
3842add0d91Sopenharmony_cipub const VDSUSP: usize = 11;
3852add0d91Sopenharmony_cipub const VSTART: usize = 12;
3862add0d91Sopenharmony_cipub const VSTOP: usize = 13;
3872add0d91Sopenharmony_cipub const VLNEXT: usize = 14;
3882add0d91Sopenharmony_cipub const VDISCARD: usize = 15;
3892add0d91Sopenharmony_cipub const VMIN: usize = 16;
3902add0d91Sopenharmony_cipub const VTIME: usize = 17;
3912add0d91Sopenharmony_cipub const VSTATUS: usize = 18;
3922add0d91Sopenharmony_cipub const _POSIX_VDISABLE: ::cc_t = 0xff;
3932add0d91Sopenharmony_cipub const IGNBRK: ::tcflag_t = 0x00000001;
3942add0d91Sopenharmony_cipub const BRKINT: ::tcflag_t = 0x00000002;
3952add0d91Sopenharmony_cipub const IGNPAR: ::tcflag_t = 0x00000004;
3962add0d91Sopenharmony_cipub const PARMRK: ::tcflag_t = 0x00000008;
3972add0d91Sopenharmony_cipub const INPCK: ::tcflag_t = 0x00000010;
3982add0d91Sopenharmony_cipub const ISTRIP: ::tcflag_t = 0x00000020;
3992add0d91Sopenharmony_cipub const INLCR: ::tcflag_t = 0x00000040;
4002add0d91Sopenharmony_cipub const IGNCR: ::tcflag_t = 0x00000080;
4012add0d91Sopenharmony_cipub const ICRNL: ::tcflag_t = 0x00000100;
4022add0d91Sopenharmony_cipub const IXON: ::tcflag_t = 0x00000200;
4032add0d91Sopenharmony_cipub const IXOFF: ::tcflag_t = 0x00000400;
4042add0d91Sopenharmony_cipub const IXANY: ::tcflag_t = 0x00000800;
4052add0d91Sopenharmony_cipub const IMAXBEL: ::tcflag_t = 0x00002000;
4062add0d91Sopenharmony_cipub const OPOST: ::tcflag_t = 0x1;
4072add0d91Sopenharmony_cipub const ONLCR: ::tcflag_t = 0x2;
4082add0d91Sopenharmony_cipub const OXTABS: ::tcflag_t = 0x4;
4092add0d91Sopenharmony_cipub const ONOEOT: ::tcflag_t = 0x8;
4102add0d91Sopenharmony_cipub const CIGNORE: ::tcflag_t = 0x00000001;
4112add0d91Sopenharmony_cipub const CSIZE: ::tcflag_t = 0x00000300;
4122add0d91Sopenharmony_cipub const CS5: ::tcflag_t = 0x00000000;
4132add0d91Sopenharmony_cipub const CS6: ::tcflag_t = 0x00000100;
4142add0d91Sopenharmony_cipub const CS7: ::tcflag_t = 0x00000200;
4152add0d91Sopenharmony_cipub const CS8: ::tcflag_t = 0x00000300;
4162add0d91Sopenharmony_cipub const CSTOPB: ::tcflag_t = 0x00000400;
4172add0d91Sopenharmony_cipub const CREAD: ::tcflag_t = 0x00000800;
4182add0d91Sopenharmony_cipub const PARENB: ::tcflag_t = 0x00001000;
4192add0d91Sopenharmony_cipub const PARODD: ::tcflag_t = 0x00002000;
4202add0d91Sopenharmony_cipub const HUPCL: ::tcflag_t = 0x00004000;
4212add0d91Sopenharmony_cipub const CLOCAL: ::tcflag_t = 0x00008000;
4222add0d91Sopenharmony_cipub const ECHOKE: ::tcflag_t = 0x00000001;
4232add0d91Sopenharmony_cipub const ECHOE: ::tcflag_t = 0x00000002;
4242add0d91Sopenharmony_cipub const ECHOK: ::tcflag_t = 0x00000004;
4252add0d91Sopenharmony_cipub const ECHO: ::tcflag_t = 0x00000008;
4262add0d91Sopenharmony_cipub const ECHONL: ::tcflag_t = 0x00000010;
4272add0d91Sopenharmony_cipub const ECHOPRT: ::tcflag_t = 0x00000020;
4282add0d91Sopenharmony_cipub const ECHOCTL: ::tcflag_t = 0x00000040;
4292add0d91Sopenharmony_cipub const ISIG: ::tcflag_t = 0x00000080;
4302add0d91Sopenharmony_cipub const ICANON: ::tcflag_t = 0x00000100;
4312add0d91Sopenharmony_cipub const ALTWERASE: ::tcflag_t = 0x00000200;
4322add0d91Sopenharmony_cipub const IEXTEN: ::tcflag_t = 0x00000400;
4332add0d91Sopenharmony_cipub const EXTPROC: ::tcflag_t = 0x00000800;
4342add0d91Sopenharmony_cipub const TOSTOP: ::tcflag_t = 0x00400000;
4352add0d91Sopenharmony_cipub const FLUSHO: ::tcflag_t = 0x00800000;
4362add0d91Sopenharmony_cipub const NOKERNINFO: ::tcflag_t = 0x02000000;
4372add0d91Sopenharmony_cipub const PENDIN: ::tcflag_t = 0x20000000;
4382add0d91Sopenharmony_cipub const NOFLSH: ::tcflag_t = 0x80000000;
4392add0d91Sopenharmony_cipub const MDMBUF: ::tcflag_t = 0x00100000;
4402add0d91Sopenharmony_ci
4412add0d91Sopenharmony_cipub const WNOHANG: ::c_int = 0x00000001;
4422add0d91Sopenharmony_cipub const WUNTRACED: ::c_int = 0x00000002;
4432add0d91Sopenharmony_ci
4442add0d91Sopenharmony_cipub const RTLD_LAZY: ::c_int = 0x1;
4452add0d91Sopenharmony_cipub const RTLD_NOW: ::c_int = 0x2;
4462add0d91Sopenharmony_cipub const RTLD_NEXT: *mut ::c_void = -1isize as *mut ::c_void;
4472add0d91Sopenharmony_cipub const RTLD_DEFAULT: *mut ::c_void = -2isize as *mut ::c_void;
4482add0d91Sopenharmony_cipub const RTLD_SELF: *mut ::c_void = -3isize as *mut ::c_void;
4492add0d91Sopenharmony_ci
4502add0d91Sopenharmony_cipub const LOG_CRON: ::c_int = 9 << 3;
4512add0d91Sopenharmony_cipub const LOG_AUTHPRIV: ::c_int = 10 << 3;
4522add0d91Sopenharmony_cipub const LOG_FTP: ::c_int = 11 << 3;
4532add0d91Sopenharmony_cipub const LOG_PERROR: ::c_int = 0x20;
4542add0d91Sopenharmony_ci
4552add0d91Sopenharmony_cipub const TCP_NODELAY: ::c_int = 1;
4562add0d91Sopenharmony_cipub const TCP_MAXSEG: ::c_int = 2;
4572add0d91Sopenharmony_ci
4582add0d91Sopenharmony_cipub const PIPE_BUF: usize = 512;
4592add0d91Sopenharmony_ci
4602add0d91Sopenharmony_ci// si_code values for SIGBUS signal
4612add0d91Sopenharmony_cipub const BUS_ADRALN: ::c_int = 1;
4622add0d91Sopenharmony_cipub const BUS_ADRERR: ::c_int = 2;
4632add0d91Sopenharmony_cipub const BUS_OBJERR: ::c_int = 3;
4642add0d91Sopenharmony_ci
4652add0d91Sopenharmony_ci// si_code values for SIGCHLD signal
4662add0d91Sopenharmony_cipub const CLD_EXITED: ::c_int = 1;
4672add0d91Sopenharmony_cipub const CLD_KILLED: ::c_int = 2;
4682add0d91Sopenharmony_cipub const CLD_DUMPED: ::c_int = 3;
4692add0d91Sopenharmony_cipub const CLD_TRAPPED: ::c_int = 4;
4702add0d91Sopenharmony_cipub const CLD_STOPPED: ::c_int = 5;
4712add0d91Sopenharmony_cipub const CLD_CONTINUED: ::c_int = 6;
4722add0d91Sopenharmony_ci
4732add0d91Sopenharmony_cipub const POLLIN: ::c_short = 0x1;
4742add0d91Sopenharmony_cipub const POLLPRI: ::c_short = 0x2;
4752add0d91Sopenharmony_cipub const POLLOUT: ::c_short = 0x4;
4762add0d91Sopenharmony_cipub const POLLERR: ::c_short = 0x8;
4772add0d91Sopenharmony_cipub const POLLHUP: ::c_short = 0x10;
4782add0d91Sopenharmony_cipub const POLLNVAL: ::c_short = 0x20;
4792add0d91Sopenharmony_cipub const POLLRDNORM: ::c_short = 0x040;
4802add0d91Sopenharmony_cipub const POLLWRNORM: ::c_short = 0x004;
4812add0d91Sopenharmony_cipub const POLLRDBAND: ::c_short = 0x080;
4822add0d91Sopenharmony_cipub const POLLWRBAND: ::c_short = 0x100;
4832add0d91Sopenharmony_ci
4842add0d91Sopenharmony_cipub const BIOCGBLEN: ::c_ulong = 0x40044266;
4852add0d91Sopenharmony_cipub const BIOCSBLEN: ::c_ulong = 0xc0044266;
4862add0d91Sopenharmony_cipub const BIOCFLUSH: ::c_uint = 0x20004268;
4872add0d91Sopenharmony_cipub const BIOCPROMISC: ::c_uint = 0x20004269;
4882add0d91Sopenharmony_cipub const BIOCGDLT: ::c_ulong = 0x4004426a;
4892add0d91Sopenharmony_cipub const BIOCGETIF: ::c_ulong = 0x4020426b;
4902add0d91Sopenharmony_cipub const BIOCSETIF: ::c_ulong = 0x8020426c;
4912add0d91Sopenharmony_cipub const BIOCGSTATS: ::c_ulong = 0x4008426f;
4922add0d91Sopenharmony_cipub const BIOCIMMEDIATE: ::c_ulong = 0x80044270;
4932add0d91Sopenharmony_cipub const BIOCVERSION: ::c_ulong = 0x40044271;
4942add0d91Sopenharmony_cipub const BIOCGHDRCMPLT: ::c_ulong = 0x40044274;
4952add0d91Sopenharmony_cipub const BIOCSHDRCMPLT: ::c_ulong = 0x80044275;
4962add0d91Sopenharmony_cipub const SIOCGIFADDR: ::c_ulong = 0xc0206921;
4972add0d91Sopenharmony_ci
4982add0d91Sopenharmony_cipub const REG_BASIC: ::c_int = 0o0000;
4992add0d91Sopenharmony_cipub const REG_EXTENDED: ::c_int = 0o0001;
5002add0d91Sopenharmony_cipub const REG_ICASE: ::c_int = 0o0002;
5012add0d91Sopenharmony_cipub const REG_NOSUB: ::c_int = 0o0004;
5022add0d91Sopenharmony_cipub const REG_NEWLINE: ::c_int = 0o0010;
5032add0d91Sopenharmony_cipub const REG_NOSPEC: ::c_int = 0o0020;
5042add0d91Sopenharmony_cipub const REG_PEND: ::c_int = 0o0040;
5052add0d91Sopenharmony_cipub const REG_DUMP: ::c_int = 0o0200;
5062add0d91Sopenharmony_ci
5072add0d91Sopenharmony_cipub const REG_NOMATCH: ::c_int = 1;
5082add0d91Sopenharmony_cipub const REG_BADPAT: ::c_int = 2;
5092add0d91Sopenharmony_cipub const REG_ECOLLATE: ::c_int = 3;
5102add0d91Sopenharmony_cipub const REG_ECTYPE: ::c_int = 4;
5112add0d91Sopenharmony_cipub const REG_EESCAPE: ::c_int = 5;
5122add0d91Sopenharmony_cipub const REG_ESUBREG: ::c_int = 6;
5132add0d91Sopenharmony_cipub const REG_EBRACK: ::c_int = 7;
5142add0d91Sopenharmony_cipub const REG_EPAREN: ::c_int = 8;
5152add0d91Sopenharmony_cipub const REG_EBRACE: ::c_int = 9;
5162add0d91Sopenharmony_cipub const REG_BADBR: ::c_int = 10;
5172add0d91Sopenharmony_cipub const REG_ERANGE: ::c_int = 11;
5182add0d91Sopenharmony_cipub const REG_ESPACE: ::c_int = 12;
5192add0d91Sopenharmony_cipub const REG_BADRPT: ::c_int = 13;
5202add0d91Sopenharmony_cipub const REG_EMPTY: ::c_int = 14;
5212add0d91Sopenharmony_cipub const REG_ASSERT: ::c_int = 15;
5222add0d91Sopenharmony_cipub const REG_INVARG: ::c_int = 16;
5232add0d91Sopenharmony_cipub const REG_ATOI: ::c_int = 255;
5242add0d91Sopenharmony_cipub const REG_ITOA: ::c_int = 0o0400;
5252add0d91Sopenharmony_ci
5262add0d91Sopenharmony_cipub const REG_NOTBOL: ::c_int = 0o00001;
5272add0d91Sopenharmony_cipub const REG_NOTEOL: ::c_int = 0o00002;
5282add0d91Sopenharmony_cipub const REG_STARTEND: ::c_int = 0o00004;
5292add0d91Sopenharmony_cipub const REG_TRACE: ::c_int = 0o00400;
5302add0d91Sopenharmony_cipub const REG_LARGE: ::c_int = 0o01000;
5312add0d91Sopenharmony_cipub const REG_BACKR: ::c_int = 0o02000;
5322add0d91Sopenharmony_ci
5332add0d91Sopenharmony_cipub const TIOCCBRK: ::c_uint = 0x2000747a;
5342add0d91Sopenharmony_cipub const TIOCSBRK: ::c_uint = 0x2000747b;
5352add0d91Sopenharmony_ci
5362add0d91Sopenharmony_cipub const PRIO_PROCESS: ::c_int = 0;
5372add0d91Sopenharmony_cipub const PRIO_PGRP: ::c_int = 1;
5382add0d91Sopenharmony_cipub const PRIO_USER: ::c_int = 2;
5392add0d91Sopenharmony_ci
5402add0d91Sopenharmony_cipub const ITIMER_REAL: ::c_int = 0;
5412add0d91Sopenharmony_cipub const ITIMER_VIRTUAL: ::c_int = 1;
5422add0d91Sopenharmony_cipub const ITIMER_PROF: ::c_int = 2;
5432add0d91Sopenharmony_ci
5442add0d91Sopenharmony_cif! {
5452add0d91Sopenharmony_ci    pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr {
5462add0d91Sopenharmony_ci        if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() {
5472add0d91Sopenharmony_ci            (*mhdr).msg_control as *mut ::cmsghdr
5482add0d91Sopenharmony_ci        } else {
5492add0d91Sopenharmony_ci            0 as *mut ::cmsghdr
5502add0d91Sopenharmony_ci        }
5512add0d91Sopenharmony_ci    }
5522add0d91Sopenharmony_ci
5532add0d91Sopenharmony_ci    pub fn FD_CLR(fd: ::c_int, set: *mut fd_set) -> () {
5542add0d91Sopenharmony_ci        let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
5552add0d91Sopenharmony_ci        let fd = fd as usize;
5562add0d91Sopenharmony_ci        (*set).fds_bits[fd / bits] &= !(1 << (fd % bits));
5572add0d91Sopenharmony_ci        return
5582add0d91Sopenharmony_ci    }
5592add0d91Sopenharmony_ci
5602add0d91Sopenharmony_ci    pub fn FD_ISSET(fd: ::c_int, set: *const fd_set) -> bool {
5612add0d91Sopenharmony_ci        let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
5622add0d91Sopenharmony_ci        let fd = fd as usize;
5632add0d91Sopenharmony_ci        return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0
5642add0d91Sopenharmony_ci    }
5652add0d91Sopenharmony_ci
5662add0d91Sopenharmony_ci    pub fn FD_SET(fd: ::c_int, set: *mut fd_set) -> () {
5672add0d91Sopenharmony_ci        let bits = ::mem::size_of_val(&(*set).fds_bits[0]) * 8;
5682add0d91Sopenharmony_ci        let fd = fd as usize;
5692add0d91Sopenharmony_ci        (*set).fds_bits[fd / bits] |= 1 << (fd % bits);
5702add0d91Sopenharmony_ci        return
5712add0d91Sopenharmony_ci    }
5722add0d91Sopenharmony_ci
5732add0d91Sopenharmony_ci    pub fn FD_ZERO(set: *mut fd_set) -> () {
5742add0d91Sopenharmony_ci        for slot in (*set).fds_bits.iter_mut() {
5752add0d91Sopenharmony_ci            *slot = 0;
5762add0d91Sopenharmony_ci        }
5772add0d91Sopenharmony_ci    }
5782add0d91Sopenharmony_ci}
5792add0d91Sopenharmony_ci
5802add0d91Sopenharmony_cisafe_f! {
5812add0d91Sopenharmony_ci    pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int {
5822add0d91Sopenharmony_ci        status & 0o177
5832add0d91Sopenharmony_ci    }
5842add0d91Sopenharmony_ci
5852add0d91Sopenharmony_ci    pub {const} fn WIFEXITED(status: ::c_int) -> bool {
5862add0d91Sopenharmony_ci        (status & 0o177) == 0
5872add0d91Sopenharmony_ci    }
5882add0d91Sopenharmony_ci
5892add0d91Sopenharmony_ci    pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int {
5902add0d91Sopenharmony_ci        status >> 8
5912add0d91Sopenharmony_ci    }
5922add0d91Sopenharmony_ci
5932add0d91Sopenharmony_ci    pub {const} fn WCOREDUMP(status: ::c_int) -> bool {
5942add0d91Sopenharmony_ci        (status & 0o200) != 0
5952add0d91Sopenharmony_ci    }
5962add0d91Sopenharmony_ci
5972add0d91Sopenharmony_ci    pub {const} fn QCMD(cmd: ::c_int, type_: ::c_int) -> ::c_int {
5982add0d91Sopenharmony_ci        (cmd << 8) | (type_ & 0x00ff)
5992add0d91Sopenharmony_ci    }
6002add0d91Sopenharmony_ci}
6012add0d91Sopenharmony_ci
6022add0d91Sopenharmony_ciextern "C" {
6032add0d91Sopenharmony_ci    #[cfg_attr(
6042add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
6052add0d91Sopenharmony_ci        link_name = "getrlimit$UNIX2003"
6062add0d91Sopenharmony_ci    )]
6072add0d91Sopenharmony_ci    pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int;
6082add0d91Sopenharmony_ci    #[cfg_attr(
6092add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
6102add0d91Sopenharmony_ci        link_name = "setrlimit$UNIX2003"
6112add0d91Sopenharmony_ci    )]
6122add0d91Sopenharmony_ci    pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int;
6132add0d91Sopenharmony_ci
6142add0d91Sopenharmony_ci    pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
6152add0d91Sopenharmony_ci    pub fn abs(i: ::c_int) -> ::c_int;
6162add0d91Sopenharmony_ci    pub fn labs(i: ::c_long) -> ::c_long;
6172add0d91Sopenharmony_ci    #[cfg_attr(
6182add0d91Sopenharmony_ci        all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)),
6192add0d91Sopenharmony_ci        link_name = "rand@FBSD_1.0"
6202add0d91Sopenharmony_ci    )]
6212add0d91Sopenharmony_ci    pub fn rand() -> ::c_int;
6222add0d91Sopenharmony_ci    #[cfg_attr(
6232add0d91Sopenharmony_ci        all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)),
6242add0d91Sopenharmony_ci        link_name = "srand@FBSD_1.0"
6252add0d91Sopenharmony_ci    )]
6262add0d91Sopenharmony_ci    pub fn srand(seed: ::c_uint);
6272add0d91Sopenharmony_ci
6282add0d91Sopenharmony_ci    pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int;
6292add0d91Sopenharmony_ci    pub fn freeifaddrs(ifa: *mut ::ifaddrs);
6302add0d91Sopenharmony_ci    pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int;
6312add0d91Sopenharmony_ci    pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
6322add0d91Sopenharmony_ci    pub fn kqueue() -> ::c_int;
6332add0d91Sopenharmony_ci    pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int;
6342add0d91Sopenharmony_ci    pub fn syscall(num: ::c_int, ...) -> ::c_int;
6352add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__getpwent50")]
6362add0d91Sopenharmony_ci    pub fn getpwent() -> *mut passwd;
6372add0d91Sopenharmony_ci    pub fn setpwent();
6382add0d91Sopenharmony_ci    pub fn endpwent();
6392add0d91Sopenharmony_ci    pub fn endgrent();
6402add0d91Sopenharmony_ci    pub fn getgrent() -> *mut ::group;
6412add0d91Sopenharmony_ci
6422add0d91Sopenharmony_ci    pub fn getprogname() -> *const ::c_char;
6432add0d91Sopenharmony_ci    pub fn setprogname(name: *const ::c_char);
6442add0d91Sopenharmony_ci    pub fn getloadavg(loadavg: *mut ::c_double, nelem: ::c_int) -> ::c_int;
6452add0d91Sopenharmony_ci    pub fn if_nameindex() -> *mut if_nameindex;
6462add0d91Sopenharmony_ci    pub fn if_freenameindex(ptr: *mut if_nameindex);
6472add0d91Sopenharmony_ci
6482add0d91Sopenharmony_ci    pub fn getpeereid(socket: ::c_int, euid: *mut ::uid_t, egid: *mut ::gid_t) -> ::c_int;
6492add0d91Sopenharmony_ci
6502add0d91Sopenharmony_ci    #[cfg_attr(
6512add0d91Sopenharmony_ci        all(target_os = "macos", not(target_arch = "aarch64")),
6522add0d91Sopenharmony_ci        link_name = "glob$INODE64"
6532add0d91Sopenharmony_ci    )]
6542add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__glob30")]
6552add0d91Sopenharmony_ci    #[cfg_attr(
6562add0d91Sopenharmony_ci        all(target_os = "freebsd", any(freebsd11, freebsd10)),
6572add0d91Sopenharmony_ci        link_name = "glob@FBSD_1.0"
6582add0d91Sopenharmony_ci    )]
6592add0d91Sopenharmony_ci    pub fn glob(
6602add0d91Sopenharmony_ci        pattern: *const ::c_char,
6612add0d91Sopenharmony_ci        flags: ::c_int,
6622add0d91Sopenharmony_ci        errfunc: ::Option<extern "C" fn(epath: *const ::c_char, errno: ::c_int) -> ::c_int>,
6632add0d91Sopenharmony_ci        pglob: *mut ::glob_t,
6642add0d91Sopenharmony_ci    ) -> ::c_int;
6652add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__globfree30")]
6662add0d91Sopenharmony_ci    #[cfg_attr(
6672add0d91Sopenharmony_ci        all(target_os = "freebsd", any(freebsd11, freebsd10)),
6682add0d91Sopenharmony_ci        link_name = "globfree@FBSD_1.0"
6692add0d91Sopenharmony_ci    )]
6702add0d91Sopenharmony_ci    pub fn globfree(pglob: *mut ::glob_t);
6712add0d91Sopenharmony_ci
6722add0d91Sopenharmony_ci    pub fn posix_madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
6732add0d91Sopenharmony_ci
6742add0d91Sopenharmony_ci    pub fn shm_unlink(name: *const ::c_char) -> ::c_int;
6752add0d91Sopenharmony_ci
6762add0d91Sopenharmony_ci    #[cfg_attr(
6772add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86_64"),
6782add0d91Sopenharmony_ci        link_name = "seekdir$INODE64"
6792add0d91Sopenharmony_ci    )]
6802add0d91Sopenharmony_ci    #[cfg_attr(
6812add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
6822add0d91Sopenharmony_ci        link_name = "seekdir$INODE64$UNIX2003"
6832add0d91Sopenharmony_ci    )]
6842add0d91Sopenharmony_ci    pub fn seekdir(dirp: *mut ::DIR, loc: ::c_long);
6852add0d91Sopenharmony_ci
6862add0d91Sopenharmony_ci    #[cfg_attr(
6872add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86_64"),
6882add0d91Sopenharmony_ci        link_name = "telldir$INODE64"
6892add0d91Sopenharmony_ci    )]
6902add0d91Sopenharmony_ci    #[cfg_attr(
6912add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
6922add0d91Sopenharmony_ci        link_name = "telldir$INODE64$UNIX2003"
6932add0d91Sopenharmony_ci    )]
6942add0d91Sopenharmony_ci    pub fn telldir(dirp: *mut ::DIR) -> ::c_long;
6952add0d91Sopenharmony_ci    pub fn madvise(addr: *mut ::c_void, len: ::size_t, advice: ::c_int) -> ::c_int;
6962add0d91Sopenharmony_ci
6972add0d91Sopenharmony_ci    #[cfg_attr(
6982add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
6992add0d91Sopenharmony_ci        link_name = "msync$UNIX2003"
7002add0d91Sopenharmony_ci    )]
7012add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__msync13")]
7022add0d91Sopenharmony_ci    pub fn msync(addr: *mut ::c_void, len: ::size_t, flags: ::c_int) -> ::c_int;
7032add0d91Sopenharmony_ci
7042add0d91Sopenharmony_ci    #[cfg_attr(
7052add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7062add0d91Sopenharmony_ci        link_name = "recvfrom$UNIX2003"
7072add0d91Sopenharmony_ci    )]
7082add0d91Sopenharmony_ci    pub fn recvfrom(
7092add0d91Sopenharmony_ci        socket: ::c_int,
7102add0d91Sopenharmony_ci        buf: *mut ::c_void,
7112add0d91Sopenharmony_ci        len: ::size_t,
7122add0d91Sopenharmony_ci        flags: ::c_int,
7132add0d91Sopenharmony_ci        addr: *mut ::sockaddr,
7142add0d91Sopenharmony_ci        addrlen: *mut ::socklen_t,
7152add0d91Sopenharmony_ci    ) -> ::ssize_t;
7162add0d91Sopenharmony_ci    pub fn mkstemps(template: *mut ::c_char, suffixlen: ::c_int) -> ::c_int;
7172add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__futimes50")]
7182add0d91Sopenharmony_ci    pub fn futimes(fd: ::c_int, times: *const ::timeval) -> ::c_int;
7192add0d91Sopenharmony_ci    pub fn nl_langinfo(item: ::nl_item) -> *mut ::c_char;
7202add0d91Sopenharmony_ci
7212add0d91Sopenharmony_ci    #[cfg_attr(
7222add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7232add0d91Sopenharmony_ci        link_name = "bind$UNIX2003"
7242add0d91Sopenharmony_ci    )]
7252add0d91Sopenharmony_ci    pub fn bind(socket: ::c_int, address: *const ::sockaddr, address_len: ::socklen_t) -> ::c_int;
7262add0d91Sopenharmony_ci
7272add0d91Sopenharmony_ci    #[cfg_attr(
7282add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7292add0d91Sopenharmony_ci        link_name = "writev$UNIX2003"
7302add0d91Sopenharmony_ci    )]
7312add0d91Sopenharmony_ci    pub fn writev(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
7322add0d91Sopenharmony_ci    #[cfg_attr(
7332add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7342add0d91Sopenharmony_ci        link_name = "readv$UNIX2003"
7352add0d91Sopenharmony_ci    )]
7362add0d91Sopenharmony_ci    pub fn readv(fd: ::c_int, iov: *const ::iovec, iovcnt: ::c_int) -> ::ssize_t;
7372add0d91Sopenharmony_ci
7382add0d91Sopenharmony_ci    #[cfg_attr(
7392add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7402add0d91Sopenharmony_ci        link_name = "sendmsg$UNIX2003"
7412add0d91Sopenharmony_ci    )]
7422add0d91Sopenharmony_ci    pub fn sendmsg(fd: ::c_int, msg: *const ::msghdr, flags: ::c_int) -> ::ssize_t;
7432add0d91Sopenharmony_ci    #[cfg_attr(
7442add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7452add0d91Sopenharmony_ci        link_name = "recvmsg$UNIX2003"
7462add0d91Sopenharmony_ci    )]
7472add0d91Sopenharmony_ci    pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int) -> ::ssize_t;
7482add0d91Sopenharmony_ci
7492add0d91Sopenharmony_ci    pub fn sync();
7502add0d91Sopenharmony_ci    pub fn getgrgid_r(
7512add0d91Sopenharmony_ci        gid: ::gid_t,
7522add0d91Sopenharmony_ci        grp: *mut ::group,
7532add0d91Sopenharmony_ci        buf: *mut ::c_char,
7542add0d91Sopenharmony_ci        buflen: ::size_t,
7552add0d91Sopenharmony_ci        result: *mut *mut ::group,
7562add0d91Sopenharmony_ci    ) -> ::c_int;
7572add0d91Sopenharmony_ci    #[cfg_attr(
7582add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7592add0d91Sopenharmony_ci        link_name = "sigaltstack$UNIX2003"
7602add0d91Sopenharmony_ci    )]
7612add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")]
7622add0d91Sopenharmony_ci    pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int;
7632add0d91Sopenharmony_ci    pub fn sem_close(sem: *mut sem_t) -> ::c_int;
7642add0d91Sopenharmony_ci    pub fn getdtablesize() -> ::c_int;
7652add0d91Sopenharmony_ci    pub fn getgrnam_r(
7662add0d91Sopenharmony_ci        name: *const ::c_char,
7672add0d91Sopenharmony_ci        grp: *mut ::group,
7682add0d91Sopenharmony_ci        buf: *mut ::c_char,
7692add0d91Sopenharmony_ci        buflen: ::size_t,
7702add0d91Sopenharmony_ci        result: *mut *mut ::group,
7712add0d91Sopenharmony_ci    ) -> ::c_int;
7722add0d91Sopenharmony_ci    #[cfg_attr(
7732add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7742add0d91Sopenharmony_ci        link_name = "pthread_sigmask$UNIX2003"
7752add0d91Sopenharmony_ci    )]
7762add0d91Sopenharmony_ci    pub fn pthread_sigmask(how: ::c_int, set: *const sigset_t, oldset: *mut sigset_t) -> ::c_int;
7772add0d91Sopenharmony_ci    pub fn sem_open(name: *const ::c_char, oflag: ::c_int, ...) -> *mut sem_t;
7782add0d91Sopenharmony_ci    pub fn getgrnam(name: *const ::c_char) -> *mut ::group;
7792add0d91Sopenharmony_ci    #[cfg_attr(
7802add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
7812add0d91Sopenharmony_ci        link_name = "pthread_cancel$UNIX2003"
7822add0d91Sopenharmony_ci    )]
7832add0d91Sopenharmony_ci    pub fn pthread_cancel(thread: ::pthread_t) -> ::c_int;
7842add0d91Sopenharmony_ci    pub fn pthread_kill(thread: ::pthread_t, sig: ::c_int) -> ::c_int;
7852add0d91Sopenharmony_ci    pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int;
7862add0d91Sopenharmony_ci    pub fn sched_get_priority_max(policy: ::c_int) -> ::c_int;
7872add0d91Sopenharmony_ci    pub fn sem_unlink(name: *const ::c_char) -> ::c_int;
7882add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__getpwnam_r50")]
7892add0d91Sopenharmony_ci    pub fn getpwnam_r(
7902add0d91Sopenharmony_ci        name: *const ::c_char,
7912add0d91Sopenharmony_ci        pwd: *mut passwd,
7922add0d91Sopenharmony_ci        buf: *mut ::c_char,
7932add0d91Sopenharmony_ci        buflen: ::size_t,
7942add0d91Sopenharmony_ci        result: *mut *mut passwd,
7952add0d91Sopenharmony_ci    ) -> ::c_int;
7962add0d91Sopenharmony_ci    #[cfg_attr(target_os = "netbsd", link_name = "__getpwuid_r50")]
7972add0d91Sopenharmony_ci    pub fn getpwuid_r(
7982add0d91Sopenharmony_ci        uid: ::uid_t,
7992add0d91Sopenharmony_ci        pwd: *mut passwd,
8002add0d91Sopenharmony_ci        buf: *mut ::c_char,
8012add0d91Sopenharmony_ci        buflen: ::size_t,
8022add0d91Sopenharmony_ci        result: *mut *mut passwd,
8032add0d91Sopenharmony_ci    ) -> ::c_int;
8042add0d91Sopenharmony_ci    #[cfg_attr(
8052add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
8062add0d91Sopenharmony_ci        link_name = "sigwait$UNIX2003"
8072add0d91Sopenharmony_ci    )]
8082add0d91Sopenharmony_ci    pub fn sigwait(set: *const sigset_t, sig: *mut ::c_int) -> ::c_int;
8092add0d91Sopenharmony_ci    pub fn pthread_atfork(
8102add0d91Sopenharmony_ci        prepare: ::Option<unsafe extern "C" fn()>,
8112add0d91Sopenharmony_ci        parent: ::Option<unsafe extern "C" fn()>,
8122add0d91Sopenharmony_ci        child: ::Option<unsafe extern "C" fn()>,
8132add0d91Sopenharmony_ci    ) -> ::c_int;
8142add0d91Sopenharmony_ci    pub fn getgrgid(gid: ::gid_t) -> *mut ::group;
8152add0d91Sopenharmony_ci    #[cfg_attr(
8162add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
8172add0d91Sopenharmony_ci        link_name = "popen$UNIX2003"
8182add0d91Sopenharmony_ci    )]
8192add0d91Sopenharmony_ci    pub fn popen(command: *const c_char, mode: *const c_char) -> *mut ::FILE;
8202add0d91Sopenharmony_ci    pub fn faccessat(
8212add0d91Sopenharmony_ci        dirfd: ::c_int,
8222add0d91Sopenharmony_ci        pathname: *const ::c_char,
8232add0d91Sopenharmony_ci        mode: ::c_int,
8242add0d91Sopenharmony_ci        flags: ::c_int,
8252add0d91Sopenharmony_ci    ) -> ::c_int;
8262add0d91Sopenharmony_ci    pub fn pthread_create(
8272add0d91Sopenharmony_ci        native: *mut ::pthread_t,
8282add0d91Sopenharmony_ci        attr: *const ::pthread_attr_t,
8292add0d91Sopenharmony_ci        f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
8302add0d91Sopenharmony_ci        value: *mut ::c_void,
8312add0d91Sopenharmony_ci    ) -> ::c_int;
8322add0d91Sopenharmony_ci    pub fn acct(filename: *const ::c_char) -> ::c_int;
8332add0d91Sopenharmony_ci    #[cfg_attr(
8342add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
8352add0d91Sopenharmony_ci        link_name = "wait4$UNIX2003"
8362add0d91Sopenharmony_ci    )]
8372add0d91Sopenharmony_ci    #[cfg_attr(
8382add0d91Sopenharmony_ci        all(target_os = "freebsd", any(freebsd12, freebsd11, freebsd10)),
8392add0d91Sopenharmony_ci        link_name = "wait4@FBSD_1.0"
8402add0d91Sopenharmony_ci    )]
8412add0d91Sopenharmony_ci    pub fn wait4(
8422add0d91Sopenharmony_ci        pid: ::pid_t,
8432add0d91Sopenharmony_ci        status: *mut ::c_int,
8442add0d91Sopenharmony_ci        options: ::c_int,
8452add0d91Sopenharmony_ci        rusage: *mut ::rusage,
8462add0d91Sopenharmony_ci    ) -> ::pid_t;
8472add0d91Sopenharmony_ci    #[cfg_attr(
8482add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
8492add0d91Sopenharmony_ci        link_name = "getitimer$UNIX2003"
8502add0d91Sopenharmony_ci    )]
8512add0d91Sopenharmony_ci    pub fn getitimer(which: ::c_int, curr_value: *mut ::itimerval) -> ::c_int;
8522add0d91Sopenharmony_ci    #[cfg_attr(
8532add0d91Sopenharmony_ci        all(target_os = "macos", target_arch = "x86"),
8542add0d91Sopenharmony_ci        link_name = "setitimer$UNIX2003"
8552add0d91Sopenharmony_ci    )]
8562add0d91Sopenharmony_ci    pub fn setitimer(
8572add0d91Sopenharmony_ci        which: ::c_int,
8582add0d91Sopenharmony_ci        new_value: *const ::itimerval,
8592add0d91Sopenharmony_ci        old_value: *mut ::itimerval,
8602add0d91Sopenharmony_ci    ) -> ::c_int;
8612add0d91Sopenharmony_ci
8622add0d91Sopenharmony_ci    pub fn regcomp(preg: *mut regex_t, pattern: *const ::c_char, cflags: ::c_int) -> ::c_int;
8632add0d91Sopenharmony_ci
8642add0d91Sopenharmony_ci    pub fn regexec(
8652add0d91Sopenharmony_ci        preg: *const regex_t,
8662add0d91Sopenharmony_ci        input: *const ::c_char,
8672add0d91Sopenharmony_ci        nmatch: ::size_t,
8682add0d91Sopenharmony_ci        pmatch: *mut regmatch_t,
8692add0d91Sopenharmony_ci        eflags: ::c_int,
8702add0d91Sopenharmony_ci    ) -> ::c_int;
8712add0d91Sopenharmony_ci
8722add0d91Sopenharmony_ci    pub fn regerror(
8732add0d91Sopenharmony_ci        errcode: ::c_int,
8742add0d91Sopenharmony_ci        preg: *const regex_t,
8752add0d91Sopenharmony_ci        errbuf: *mut ::c_char,
8762add0d91Sopenharmony_ci        errbuf_size: ::size_t,
8772add0d91Sopenharmony_ci    ) -> ::size_t;
8782add0d91Sopenharmony_ci
8792add0d91Sopenharmony_ci    pub fn regfree(preg: *mut regex_t);
8802add0d91Sopenharmony_ci
8812add0d91Sopenharmony_ci    pub fn arc4random() -> u32;
8822add0d91Sopenharmony_ci    pub fn arc4random_buf(buf: *mut ::c_void, size: ::size_t);
8832add0d91Sopenharmony_ci    pub fn arc4random_uniform(l: u32) -> u32;
8842add0d91Sopenharmony_ci
8852add0d91Sopenharmony_ci    pub fn drand48() -> ::c_double;
8862add0d91Sopenharmony_ci    pub fn erand48(xseed: *mut ::c_ushort) -> ::c_double;
8872add0d91Sopenharmony_ci    pub fn lrand48() -> ::c_long;
8882add0d91Sopenharmony_ci    pub fn nrand48(xseed: *mut ::c_ushort) -> ::c_long;
8892add0d91Sopenharmony_ci    pub fn mrand48() -> ::c_long;
8902add0d91Sopenharmony_ci    pub fn jrand48(xseed: *mut ::c_ushort) -> ::c_long;
8912add0d91Sopenharmony_ci    pub fn srand48(seed: ::c_long);
8922add0d91Sopenharmony_ci    pub fn seed48(xseed: *mut ::c_ushort) -> *mut ::c_ushort;
8932add0d91Sopenharmony_ci    pub fn lcong48(p: *mut ::c_ushort);
8942add0d91Sopenharmony_ci    pub fn getopt_long(
8952add0d91Sopenharmony_ci        argc: ::c_int,
8962add0d91Sopenharmony_ci        argv: *const *mut c_char,
8972add0d91Sopenharmony_ci        optstring: *const c_char,
8982add0d91Sopenharmony_ci        longopts: *const option,
8992add0d91Sopenharmony_ci        longindex: *mut ::c_int,
9002add0d91Sopenharmony_ci    ) -> ::c_int;
9012add0d91Sopenharmony_ci}
9022add0d91Sopenharmony_ci
9032add0d91Sopenharmony_cicfg_if! {
9042add0d91Sopenharmony_ci    if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos", target_os = "watchos"))] {
9052add0d91Sopenharmony_ci        mod apple;
9062add0d91Sopenharmony_ci        pub use self::apple::*;
9072add0d91Sopenharmony_ci    } else if #[cfg(any(target_os = "openbsd", target_os = "netbsd"))] {
9082add0d91Sopenharmony_ci        mod netbsdlike;
9092add0d91Sopenharmony_ci        pub use self::netbsdlike::*;
9102add0d91Sopenharmony_ci    } else if #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] {
9112add0d91Sopenharmony_ci        mod freebsdlike;
9122add0d91Sopenharmony_ci        pub use self::freebsdlike::*;
9132add0d91Sopenharmony_ci    } else {
9142add0d91Sopenharmony_ci        // Unknown target_os
9152add0d91Sopenharmony_ci    }
9162add0d91Sopenharmony_ci}
917