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