12add0d91Sopenharmony_ci// liblibc port for HermitCore (https://hermitcore.org) 22add0d91Sopenharmony_ci// HermitCore is a unikernel based on lwIP, newlib, and 32add0d91Sopenharmony_ci// pthread-embedded. 42add0d91Sopenharmony_ci// Consider these definitions when porting liblibc to another 52add0d91Sopenharmony_ci// lwIP/newlib/pte-based target. 62add0d91Sopenharmony_ci// 72add0d91Sopenharmony_ci// Ported by Colin Finck <colin.finck@rwth-aachen.de> 82add0d91Sopenharmony_ci 92add0d91Sopenharmony_cipub type c_long = i64; 102add0d91Sopenharmony_cipub type c_ulong = u64; 112add0d91Sopenharmony_ci 122add0d91Sopenharmony_cipub type speed_t = ::c_uint; 132add0d91Sopenharmony_cipub type mode_t = u32; 142add0d91Sopenharmony_cipub type dev_t = i16; 152add0d91Sopenharmony_cipub type nfds_t = ::c_ulong; 162add0d91Sopenharmony_cipub type socklen_t = u32; 172add0d91Sopenharmony_cipub type sa_family_t = u8; 182add0d91Sopenharmony_cipub type clock_t = c_ulong; 192add0d91Sopenharmony_cipub type time_t = c_long; 202add0d91Sopenharmony_cipub type suseconds_t = c_long; 212add0d91Sopenharmony_cipub type off_t = i64; 222add0d91Sopenharmony_cipub type rlim_t = ::c_ulonglong; 232add0d91Sopenharmony_cipub type sigset_t = ::c_ulong; 242add0d91Sopenharmony_cipub type ino_t = u16; 252add0d91Sopenharmony_cipub type nlink_t = u16; 262add0d91Sopenharmony_cipub type blksize_t = c_long; 272add0d91Sopenharmony_cipub type blkcnt_t = c_long; 282add0d91Sopenharmony_cipub type stat64 = stat; 292add0d91Sopenharmony_cipub type clockid_t = c_ulong; 302add0d91Sopenharmony_cipub type pthread_t = pte_handle_t; 312add0d91Sopenharmony_cipub type pthread_attr_t = usize; 322add0d91Sopenharmony_cipub type pthread_cond_t = usize; 332add0d91Sopenharmony_cipub type pthread_condattr_t = usize; 342add0d91Sopenharmony_cipub type pthread_key_t = usize; 352add0d91Sopenharmony_cipub type pthread_mutex_t = usize; 362add0d91Sopenharmony_cipub type pthread_mutexattr_t = usize; 372add0d91Sopenharmony_cipub type pthread_rwlock_t = usize; 382add0d91Sopenharmony_cipub type pthread_rwlockattr_t = usize; 392add0d91Sopenharmony_ci 402add0d91Sopenharmony_cis_no_extra_traits! { 412add0d91Sopenharmony_ci pub struct dirent { 422add0d91Sopenharmony_ci pub d_ino: ::c_long, 432add0d91Sopenharmony_ci pub d_off: off_t, 442add0d91Sopenharmony_ci pub d_reclen: u16, 452add0d91Sopenharmony_ci pub d_name: [::c_char; 256], 462add0d91Sopenharmony_ci } 472add0d91Sopenharmony_ci 482add0d91Sopenharmony_ci // Dummy 492add0d91Sopenharmony_ci pub struct sockaddr_un { 502add0d91Sopenharmony_ci pub sun_family: sa_family_t, 512add0d91Sopenharmony_ci pub sun_path: [::c_char; 108], 522add0d91Sopenharmony_ci } 532add0d91Sopenharmony_ci 542add0d91Sopenharmony_ci pub struct sockaddr { 552add0d91Sopenharmony_ci pub sa_len: u8, 562add0d91Sopenharmony_ci pub sa_family: sa_family_t, 572add0d91Sopenharmony_ci pub sa_data: [::c_char; 14], 582add0d91Sopenharmony_ci } 592add0d91Sopenharmony_ci 602add0d91Sopenharmony_ci pub struct sockaddr_in { 612add0d91Sopenharmony_ci pub sin_len: u8, 622add0d91Sopenharmony_ci pub sin_family: sa_family_t, 632add0d91Sopenharmony_ci pub sin_port: ::in_port_t, 642add0d91Sopenharmony_ci pub sin_addr: ::in_addr, 652add0d91Sopenharmony_ci pub sin_zero: [::c_char; 8], 662add0d91Sopenharmony_ci } 672add0d91Sopenharmony_ci 682add0d91Sopenharmony_ci pub struct fd_set { 692add0d91Sopenharmony_ci fds_bits: [::c_ulong; FD_SETSIZE / ULONG_SIZE], 702add0d91Sopenharmony_ci } 712add0d91Sopenharmony_ci 722add0d91Sopenharmony_ci pub struct sockaddr_storage { 732add0d91Sopenharmony_ci pub s2_len: u8, 742add0d91Sopenharmony_ci pub ss_family: sa_family_t, 752add0d91Sopenharmony_ci pub s2_data1: [::c_char; 2], 762add0d91Sopenharmony_ci pub s2_data2: [u32; 3], 772add0d91Sopenharmony_ci pub s2_data3: [u32; 3], 782add0d91Sopenharmony_ci } 792add0d91Sopenharmony_ci 802add0d91Sopenharmony_ci pub struct stat { 812add0d91Sopenharmony_ci pub st_dev: ::dev_t, 822add0d91Sopenharmony_ci pub st_ino: ::ino_t, 832add0d91Sopenharmony_ci pub st_mode: ::mode_t, 842add0d91Sopenharmony_ci pub st_nlink: ::nlink_t, 852add0d91Sopenharmony_ci pub st_uid: ::uid_t, 862add0d91Sopenharmony_ci pub st_gid: ::gid_t, 872add0d91Sopenharmony_ci pub st_rdev: dev_t, 882add0d91Sopenharmony_ci pub st_size: off_t, 892add0d91Sopenharmony_ci pub st_atime: time_t, 902add0d91Sopenharmony_ci pub st_atime_nsec: ::c_long, 912add0d91Sopenharmony_ci pub st_mtime: time_t, 922add0d91Sopenharmony_ci pub st_mtime_nsec: ::c_long, 932add0d91Sopenharmony_ci pub st_ctime: time_t, 942add0d91Sopenharmony_ci pub st_ctime_nsec: ::c_long, 952add0d91Sopenharmony_ci pub st_blksize: blksize_t, 962add0d91Sopenharmony_ci pub st_blocks: blkcnt_t, 972add0d91Sopenharmony_ci pub st_spare4: [::c_long; 2], 982add0d91Sopenharmony_ci } 992add0d91Sopenharmony_ci} 1002add0d91Sopenharmony_ci 1012add0d91Sopenharmony_cicfg_if! { 1022add0d91Sopenharmony_ci if #[cfg(feature = "extra_traits")] { 1032add0d91Sopenharmony_ci impl PartialEq for dirent { 1042add0d91Sopenharmony_ci fn eq(&self, other: &dirent) -> bool { 1052add0d91Sopenharmony_ci self.d_ino == other.d_ino 1062add0d91Sopenharmony_ci && self.d_off == other.d_off 1072add0d91Sopenharmony_ci && self.d_reclen == other.d_reclen 1082add0d91Sopenharmony_ci && self 1092add0d91Sopenharmony_ci .d_name 1102add0d91Sopenharmony_ci .iter() 1112add0d91Sopenharmony_ci .zip(other.d_name.iter()) 1122add0d91Sopenharmony_ci .all(|(a,b)| a == b) 1132add0d91Sopenharmony_ci } 1142add0d91Sopenharmony_ci } 1152add0d91Sopenharmony_ci impl Eq for dirent {} 1162add0d91Sopenharmony_ci impl ::fmt::Debug for dirent { 1172add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 1182add0d91Sopenharmony_ci f.debug_struct("dirent") 1192add0d91Sopenharmony_ci .field("d_ino", &self.d_ino) 1202add0d91Sopenharmony_ci .field("d_off", &self.d_off) 1212add0d91Sopenharmony_ci .field("d_reclen", &self.d_reclen) 1222add0d91Sopenharmony_ci // FIXME: .field("d_name", &self.d_name) 1232add0d91Sopenharmony_ci .finish() 1242add0d91Sopenharmony_ci } 1252add0d91Sopenharmony_ci } 1262add0d91Sopenharmony_ci impl ::hash::Hash for dirent { 1272add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 1282add0d91Sopenharmony_ci self.d_ino.hash(state); 1292add0d91Sopenharmony_ci self.d_off.hash(state); 1302add0d91Sopenharmony_ci self.d_reclen.hash(state); 1312add0d91Sopenharmony_ci self.d_name.hash(state); 1322add0d91Sopenharmony_ci } 1332add0d91Sopenharmony_ci } 1342add0d91Sopenharmony_ci 1352add0d91Sopenharmony_ci impl PartialEq for sockaddr_un { 1362add0d91Sopenharmony_ci fn eq(&self, other: &sockaddr_un) -> bool { 1372add0d91Sopenharmony_ci self.sun_family == other.sun_family 1382add0d91Sopenharmony_ci && self 1392add0d91Sopenharmony_ci .sun_path 1402add0d91Sopenharmony_ci .iter() 1412add0d91Sopenharmony_ci .zip(other.sun_path.iter()) 1422add0d91Sopenharmony_ci .all(|(a,b)| a == b) 1432add0d91Sopenharmony_ci } 1442add0d91Sopenharmony_ci } 1452add0d91Sopenharmony_ci impl Eq for sockaddr_un {} 1462add0d91Sopenharmony_ci impl ::fmt::Debug for sockaddr_un { 1472add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 1482add0d91Sopenharmony_ci f.debug_struct("sockaddr_un") 1492add0d91Sopenharmony_ci .field("sun_family", &self.sun_family) 1502add0d91Sopenharmony_ci // FIXME: .field("sun_path", &self.sun_path) 1512add0d91Sopenharmony_ci .finish() 1522add0d91Sopenharmony_ci } 1532add0d91Sopenharmony_ci } 1542add0d91Sopenharmony_ci impl ::hash::Hash for sockaddr_un { 1552add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 1562add0d91Sopenharmony_ci self.sun_family.hash(state); 1572add0d91Sopenharmony_ci self.sun_path.hash(state); 1582add0d91Sopenharmony_ci } 1592add0d91Sopenharmony_ci } 1602add0d91Sopenharmony_ci 1612add0d91Sopenharmony_ci impl PartialEq for sockaddr { 1622add0d91Sopenharmony_ci fn eq(&self, other: &sockaddr) -> bool { 1632add0d91Sopenharmony_ci self.sa_len == other.sa_len 1642add0d91Sopenharmony_ci && self.sa_family == other.sa_family 1652add0d91Sopenharmony_ci && self 1662add0d91Sopenharmony_ci .sa_data 1672add0d91Sopenharmony_ci .iter() 1682add0d91Sopenharmony_ci .zip(other.sa_data.iter()) 1692add0d91Sopenharmony_ci .all(|(a,b)| a == b) 1702add0d91Sopenharmony_ci } 1712add0d91Sopenharmony_ci } 1722add0d91Sopenharmony_ci impl Eq for sockaddr {} 1732add0d91Sopenharmony_ci impl ::fmt::Debug for sockaddr { 1742add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 1752add0d91Sopenharmony_ci f.debug_struct("sockaddr") 1762add0d91Sopenharmony_ci .field("sa_len", &self.sa_len) 1772add0d91Sopenharmony_ci .field("sa_family", &self.sa_family) 1782add0d91Sopenharmony_ci // FIXME: .field("sa_data", &self.sa_data) 1792add0d91Sopenharmony_ci .finish() 1802add0d91Sopenharmony_ci } 1812add0d91Sopenharmony_ci } 1822add0d91Sopenharmony_ci impl ::hash::Hash for sockaddr { 1832add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 1842add0d91Sopenharmony_ci self.sa_len.hash(state); 1852add0d91Sopenharmony_ci self.sa_family.hash(state); 1862add0d91Sopenharmony_ci self.sa_data.hash(state); 1872add0d91Sopenharmony_ci } 1882add0d91Sopenharmony_ci } 1892add0d91Sopenharmony_ci 1902add0d91Sopenharmony_ci impl PartialEq for sockaddr_in { 1912add0d91Sopenharmony_ci fn eq(&self, other: &sockaddr_in) -> bool { 1922add0d91Sopenharmony_ci self.sin_len == other.sin_len 1932add0d91Sopenharmony_ci && self.sin_family == other.sin_family 1942add0d91Sopenharmony_ci && self.sin_port == other.sin_port 1952add0d91Sopenharmony_ci && self.sin_addr == other.sin_addr 1962add0d91Sopenharmony_ci && self 1972add0d91Sopenharmony_ci .sin_zero 1982add0d91Sopenharmony_ci .iter() 1992add0d91Sopenharmony_ci .zip(other.sin_zero.iter()) 2002add0d91Sopenharmony_ci .all(|(a,b)| a == b) 2012add0d91Sopenharmony_ci } 2022add0d91Sopenharmony_ci } 2032add0d91Sopenharmony_ci impl Eq for sockaddr_in {} 2042add0d91Sopenharmony_ci impl ::fmt::Debug for sockaddr_in { 2052add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 2062add0d91Sopenharmony_ci f.debug_struct("sockaddr_in") 2072add0d91Sopenharmony_ci .field("sin_len", &self.sin_len) 2082add0d91Sopenharmony_ci .field("sin_family", &self.sin_family) 2092add0d91Sopenharmony_ci .field("sin_port", &self.sin_port) 2102add0d91Sopenharmony_ci .field("sin_addr", &self.sin_addr) 2112add0d91Sopenharmony_ci // FIXME: .field("sin_zero", &self.sin_zero) 2122add0d91Sopenharmony_ci .finish() 2132add0d91Sopenharmony_ci } 2142add0d91Sopenharmony_ci } 2152add0d91Sopenharmony_ci impl ::hash::Hash for sockaddr_in { 2162add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 2172add0d91Sopenharmony_ci self.sin_len.hash(state); 2182add0d91Sopenharmony_ci self.sin_family.hash(state); 2192add0d91Sopenharmony_ci self.sin_port.hash(state); 2202add0d91Sopenharmony_ci self.sin_addr.hash(state); 2212add0d91Sopenharmony_ci self.sin_zero.hash(state); 2222add0d91Sopenharmony_ci } 2232add0d91Sopenharmony_ci } 2242add0d91Sopenharmony_ci 2252add0d91Sopenharmony_ci impl PartialEq for fd_set { 2262add0d91Sopenharmony_ci fn eq(&self, other: &fd_set) -> bool { 2272add0d91Sopenharmony_ci self.fds_bits 2282add0d91Sopenharmony_ci .iter() 2292add0d91Sopenharmony_ci .zip(other.fds_bits.iter()) 2302add0d91Sopenharmony_ci .all(|(a,b)| a == b) 2312add0d91Sopenharmony_ci } 2322add0d91Sopenharmony_ci } 2332add0d91Sopenharmony_ci impl Eq for fd_set {} 2342add0d91Sopenharmony_ci impl ::fmt::Debug for fd_set { 2352add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 2362add0d91Sopenharmony_ci f.debug_struct("fd_set") 2372add0d91Sopenharmony_ci // FIXME: .field("fds_bits", &self.fds_bits) 2382add0d91Sopenharmony_ci .finish() 2392add0d91Sopenharmony_ci } 2402add0d91Sopenharmony_ci } 2412add0d91Sopenharmony_ci impl ::hash::Hash for fd_set { 2422add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 2432add0d91Sopenharmony_ci self.fds_bits.hash(state); 2442add0d91Sopenharmony_ci } 2452add0d91Sopenharmony_ci } 2462add0d91Sopenharmony_ci 2472add0d91Sopenharmony_ci impl PartialEq for sockaddr_storage { 2482add0d91Sopenharmony_ci fn eq(&self, other: &sockaddr_storage) -> bool { 2492add0d91Sopenharmony_ci self.s2_len == other.s2_len 2502add0d91Sopenharmony_ci && self.ss_family == other.ss_family 2512add0d91Sopenharmony_ci && self.s2_data1 2522add0d91Sopenharmony_ci .iter() 2532add0d91Sopenharmony_ci .zip(other.s2_data1.iter()) 2542add0d91Sopenharmony_ci .all(|(a,b)| a == b) 2552add0d91Sopenharmony_ci && self.s2_data2 2562add0d91Sopenharmony_ci .iter() 2572add0d91Sopenharmony_ci .zip(other.s2_data2.iter()) 2582add0d91Sopenharmony_ci .all(|(a,b)| a == b) 2592add0d91Sopenharmony_ci && self.s2_data3 2602add0d91Sopenharmony_ci .iter() 2612add0d91Sopenharmony_ci .zip(other.s2_data3.iter()) 2622add0d91Sopenharmony_ci .all(|(a,b)| a == b) 2632add0d91Sopenharmony_ci } 2642add0d91Sopenharmony_ci } 2652add0d91Sopenharmony_ci impl Eq for sockaddr_storage {} 2662add0d91Sopenharmony_ci impl ::fmt::Debug for sockaddr_storage { 2672add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 2682add0d91Sopenharmony_ci f.debug_struct("sockaddr_storage") 2692add0d91Sopenharmony_ci .field("s2_len", &self.s2_len) 2702add0d91Sopenharmony_ci .field("ss_family", &self.ss_family) 2712add0d91Sopenharmony_ci // FIXME: .field("s2_data1", &self.s2_data1) 2722add0d91Sopenharmony_ci // FIXME: .field("s2_data2", &self.s2_data2) 2732add0d91Sopenharmony_ci // FIXME: .field("s2_data3", &self.s2_data3) 2742add0d91Sopenharmony_ci .finish() 2752add0d91Sopenharmony_ci } 2762add0d91Sopenharmony_ci } 2772add0d91Sopenharmony_ci impl ::hash::Hash for sockaddr_storage { 2782add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 2792add0d91Sopenharmony_ci self.s2_len.hash(state); 2802add0d91Sopenharmony_ci self.ss_family.hash(state); 2812add0d91Sopenharmony_ci self.s2_data1.hash(state); 2822add0d91Sopenharmony_ci self.s2_data2.hash(state); 2832add0d91Sopenharmony_ci self.s2_data3.hash(state); 2842add0d91Sopenharmony_ci } 2852add0d91Sopenharmony_ci } 2862add0d91Sopenharmony_ci 2872add0d91Sopenharmony_ci impl PartialEq for stat { 2882add0d91Sopenharmony_ci fn eq(&self, other: &stat) -> bool { 2892add0d91Sopenharmony_ci self.st_dev == other.st_dev 2902add0d91Sopenharmony_ci && self.st_ino == other.st_ino 2912add0d91Sopenharmony_ci && self.st_mode == other.st_mode 2922add0d91Sopenharmony_ci && self.st_nlink == other.st_nlink 2932add0d91Sopenharmony_ci && self.st_uid == other.st_uid 2942add0d91Sopenharmony_ci && self.st_gid == other.st_gid 2952add0d91Sopenharmony_ci && self.st_rdev == other.st_rdev 2962add0d91Sopenharmony_ci && self.st_size == other.st_size 2972add0d91Sopenharmony_ci && self.st_atime == other.st_atime 2982add0d91Sopenharmony_ci && self.st_atime_nsec == other.st_atime_nsec 2992add0d91Sopenharmony_ci && self.st_mtime == other.st_mtime 3002add0d91Sopenharmony_ci && self.st_mtime_nsec == other.st_mtime_nsec 3012add0d91Sopenharmony_ci && self.st_ctime == other.st_ctime 3022add0d91Sopenharmony_ci && self.st_ctime_nsec == other.st_ctime_nsec 3032add0d91Sopenharmony_ci && self.st_blksize == other.st_blksize 3042add0d91Sopenharmony_ci && self.st_blocks == other.st_blocks 3052add0d91Sopenharmony_ci && self 3062add0d91Sopenharmony_ci .st_spare4 3072add0d91Sopenharmony_ci .iter() 3082add0d91Sopenharmony_ci .zip(other.st_spare4.iter()) 3092add0d91Sopenharmony_ci .all(|(a,b)| a == b) 3102add0d91Sopenharmony_ci } 3112add0d91Sopenharmony_ci } 3122add0d91Sopenharmony_ci impl Eq for stat {} 3132add0d91Sopenharmony_ci impl ::fmt::Debug for stat { 3142add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 3152add0d91Sopenharmony_ci f.debug_struct("stat") 3162add0d91Sopenharmony_ci .field("st_dev", &self.st_dev) 3172add0d91Sopenharmony_ci .field("st_ino", &self.st_ino) 3182add0d91Sopenharmony_ci .field("st_mode", &self.st_mode) 3192add0d91Sopenharmony_ci .field("st_nlink", &self.st_nlink) 3202add0d91Sopenharmony_ci .field("st_uid", &self.st_uid) 3212add0d91Sopenharmony_ci .field("st_gid", &self.st_gid) 3222add0d91Sopenharmony_ci .field("st_rdev", &self.st_rdev) 3232add0d91Sopenharmony_ci .field("st_size", &self.st_size) 3242add0d91Sopenharmony_ci .field("st_atime", &self.st_atime) 3252add0d91Sopenharmony_ci .field("st_atime_nsec", &self.st_atime_nsec) 3262add0d91Sopenharmony_ci .field("st_mtime", &self.st_mtime) 3272add0d91Sopenharmony_ci .field("st_mtime_nsec", &self.st_mtime_nsec) 3282add0d91Sopenharmony_ci .field("st_ctime", &self.st_ctime) 3292add0d91Sopenharmony_ci .field("st_ctime_nsec", &self.st_ctime_nsec) 3302add0d91Sopenharmony_ci .field("st_blksize", &self.st_blksize) 3312add0d91Sopenharmony_ci .field("st_blocks", &self.st_blocks) 3322add0d91Sopenharmony_ci // FIXME: .field("st_spare4", &self.st_spare4) 3332add0d91Sopenharmony_ci .finish() 3342add0d91Sopenharmony_ci } 3352add0d91Sopenharmony_ci } 3362add0d91Sopenharmony_ci impl ::hash::Hash for stat { 3372add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 3382add0d91Sopenharmony_ci self.st_dev.hash(state); 3392add0d91Sopenharmony_ci self.st_ino.hash(state); 3402add0d91Sopenharmony_ci self.st_mode.hash(state); 3412add0d91Sopenharmony_ci self.st_nlink.hash(state); 3422add0d91Sopenharmony_ci self.st_uid.hash(state); 3432add0d91Sopenharmony_ci self.st_gid.hash(state); 3442add0d91Sopenharmony_ci self.st_rdev.hash(state); 3452add0d91Sopenharmony_ci self.st_size.hash(state); 3462add0d91Sopenharmony_ci self.st_atime.hash(state); 3472add0d91Sopenharmony_ci self.st_atime_nsec.hash(state); 3482add0d91Sopenharmony_ci self.st_mtime.hash(state); 3492add0d91Sopenharmony_ci self.st_mtime_nsec.hash(state); 3502add0d91Sopenharmony_ci self.st_ctime.hash(state); 3512add0d91Sopenharmony_ci self.st_ctime_nsec.hash(state); 3522add0d91Sopenharmony_ci self.st_blksize.hash(state); 3532add0d91Sopenharmony_ci self.st_blocks.hash(state); 3542add0d91Sopenharmony_ci self.st_spare4.hash(state); 3552add0d91Sopenharmony_ci } 3562add0d91Sopenharmony_ci } 3572add0d91Sopenharmony_ci } 3582add0d91Sopenharmony_ci} 3592add0d91Sopenharmony_ci 3602add0d91Sopenharmony_cis! { 3612add0d91Sopenharmony_ci pub struct in_addr { 3622add0d91Sopenharmony_ci pub s_addr: ::in_addr_t, 3632add0d91Sopenharmony_ci } 3642add0d91Sopenharmony_ci 3652add0d91Sopenharmony_ci pub struct ip_mreq { 3662add0d91Sopenharmony_ci pub imr_multiaddr: in_addr, 3672add0d91Sopenharmony_ci pub imr_interface: in_addr, 3682add0d91Sopenharmony_ci } 3692add0d91Sopenharmony_ci 3702add0d91Sopenharmony_ci pub struct addrinfo { 3712add0d91Sopenharmony_ci pub ai_flags: ::c_int, 3722add0d91Sopenharmony_ci pub ai_family: ::c_int, 3732add0d91Sopenharmony_ci pub ai_socktype: ::c_int, 3742add0d91Sopenharmony_ci pub ai_protocol: ::c_int, 3752add0d91Sopenharmony_ci pub ai_addrlen: socklen_t, 3762add0d91Sopenharmony_ci pub ai_addr: *mut ::sockaddr, 3772add0d91Sopenharmony_ci pub ai_canonname: *mut c_char, 3782add0d91Sopenharmony_ci pub ai_next: *mut addrinfo, 3792add0d91Sopenharmony_ci } 3802add0d91Sopenharmony_ci 3812add0d91Sopenharmony_ci pub struct Dl_info {} 3822add0d91Sopenharmony_ci 3832add0d91Sopenharmony_ci pub struct lconv { 3842add0d91Sopenharmony_ci pub decimal_point: *mut ::c_char, 3852add0d91Sopenharmony_ci pub thousands_sep: *mut ::c_char, 3862add0d91Sopenharmony_ci pub grouping: *mut ::c_char, 3872add0d91Sopenharmony_ci pub int_curr_symbol: *mut ::c_char, 3882add0d91Sopenharmony_ci pub currency_symbol: *mut ::c_char, 3892add0d91Sopenharmony_ci pub mon_decimal_point: *mut ::c_char, 3902add0d91Sopenharmony_ci pub mon_thousands_sep: *mut ::c_char, 3912add0d91Sopenharmony_ci pub mon_grouping: *mut ::c_char, 3922add0d91Sopenharmony_ci pub positive_sign: *mut ::c_char, 3932add0d91Sopenharmony_ci pub negative_sign: *mut ::c_char, 3942add0d91Sopenharmony_ci pub int_frac_digits: ::c_char, 3952add0d91Sopenharmony_ci pub frac_digits: ::c_char, 3962add0d91Sopenharmony_ci pub p_cs_precedes: ::c_char, 3972add0d91Sopenharmony_ci pub p_sep_by_space: ::c_char, 3982add0d91Sopenharmony_ci pub n_cs_precedes: ::c_char, 3992add0d91Sopenharmony_ci pub n_sep_by_space: ::c_char, 4002add0d91Sopenharmony_ci pub p_sign_posn: ::c_char, 4012add0d91Sopenharmony_ci pub n_sign_posn: ::c_char, 4022add0d91Sopenharmony_ci pub int_p_cs_precedes: ::c_char, 4032add0d91Sopenharmony_ci pub int_p_sep_by_space: ::c_char, 4042add0d91Sopenharmony_ci pub int_n_cs_precedes: ::c_char, 4052add0d91Sopenharmony_ci pub int_n_sep_by_space: ::c_char, 4062add0d91Sopenharmony_ci pub int_p_sign_posn: ::c_char, 4072add0d91Sopenharmony_ci pub int_n_sign_posn: ::c_char, 4082add0d91Sopenharmony_ci } 4092add0d91Sopenharmony_ci 4102add0d91Sopenharmony_ci pub struct passwd { // Unverified 4112add0d91Sopenharmony_ci pub pw_name: *mut ::c_char, 4122add0d91Sopenharmony_ci pub pw_passwd: *mut ::c_char, 4132add0d91Sopenharmony_ci pub pw_uid: ::uid_t, 4142add0d91Sopenharmony_ci pub pw_gid: ::gid_t, 4152add0d91Sopenharmony_ci pub pw_gecos: *mut ::c_char, 4162add0d91Sopenharmony_ci pub pw_dir: *mut ::c_char, 4172add0d91Sopenharmony_ci pub pw_shell: *mut ::c_char, 4182add0d91Sopenharmony_ci } 4192add0d91Sopenharmony_ci 4202add0d91Sopenharmony_ci pub struct pte_handle_t { 4212add0d91Sopenharmony_ci pub p: usize, 4222add0d91Sopenharmony_ci pub x: ::c_uint, 4232add0d91Sopenharmony_ci } 4242add0d91Sopenharmony_ci 4252add0d91Sopenharmony_ci pub struct sched_param { 4262add0d91Sopenharmony_ci pub sched_priority: ::c_int, 4272add0d91Sopenharmony_ci } 4282add0d91Sopenharmony_ci 4292add0d91Sopenharmony_ci pub struct sem_t { 4302add0d91Sopenharmony_ci pub value: i32, 4312add0d91Sopenharmony_ci pub lock: usize, 4322add0d91Sopenharmony_ci pub sem: usize, 4332add0d91Sopenharmony_ci } 4342add0d91Sopenharmony_ci 4352add0d91Sopenharmony_ci pub struct sigaction { 4362add0d91Sopenharmony_ci pub sa_flags: ::c_int, 4372add0d91Sopenharmony_ci pub sa_mask: sigset_t, 4382add0d91Sopenharmony_ci pub sa_handler: usize, 4392add0d91Sopenharmony_ci } 4402add0d91Sopenharmony_ci 4412add0d91Sopenharmony_ci pub struct sockaddr_in6 { 4422add0d91Sopenharmony_ci pub sin6_len: u8, 4432add0d91Sopenharmony_ci pub sin6_family: sa_family_t, 4442add0d91Sopenharmony_ci pub sin6_port: ::in_port_t, 4452add0d91Sopenharmony_ci pub sin6_flowinfo: u32, 4462add0d91Sopenharmony_ci pub sin6_addr: ::in6_addr, 4472add0d91Sopenharmony_ci pub sin6_scope_id: u32, 4482add0d91Sopenharmony_ci } 4492add0d91Sopenharmony_ci 4502add0d91Sopenharmony_ci pub struct statvfs {} 4512add0d91Sopenharmony_ci 4522add0d91Sopenharmony_ci pub struct tm { 4532add0d91Sopenharmony_ci pub tm_sec: ::c_int, 4542add0d91Sopenharmony_ci pub tm_min: ::c_int, 4552add0d91Sopenharmony_ci pub tm_hour: ::c_int, 4562add0d91Sopenharmony_ci pub tm_mday: ::c_int, 4572add0d91Sopenharmony_ci pub tm_mon: ::c_int, 4582add0d91Sopenharmony_ci pub tm_year: ::c_int, 4592add0d91Sopenharmony_ci pub tm_wday: ::c_int, 4602add0d91Sopenharmony_ci pub tm_yday: ::c_int, 4612add0d91Sopenharmony_ci pub tm_isdst: ::c_int, 4622add0d91Sopenharmony_ci } 4632add0d91Sopenharmony_ci 4642add0d91Sopenharmony_ci pub struct tms { 4652add0d91Sopenharmony_ci pub tms_utime: ::clock_t, 4662add0d91Sopenharmony_ci pub tms_stime: ::clock_t, 4672add0d91Sopenharmony_ci pub tms_cutime: ::clock_t, 4682add0d91Sopenharmony_ci pub tms_cstime: ::clock_t, 4692add0d91Sopenharmony_ci } 4702add0d91Sopenharmony_ci 4712add0d91Sopenharmony_ci pub struct termios {} 4722add0d91Sopenharmony_ci 4732add0d91Sopenharmony_ci pub struct utsname {} 4742add0d91Sopenharmony_ci} 4752add0d91Sopenharmony_ci 4762add0d91Sopenharmony_cipub const AF_UNSPEC: ::c_int = 0; 4772add0d91Sopenharmony_cipub const AF_INET: ::c_int = 2; 4782add0d91Sopenharmony_cipub const AF_INET6: ::c_int = 10; 4792add0d91Sopenharmony_ci 4802add0d91Sopenharmony_ci// Dummy 4812add0d91Sopenharmony_cipub const AF_UNIX: ::c_int = 1; 4822add0d91Sopenharmony_ci 4832add0d91Sopenharmony_cipub const CLOCK_REALTIME: ::clockid_t = 1; 4842add0d91Sopenharmony_cipub const CLOCK_MONOTONIC: ::clockid_t = 4; 4852add0d91Sopenharmony_ci 4862add0d91Sopenharmony_ci// Dummy 4872add0d91Sopenharmony_cipub const EAI_SYSTEM: ::c_int = -11; 4882add0d91Sopenharmony_ci 4892add0d91Sopenharmony_cipub const EPERM: ::c_int = 1; 4902add0d91Sopenharmony_cipub const ENOENT: ::c_int = 2; 4912add0d91Sopenharmony_cipub const ESRCH: ::c_int = 3; 4922add0d91Sopenharmony_cipub const EINTR: ::c_int = 4; 4932add0d91Sopenharmony_cipub const EIO: ::c_int = 5; 4942add0d91Sopenharmony_cipub const ENXIO: ::c_int = 6; 4952add0d91Sopenharmony_cipub const E2BIG: ::c_int = 7; 4962add0d91Sopenharmony_cipub const ENOEXEC: ::c_int = 8; 4972add0d91Sopenharmony_cipub const EBADF: ::c_int = 9; 4982add0d91Sopenharmony_cipub const ECHILD: ::c_int = 10; 4992add0d91Sopenharmony_cipub const EAGAIN: ::c_int = 11; 5002add0d91Sopenharmony_cipub const ENOMEM: ::c_int = 12; 5012add0d91Sopenharmony_cipub const EACCES: ::c_int = 13; 5022add0d91Sopenharmony_cipub const EFAULT: ::c_int = 14; 5032add0d91Sopenharmony_cipub const EBUSY: ::c_int = 16; 5042add0d91Sopenharmony_cipub const EEXIST: ::c_int = 17; 5052add0d91Sopenharmony_cipub const EXDEV: ::c_int = 18; 5062add0d91Sopenharmony_cipub const ENODEV: ::c_int = 19; 5072add0d91Sopenharmony_cipub const ENOTDIR: ::c_int = 20; 5082add0d91Sopenharmony_cipub const EISDIR: ::c_int = 21; 5092add0d91Sopenharmony_cipub const EINVAL: ::c_int = 22; 5102add0d91Sopenharmony_cipub const ENFILE: ::c_int = 23; 5112add0d91Sopenharmony_cipub const EMFILE: ::c_int = 24; 5122add0d91Sopenharmony_cipub const ENOTTY: ::c_int = 25; 5132add0d91Sopenharmony_cipub const ETXTBSY: ::c_int = 26; 5142add0d91Sopenharmony_cipub const EFBIG: ::c_int = 27; 5152add0d91Sopenharmony_cipub const ENOSPC: ::c_int = 28; 5162add0d91Sopenharmony_cipub const ESPIPE: ::c_int = 29; 5172add0d91Sopenharmony_cipub const EROFS: ::c_int = 30; 5182add0d91Sopenharmony_cipub const EMLINK: ::c_int = 31; 5192add0d91Sopenharmony_cipub const EPIPE: ::c_int = 32; 5202add0d91Sopenharmony_cipub const EDOM: ::c_int = 33; 5212add0d91Sopenharmony_cipub const ERANGE: ::c_int = 34; 5222add0d91Sopenharmony_cipub const EDEADLK: ::c_int = 35; 5232add0d91Sopenharmony_cipub const ENAMETOOLONG: ::c_int = 36; 5242add0d91Sopenharmony_cipub const ENOLCK: ::c_int = 37; 5252add0d91Sopenharmony_cipub const ENOSYS: ::c_int = 38; 5262add0d91Sopenharmony_cipub const ENOTEMPTY: ::c_int = 39; 5272add0d91Sopenharmony_cipub const ELOOP: ::c_int = 40; 5282add0d91Sopenharmony_cipub const EWOULDBLOCK: ::c_int = EAGAIN; 5292add0d91Sopenharmony_cipub const ENOMSG: ::c_int = 42; 5302add0d91Sopenharmony_cipub const EIDRM: ::c_int = 43; 5312add0d91Sopenharmony_cipub const ECHRNG: ::c_int = 44; 5322add0d91Sopenharmony_cipub const EL2NSYNC: ::c_int = 45; 5332add0d91Sopenharmony_cipub const EL3HLT: ::c_int = 46; 5342add0d91Sopenharmony_cipub const EL3RST: ::c_int = 47; 5352add0d91Sopenharmony_cipub const ELNRNG: ::c_int = 48; 5362add0d91Sopenharmony_cipub const EUNATCH: ::c_int = 49; 5372add0d91Sopenharmony_cipub const ENOCSI: ::c_int = 50; 5382add0d91Sopenharmony_cipub const EL2HLT: ::c_int = 51; 5392add0d91Sopenharmony_cipub const EBADE: ::c_int = 52; 5402add0d91Sopenharmony_cipub const EBADR: ::c_int = 53; 5412add0d91Sopenharmony_cipub const EXFULL: ::c_int = 54; 5422add0d91Sopenharmony_cipub const ENOANO: ::c_int = 55; 5432add0d91Sopenharmony_cipub const EBADRQC: ::c_int = 56; 5442add0d91Sopenharmony_cipub const EBADSLT: ::c_int = 57; 5452add0d91Sopenharmony_cipub const EDEADLOCK: ::c_int = EDEADLK; 5462add0d91Sopenharmony_cipub const EBFONT: ::c_int = 59; 5472add0d91Sopenharmony_cipub const ENOSTR: ::c_int = 60; 5482add0d91Sopenharmony_cipub const ENODATA: ::c_int = 61; 5492add0d91Sopenharmony_cipub const ETIME: ::c_int = 62; 5502add0d91Sopenharmony_cipub const ENOSR: ::c_int = 63; 5512add0d91Sopenharmony_cipub const ENONET: ::c_int = 64; 5522add0d91Sopenharmony_cipub const ENOPKG: ::c_int = 65; 5532add0d91Sopenharmony_cipub const EREMOTE: ::c_int = 66; 5542add0d91Sopenharmony_cipub const ENOLINK: ::c_int = 67; 5552add0d91Sopenharmony_cipub const EADV: ::c_int = 68; 5562add0d91Sopenharmony_cipub const ESRMNT: ::c_int = 69; 5572add0d91Sopenharmony_cipub const ECOMM: ::c_int = 70; 5582add0d91Sopenharmony_cipub const EPROTO: ::c_int = 71; 5592add0d91Sopenharmony_cipub const EMULTIHOP: ::c_int = 72; 5602add0d91Sopenharmony_cipub const EDOTDOT: ::c_int = 73; 5612add0d91Sopenharmony_cipub const EBADMSG: ::c_int = 74; 5622add0d91Sopenharmony_cipub const EOVERFLOW: ::c_int = 75; 5632add0d91Sopenharmony_cipub const ENOTUNIQ: ::c_int = 76; 5642add0d91Sopenharmony_cipub const EBADFD: ::c_int = 77; 5652add0d91Sopenharmony_cipub const EREMCHG: ::c_int = 78; 5662add0d91Sopenharmony_cipub const ELIBACC: ::c_int = 79; 5672add0d91Sopenharmony_cipub const ELIBBAD: ::c_int = 80; 5682add0d91Sopenharmony_cipub const ELIBSCN: ::c_int = 81; 5692add0d91Sopenharmony_cipub const ELIBMAX: ::c_int = 82; 5702add0d91Sopenharmony_cipub const ELIBEXEC: ::c_int = 83; 5712add0d91Sopenharmony_cipub const EILSEQ: ::c_int = 84; 5722add0d91Sopenharmony_cipub const ERESTART: ::c_int = 85; 5732add0d91Sopenharmony_cipub const ESTRPIPE: ::c_int = 86; 5742add0d91Sopenharmony_cipub const EUSERS: ::c_int = 87; 5752add0d91Sopenharmony_cipub const ENOTSOCK: ::c_int = 88; 5762add0d91Sopenharmony_cipub const EDESTADDRREQ: ::c_int = 89; 5772add0d91Sopenharmony_cipub const EMSGSIZE: ::c_int = 90; 5782add0d91Sopenharmony_cipub const EPROTOTYPE: ::c_int = 91; 5792add0d91Sopenharmony_cipub const ENOPROTOOPT: ::c_int = 92; 5802add0d91Sopenharmony_cipub const EPROTONOSUPPORT: ::c_int = 93; 5812add0d91Sopenharmony_cipub const ESOCKTNOSUPPORT: ::c_int = 94; 5822add0d91Sopenharmony_cipub const EOPNOTSUPP: ::c_int = 95; 5832add0d91Sopenharmony_cipub const EPFNOSUPPORT: ::c_int = 96; 5842add0d91Sopenharmony_cipub const EAFNOSUPPORT: ::c_int = 97; 5852add0d91Sopenharmony_cipub const EADDRINUSE: ::c_int = 98; 5862add0d91Sopenharmony_cipub const EADDRNOTAVAIL: ::c_int = 99; 5872add0d91Sopenharmony_cipub const ENETDOWN: ::c_int = 100; 5882add0d91Sopenharmony_cipub const ENETUNREACH: ::c_int = 101; 5892add0d91Sopenharmony_cipub const ENETRESET: ::c_int = 102; 5902add0d91Sopenharmony_cipub const ECONNABORTED: ::c_int = 103; 5912add0d91Sopenharmony_cipub const ECONNRESET: ::c_int = 104; 5922add0d91Sopenharmony_cipub const ENOBUFS: ::c_int = 105; 5932add0d91Sopenharmony_cipub const EISCONN: ::c_int = 106; 5942add0d91Sopenharmony_cipub const ENOTCONN: ::c_int = 107; 5952add0d91Sopenharmony_cipub const ESHUTDOWN: ::c_int = 108; 5962add0d91Sopenharmony_cipub const ETOOMANYREFS: ::c_int = 109; 5972add0d91Sopenharmony_cipub const ETIMEDOUT: ::c_int = 110; 5982add0d91Sopenharmony_cipub const ECONNREFUSED: ::c_int = 111; 5992add0d91Sopenharmony_cipub const EHOSTDOWN: ::c_int = 112; 6002add0d91Sopenharmony_cipub const EHOSTUNREACH: ::c_int = 113; 6012add0d91Sopenharmony_cipub const EALREADY: ::c_int = 114; 6022add0d91Sopenharmony_cipub const EINPROGRESS: ::c_int = 115; 6032add0d91Sopenharmony_cipub const ESTALE: ::c_int = 116; 6042add0d91Sopenharmony_cipub const EUCLEAN: ::c_int = 117; 6052add0d91Sopenharmony_cipub const ENOTNAM: ::c_int = 118; 6062add0d91Sopenharmony_cipub const ENAVAIL: ::c_int = 119; 6072add0d91Sopenharmony_cipub const EISNAM: ::c_int = 120; 6082add0d91Sopenharmony_cipub const EREMOTEIO: ::c_int = 121; 6092add0d91Sopenharmony_cipub const EDQUOT: ::c_int = 122; 6102add0d91Sopenharmony_cipub const ENOMEDIUM: ::c_int = 123; 6112add0d91Sopenharmony_cipub const EMEDIUMTYPE: ::c_int = 124; 6122add0d91Sopenharmony_cipub const ECANCELED: ::c_int = 125; 6132add0d91Sopenharmony_cipub const ENOKEY: ::c_int = 126; 6142add0d91Sopenharmony_cipub const EKEYEXPIRED: ::c_int = 127; 6152add0d91Sopenharmony_cipub const EKEYREVOKED: ::c_int = 128; 6162add0d91Sopenharmony_cipub const EKEYREJECTED: ::c_int = 129; 6172add0d91Sopenharmony_cipub const EOWNERDEAD: ::c_int = 130; 6182add0d91Sopenharmony_cipub const ENOTRECOVERABLE: ::c_int = 131; 6192add0d91Sopenharmony_cipub const ERFKILL: ::c_int = 132; 6202add0d91Sopenharmony_cipub const EHWPOISON: ::c_int = 133; 6212add0d91Sopenharmony_ci 6222add0d91Sopenharmony_cipub const EXIT_FAILURE: ::c_int = 1; 6232add0d91Sopenharmony_cipub const EXIT_SUCCESS: ::c_int = 0; 6242add0d91Sopenharmony_ci 6252add0d91Sopenharmony_cipub const F_DUPFD: ::c_int = 0; 6262add0d91Sopenharmony_cipub const F_GETFD: ::c_int = 1; 6272add0d91Sopenharmony_cipub const F_SETFD: ::c_int = 2; 6282add0d91Sopenharmony_cipub const F_GETFL: ::c_int = 3; 6292add0d91Sopenharmony_cipub const F_SETFL: ::c_int = 4; 6302add0d91Sopenharmony_cipub const F_GETOWN: ::c_int = 5; 6312add0d91Sopenharmony_cipub const F_SETOWN: ::c_int = 6; 6322add0d91Sopenharmony_cipub const F_GETLK: ::c_int = 7; 6332add0d91Sopenharmony_cipub const F_SETLK: ::c_int = 8; 6342add0d91Sopenharmony_cipub const F_SETLKW: ::c_int = 9; 6352add0d91Sopenharmony_cipub const F_RGETLK: ::c_int = 10; 6362add0d91Sopenharmony_cipub const F_RSETLK: ::c_int = 11; 6372add0d91Sopenharmony_cipub const F_CNVT: ::c_int = 12; 6382add0d91Sopenharmony_cipub const F_RSETLKW: ::c_int = 13; 6392add0d91Sopenharmony_cipub const F_DUPFD_CLOEXEC: ::c_int = 14; 6402add0d91Sopenharmony_ci 6412add0d91Sopenharmony_cipub const FD_SETSIZE: usize = 1024; 6422add0d91Sopenharmony_ci 6432add0d91Sopenharmony_ci// Dummy 6442add0d91Sopenharmony_cipub const FIOCLEX: ::c_int = 0x5451; 6452add0d91Sopenharmony_ci 6462add0d91Sopenharmony_cipub const FIONBIO: ::c_int = 0x8004667e; 6472add0d91Sopenharmony_cipub const FIONREAD: ::c_int = 0x4004667f; 6482add0d91Sopenharmony_ci 6492add0d91Sopenharmony_cipub const IP_ADD_MEMBERSHIP: ::c_int = 3; 6502add0d91Sopenharmony_cipub const IP_DROP_MEMBERSHIP: ::c_int = 4; 6512add0d91Sopenharmony_ci 6522add0d91Sopenharmony_cipub const IP_TOS: ::c_int = 1; 6532add0d91Sopenharmony_cipub const IP_TTL: ::c_int = 2; 6542add0d91Sopenharmony_ci 6552add0d91Sopenharmony_cipub const IP_MULTICAST_TTL: ::c_int = 5; 6562add0d91Sopenharmony_cipub const IP_MULTICAST_IF: ::c_int = 6; 6572add0d91Sopenharmony_cipub const IP_MULTICAST_LOOP: ::c_int = 7; 6582add0d91Sopenharmony_ci 6592add0d91Sopenharmony_cipub const IPV6_JOIN_GROUP: ::c_int = 12; 6602add0d91Sopenharmony_cipub const IPV6_ADD_MEMBERSHIP: ::c_int = 12; 6612add0d91Sopenharmony_cipub const IPV6_LEAVE_GROUP: ::c_int = 13; 6622add0d91Sopenharmony_cipub const IPV6_DROP_MEMBERSHIP: ::c_int = 13; 6632add0d91Sopenharmony_cipub const IPV6_V6ONLY: ::c_int = 27; 6642add0d91Sopenharmony_ci 6652add0d91Sopenharmony_ci// Dummy 6662add0d91Sopenharmony_cipub const IPV6_MULTICAST_LOOP: ::c_int = 7; 6672add0d91Sopenharmony_ci 6682add0d91Sopenharmony_cipub const MSG_PEEK: ::c_int = 0x01; 6692add0d91Sopenharmony_cipub const MSG_WAITALL: ::c_int = 0x02; 6702add0d91Sopenharmony_cipub const MSG_OOB: ::c_int = 0x04; 6712add0d91Sopenharmony_cipub const MSG_DONTWAIT: ::c_int = 0x08; 6722add0d91Sopenharmony_cipub const MSG_MORE: ::c_int = 0x10; 6732add0d91Sopenharmony_ci 6742add0d91Sopenharmony_cipub const O_ACCMODE: ::c_int = 3; 6752add0d91Sopenharmony_cipub const O_RDONLY: ::c_int = 0; 6762add0d91Sopenharmony_cipub const O_WRONLY: ::c_int = 1; 6772add0d91Sopenharmony_cipub const O_RDWR: ::c_int = 2; 6782add0d91Sopenharmony_cipub const O_APPEND: ::c_int = 1024; 6792add0d91Sopenharmony_cipub const O_CREAT: ::c_int = 64; 6802add0d91Sopenharmony_cipub const O_EXCL: ::c_int = 128; 6812add0d91Sopenharmony_cipub const O_NOCTTY: ::c_int = 256; 6822add0d91Sopenharmony_cipub const O_NONBLOCK: ::c_int = 2048; 6832add0d91Sopenharmony_cipub const O_TRUNC: ::c_int = 512; 6842add0d91Sopenharmony_cipub const O_CLOEXEC: ::c_int = 524288; 6852add0d91Sopenharmony_ci 6862add0d91Sopenharmony_cipub const POLLIN: ::c_short = 0x1; 6872add0d91Sopenharmony_cipub const POLLPRI: ::c_short = 0x2; 6882add0d91Sopenharmony_cipub const POLLOUT: ::c_short = 0x4; 6892add0d91Sopenharmony_cipub const POLLERR: ::c_short = 0x8; 6902add0d91Sopenharmony_cipub const POLLHUP: ::c_short = 0x10; 6912add0d91Sopenharmony_cipub const POLLNVAL: ::c_short = 0x20; 6922add0d91Sopenharmony_ci 6932add0d91Sopenharmony_cipub const PTHREAD_COND_INITIALIZER: pthread_cond_t = usize::max_value(); 6942add0d91Sopenharmony_cipub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = usize::max_value(); 6952add0d91Sopenharmony_cipub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = usize::max_value(); 6962add0d91Sopenharmony_ci 6972add0d91Sopenharmony_cipub const PTHREAD_MUTEX_NORMAL: ::c_int = 0; 6982add0d91Sopenharmony_cipub const PTHREAD_MUTEX_RECURSIVE: ::c_int = 1; 6992add0d91Sopenharmony_cipub const PTHREAD_STACK_MIN: ::size_t = 0; 7002add0d91Sopenharmony_ci 7012add0d91Sopenharmony_ci// Dummy 7022add0d91Sopenharmony_cipub const RTLD_DEFAULT: *mut ::c_void = 0i64 as *mut ::c_void; 7032add0d91Sopenharmony_ci 7042add0d91Sopenharmony_cipub const _SC_ARG_MAX: ::c_int = 0; 7052add0d91Sopenharmony_cipub const _SC_CHILD_MAX: ::c_int = 1; 7062add0d91Sopenharmony_cipub const _SC_CLK_TCK: ::c_int = 2; 7072add0d91Sopenharmony_cipub const _SC_NGROUPS_MAX: ::c_int = 3; 7082add0d91Sopenharmony_cipub const _SC_OPEN_MAX: ::c_int = 4; 7092add0d91Sopenharmony_cipub const _SC_JOB_CONTROL: ::c_int = 5; 7102add0d91Sopenharmony_cipub const _SC_SAVED_IDS: ::c_int = 6; 7112add0d91Sopenharmony_cipub const _SC_VERSION: ::c_int = 7; 7122add0d91Sopenharmony_cipub const _SC_PAGESIZE: ::c_int = 8; 7132add0d91Sopenharmony_cipub const _SC_PAGE_SIZE: ::c_int = _SC_PAGESIZE; 7142add0d91Sopenharmony_cipub const _SC_NPROCESSORS_CONF: ::c_int = 9; 7152add0d91Sopenharmony_cipub const _SC_NPROCESSORS_ONLN: ::c_int = 10; 7162add0d91Sopenharmony_cipub const _SC_PHYS_PAGES: ::c_int = 11; 7172add0d91Sopenharmony_cipub const _SC_AVPHYS_PAGES: ::c_int = 12; 7182add0d91Sopenharmony_cipub const _SC_MQ_OPEN_MAX: ::c_int = 13; 7192add0d91Sopenharmony_cipub const _SC_MQ_PRIO_MAX: ::c_int = 14; 7202add0d91Sopenharmony_cipub const _SC_RTSIG_MAX: ::c_int = 15; 7212add0d91Sopenharmony_cipub const _SC_SEM_NSEMS_MAX: ::c_int = 16; 7222add0d91Sopenharmony_cipub const _SC_SEM_VALUE_MAX: ::c_int = 17; 7232add0d91Sopenharmony_cipub const _SC_SIGQUEUE_MAX: ::c_int = 18; 7242add0d91Sopenharmony_cipub const _SC_TIMER_MAX: ::c_int = 19; 7252add0d91Sopenharmony_cipub const _SC_TZNAME_MAX: ::c_int = 20; 7262add0d91Sopenharmony_cipub const _SC_ASYNCHRONOUS_IO: ::c_int = 21; 7272add0d91Sopenharmony_cipub const _SC_FSYNC: ::c_int = 22; 7282add0d91Sopenharmony_cipub const _SC_MAPPED_FILES: ::c_int = 23; 7292add0d91Sopenharmony_cipub const _SC_MEMLOCK: ::c_int = 24; 7302add0d91Sopenharmony_cipub const _SC_MEMLOCK_RANGE: ::c_int = 25; 7312add0d91Sopenharmony_cipub const _SC_MEMORY_PROTECTION: ::c_int = 26; 7322add0d91Sopenharmony_cipub const _SC_MESSAGE_PASSING: ::c_int = 27; 7332add0d91Sopenharmony_cipub const _SC_PRIORITIZED_IO: ::c_int = 28; 7342add0d91Sopenharmony_cipub const _SC_REALTIME_SIGNALS: ::c_int = 29; 7352add0d91Sopenharmony_cipub const _SC_SEMAPHORES: ::c_int = 30; 7362add0d91Sopenharmony_cipub const _SC_SHARED_MEMORY_OBJECTS: ::c_int = 31; 7372add0d91Sopenharmony_cipub const _SC_SYNCHRONIZED_IO: ::c_int = 32; 7382add0d91Sopenharmony_cipub const _SC_TIMERS: ::c_int = 33; 7392add0d91Sopenharmony_cipub const _SC_AIO_LISTIO_MAX: ::c_int = 34; 7402add0d91Sopenharmony_cipub const _SC_AIO_MAX: ::c_int = 35; 7412add0d91Sopenharmony_cipub const _SC_AIO_PRIO_DELTA_MAX: ::c_int = 36; 7422add0d91Sopenharmony_cipub const _SC_DELAYTIMER_MAX: ::c_int = 37; 7432add0d91Sopenharmony_cipub const _SC_THREAD_KEYS_MAX: ::c_int = 38; 7442add0d91Sopenharmony_cipub const _SC_THREAD_STACK_MIN: ::c_int = 39; 7452add0d91Sopenharmony_cipub const _SC_THREAD_THREADS_MAX: ::c_int = 40; 7462add0d91Sopenharmony_cipub const _SC_TTY_NAME_MAX: ::c_int = 41; 7472add0d91Sopenharmony_cipub const _SC_THREADS: ::c_int = 42; 7482add0d91Sopenharmony_cipub const _SC_THREAD_ATTR_STACKADDR: ::c_int = 43; 7492add0d91Sopenharmony_cipub const _SC_THREAD_ATTR_STACKSIZE: ::c_int = 44; 7502add0d91Sopenharmony_cipub const _SC_THREAD_PRIORITY_SCHEDULING: ::c_int = 45; 7512add0d91Sopenharmony_cipub const _SC_THREAD_PRIO_INHERIT: ::c_int = 46; 7522add0d91Sopenharmony_cipub const _SC_THREAD_PRIO_PROTECT: ::c_int = 47; 7532add0d91Sopenharmony_cipub const _SC_THREAD_PRIO_CEILING: ::c_int = _SC_THREAD_PRIO_PROTECT; 7542add0d91Sopenharmony_cipub const _SC_THREAD_PROCESS_SHARED: ::c_int = 48; 7552add0d91Sopenharmony_cipub const _SC_THREAD_SAFE_FUNCTIONS: ::c_int = 49; 7562add0d91Sopenharmony_cipub const _SC_GETGR_R_SIZE_MAX: ::c_int = 50; 7572add0d91Sopenharmony_cipub const _SC_GETPW_R_SIZE_MAX: ::c_int = 51; 7582add0d91Sopenharmony_cipub const _SC_LOGIN_NAME_MAX: ::c_int = 52; 7592add0d91Sopenharmony_cipub const _SC_THREAD_DESTRUCTOR_ITERATIONS: ::c_int = 53; 7602add0d91Sopenharmony_cipub const _SC_ADVISORY_INFO: ::c_int = 54; 7612add0d91Sopenharmony_cipub const _SC_ATEXIT_MAX: ::c_int = 55; 7622add0d91Sopenharmony_cipub const _SC_BARRIERS: ::c_int = 56; 7632add0d91Sopenharmony_cipub const _SC_BC_BASE_MAX: ::c_int = 57; 7642add0d91Sopenharmony_cipub const _SC_BC_DIM_MAX: ::c_int = 58; 7652add0d91Sopenharmony_cipub const _SC_BC_SCALE_MAX: ::c_int = 59; 7662add0d91Sopenharmony_cipub const _SC_BC_STRING_MAX: ::c_int = 60; 7672add0d91Sopenharmony_cipub const _SC_CLOCK_SELECTION: ::c_int = 61; 7682add0d91Sopenharmony_cipub const _SC_COLL_WEIGHTS_MAX: ::c_int = 62; 7692add0d91Sopenharmony_cipub const _SC_CPUTIME: ::c_int = 63; 7702add0d91Sopenharmony_cipub const _SC_EXPR_NEST_MAX: ::c_int = 64; 7712add0d91Sopenharmony_cipub const _SC_HOST_NAME_MAX: ::c_int = 65; 7722add0d91Sopenharmony_cipub const _SC_IOV_MAX: ::c_int = 66; 7732add0d91Sopenharmony_cipub const _SC_IPV6: ::c_int = 67; 7742add0d91Sopenharmony_cipub const _SC_LINE_MAX: ::c_int = 68; 7752add0d91Sopenharmony_cipub const _SC_MONOTONIC_CLOCK: ::c_int = 69; 7762add0d91Sopenharmony_cipub const _SC_RAW_SOCKETS: ::c_int = 70; 7772add0d91Sopenharmony_cipub const _SC_READER_WRITER_LOCKS: ::c_int = 71; 7782add0d91Sopenharmony_cipub const _SC_REGEXP: ::c_int = 72; 7792add0d91Sopenharmony_cipub const _SC_RE_DUP_MAX: ::c_int = 73; 7802add0d91Sopenharmony_cipub const _SC_SHELL: ::c_int = 74; 7812add0d91Sopenharmony_cipub const _SC_SPAWN: ::c_int = 75; 7822add0d91Sopenharmony_cipub const _SC_SPIN_LOCKS: ::c_int = 76; 7832add0d91Sopenharmony_cipub const _SC_SPORADIC_SERVER: ::c_int = 77; 7842add0d91Sopenharmony_cipub const _SC_SS_REPL_MAX: ::c_int = 78; 7852add0d91Sopenharmony_cipub const _SC_SYMLOOP_MAX: ::c_int = 79; 7862add0d91Sopenharmony_cipub const _SC_THREAD_CPUTIME: ::c_int = 80; 7872add0d91Sopenharmony_cipub const _SC_THREAD_SPORADIC_SERVER: ::c_int = 81; 7882add0d91Sopenharmony_cipub const _SC_TIMEOUTS: ::c_int = 82; 7892add0d91Sopenharmony_cipub const _SC_TRACE: ::c_int = 83; 7902add0d91Sopenharmony_cipub const _SC_TRACE_EVENT_FILTER: ::c_int = 84; 7912add0d91Sopenharmony_cipub const _SC_TRACE_EVENT_NAME_MAX: ::c_int = 85; 7922add0d91Sopenharmony_cipub const _SC_TRACE_INHERIT: ::c_int = 86; 7932add0d91Sopenharmony_cipub const _SC_TRACE_LOG: ::c_int = 87; 7942add0d91Sopenharmony_cipub const _SC_TRACE_NAME_MAX: ::c_int = 88; 7952add0d91Sopenharmony_cipub const _SC_TRACE_SYS_MAX: ::c_int = 89; 7962add0d91Sopenharmony_cipub const _SC_TRACE_USER_EVENT_MAX: ::c_int = 90; 7972add0d91Sopenharmony_cipub const _SC_TYPED_MEMORY_OBJECTS: ::c_int = 91; 7982add0d91Sopenharmony_cipub const _SC_V7_ILP32_OFF32: ::c_int = 92; 7992add0d91Sopenharmony_cipub const _SC_V6_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; 8002add0d91Sopenharmony_cipub const _SC_XBS5_ILP32_OFF32: ::c_int = _SC_V7_ILP32_OFF32; 8012add0d91Sopenharmony_cipub const _SC_V7_ILP32_OFFBIG: ::c_int = 93; 8022add0d91Sopenharmony_cipub const _SC_V6_ILP32_OFFBIG: ::c_int = _SC_V7_ILP32_OFFBIG; 8032add0d91Sopenharmony_cipub const _SC_XBS5_ILP32_OFFBIG: ::c_int = _SC_V7_ILP32_OFFBIG; 8042add0d91Sopenharmony_cipub const _SC_V7_LP64_OFF64: ::c_int = 94; 8052add0d91Sopenharmony_cipub const _SC_V6_LP64_OFF64: ::c_int = _SC_V7_LP64_OFF64; 8062add0d91Sopenharmony_cipub const _SC_XBS5_LP64_OFF64: ::c_int = _SC_V7_LP64_OFF64; 8072add0d91Sopenharmony_cipub const _SC_V7_LPBIG_OFFBIG: ::c_int = 95; 8082add0d91Sopenharmony_cipub const _SC_V6_LPBIG_OFFBIG: ::c_int = _SC_V7_LPBIG_OFFBIG; 8092add0d91Sopenharmony_cipub const _SC_XBS5_LPBIG_OFFBIG: ::c_int = _SC_V7_LPBIG_OFFBIG; 8102add0d91Sopenharmony_cipub const _SC_XOPEN_CRYPT: ::c_int = 96; 8112add0d91Sopenharmony_cipub const _SC_XOPEN_ENH_I18N: ::c_int = 97; 8122add0d91Sopenharmony_cipub const _SC_XOPEN_LEGACY: ::c_int = 98; 8132add0d91Sopenharmony_cipub const _SC_XOPEN_REALTIME: ::c_int = 99; 8142add0d91Sopenharmony_cipub const _SC_STREAM_MAX: ::c_int = 100; 8152add0d91Sopenharmony_cipub const _SC_PRIORITY_SCHEDULING: ::c_int = 101; 8162add0d91Sopenharmony_cipub const _SC_XOPEN_REALTIME_THREADS: ::c_int = 102; 8172add0d91Sopenharmony_cipub const _SC_XOPEN_SHM: ::c_int = 103; 8182add0d91Sopenharmony_cipub const _SC_XOPEN_STREAMS: ::c_int = 104; 8192add0d91Sopenharmony_cipub const _SC_XOPEN_UNIX: ::c_int = 105; 8202add0d91Sopenharmony_cipub const _SC_XOPEN_VERSION: ::c_int = 106; 8212add0d91Sopenharmony_cipub const _SC_2_CHAR_TERM: ::c_int = 107; 8222add0d91Sopenharmony_cipub const _SC_2_C_BIND: ::c_int = 108; 8232add0d91Sopenharmony_cipub const _SC_2_C_DEV: ::c_int = 109; 8242add0d91Sopenharmony_cipub const _SC_2_FORT_DEV: ::c_int = 110; 8252add0d91Sopenharmony_cipub const _SC_2_FORT_RUN: ::c_int = 111; 8262add0d91Sopenharmony_cipub const _SC_2_LOCALEDEF: ::c_int = 112; 8272add0d91Sopenharmony_cipub const _SC_2_PBS: ::c_int = 113; 8282add0d91Sopenharmony_cipub const _SC_2_PBS_ACCOUNTING: ::c_int = 114; 8292add0d91Sopenharmony_cipub const _SC_2_PBS_CHECKPOINT: ::c_int = 115; 8302add0d91Sopenharmony_cipub const _SC_2_PBS_LOCATE: ::c_int = 116; 8312add0d91Sopenharmony_cipub const _SC_2_PBS_MESSAGE: ::c_int = 117; 8322add0d91Sopenharmony_cipub const _SC_2_PBS_TRACK: ::c_int = 118; 8332add0d91Sopenharmony_cipub const _SC_2_SW_DEV: ::c_int = 119; 8342add0d91Sopenharmony_cipub const _SC_2_UPE: ::c_int = 120; 8352add0d91Sopenharmony_cipub const _SC_2_VERSION: ::c_int = 121; 8362add0d91Sopenharmony_cipub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 122; 8372add0d91Sopenharmony_cipub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 123; 8382add0d91Sopenharmony_cipub const _SC_XOPEN_UUCP: ::c_int = 124; 8392add0d91Sopenharmony_cipub const _SC_LEVEL1_ICACHE_SIZE: ::c_int = 125; 8402add0d91Sopenharmony_cipub const _SC_LEVEL1_ICACHE_ASSOC: ::c_int = 126; 8412add0d91Sopenharmony_cipub const _SC_LEVEL1_ICACHE_LINESIZE: ::c_int = 127; 8422add0d91Sopenharmony_cipub const _SC_LEVEL1_DCACHE_SIZE: ::c_int = 128; 8432add0d91Sopenharmony_cipub const _SC_LEVEL1_DCACHE_ASSOC: ::c_int = 129; 8442add0d91Sopenharmony_cipub const _SC_LEVEL1_DCACHE_LINESIZE: ::c_int = 130; 8452add0d91Sopenharmony_cipub const _SC_LEVEL2_CACHE_SIZE: ::c_int = 131; 8462add0d91Sopenharmony_cipub const _SC_LEVEL2_CACHE_ASSOC: ::c_int = 132; 8472add0d91Sopenharmony_cipub const _SC_LEVEL2_CACHE_LINESIZE: ::c_int = 133; 8482add0d91Sopenharmony_cipub const _SC_LEVEL3_CACHE_SIZE: ::c_int = 134; 8492add0d91Sopenharmony_cipub const _SC_LEVEL3_CACHE_ASSOC: ::c_int = 135; 8502add0d91Sopenharmony_cipub const _SC_LEVEL3_CACHE_LINESIZE: ::c_int = 136; 8512add0d91Sopenharmony_cipub const _SC_LEVEL4_CACHE_SIZE: ::c_int = 137; 8522add0d91Sopenharmony_cipub const _SC_LEVEL4_CACHE_ASSOC: ::c_int = 138; 8532add0d91Sopenharmony_cipub const _SC_LEVEL4_CACHE_LINESIZE: ::c_int = 139; 8542add0d91Sopenharmony_ci 8552add0d91Sopenharmony_cipub const S_BLKSIZE: ::mode_t = 1024; 8562add0d91Sopenharmony_cipub const S_IREAD: ::mode_t = 256; 8572add0d91Sopenharmony_cipub const S_IWRITE: ::mode_t = 128; 8582add0d91Sopenharmony_cipub const S_IEXEC: ::mode_t = 64; 8592add0d91Sopenharmony_cipub const S_ENFMT: ::mode_t = 1024; 8602add0d91Sopenharmony_cipub const S_IFMT: ::mode_t = 61440; 8612add0d91Sopenharmony_cipub const S_IFDIR: ::mode_t = 16384; 8622add0d91Sopenharmony_cipub const S_IFCHR: ::mode_t = 8192; 8632add0d91Sopenharmony_cipub const S_IFBLK: ::mode_t = 24576; 8642add0d91Sopenharmony_cipub const S_IFREG: ::mode_t = 32768; 8652add0d91Sopenharmony_cipub const S_IFLNK: ::mode_t = 40960; 8662add0d91Sopenharmony_cipub const S_IFSOCK: ::mode_t = 49152; 8672add0d91Sopenharmony_cipub const S_IFIFO: ::mode_t = 4096; 8682add0d91Sopenharmony_cipub const S_IRUSR: ::mode_t = 256; 8692add0d91Sopenharmony_cipub const S_IWUSR: ::mode_t = 128; 8702add0d91Sopenharmony_cipub const S_IXUSR: ::mode_t = 64; 8712add0d91Sopenharmony_cipub const S_IRGRP: ::mode_t = 32; 8722add0d91Sopenharmony_cipub const S_IWGRP: ::mode_t = 16; 8732add0d91Sopenharmony_cipub const S_IXGRP: ::mode_t = 8; 8742add0d91Sopenharmony_cipub const S_IROTH: ::mode_t = 4; 8752add0d91Sopenharmony_cipub const S_IWOTH: ::mode_t = 2; 8762add0d91Sopenharmony_cipub const S_IXOTH: ::mode_t = 1; 8772add0d91Sopenharmony_ci 8782add0d91Sopenharmony_cipub const SEEK_SET: ::c_int = 0; 8792add0d91Sopenharmony_cipub const SEEK_CUR: ::c_int = 1; 8802add0d91Sopenharmony_cipub const SEEK_END: ::c_int = 2; 8812add0d91Sopenharmony_ci 8822add0d91Sopenharmony_cipub const SHUT_RD: ::c_int = 0; 8832add0d91Sopenharmony_cipub const SHUT_WR: ::c_int = 1; 8842add0d91Sopenharmony_cipub const SHUT_RDWR: ::c_int = 2; 8852add0d91Sopenharmony_ci 8862add0d91Sopenharmony_cipub const SIG_SETMASK: ::c_int = 0; 8872add0d91Sopenharmony_ci 8882add0d91Sopenharmony_cipub const SIGHUP: ::c_int = 1; 8892add0d91Sopenharmony_cipub const SIGINT: ::c_int = 2; 8902add0d91Sopenharmony_cipub const SIGQUIT: ::c_int = 3; 8912add0d91Sopenharmony_cipub const SIGILL: ::c_int = 4; 8922add0d91Sopenharmony_cipub const SIGABRT: ::c_int = 6; 8932add0d91Sopenharmony_cipub const SIGEMT: ::c_int = 7; 8942add0d91Sopenharmony_cipub const SIGFPE: ::c_int = 8; 8952add0d91Sopenharmony_cipub const SIGKILL: ::c_int = 9; 8962add0d91Sopenharmony_cipub const SIGSEGV: ::c_int = 11; 8972add0d91Sopenharmony_cipub const SIGPIPE: ::c_int = 13; 8982add0d91Sopenharmony_cipub const SIGALRM: ::c_int = 14; 8992add0d91Sopenharmony_cipub const SIGTERM: ::c_int = 15; 9002add0d91Sopenharmony_ci 9012add0d91Sopenharmony_cipub const SO_DEBUG: ::c_int = 0x0001; 9022add0d91Sopenharmony_cipub const SO_ACCEPTCONN: ::c_int = 0x0002; 9032add0d91Sopenharmony_cipub const SO_REUSEADDR: ::c_int = 0x0004; 9042add0d91Sopenharmony_cipub const SO_KEEPALIVE: ::c_int = 0x0008; 9052add0d91Sopenharmony_cipub const SO_DONTROUTE: ::c_int = 0x0010; 9062add0d91Sopenharmony_cipub const SO_BROADCAST: ::c_int = 0x0020; 9072add0d91Sopenharmony_cipub const SO_USELOOPBACK: ::c_int = 0x0040; 9082add0d91Sopenharmony_cipub const SO_LINGER: ::c_int = 0x0080; 9092add0d91Sopenharmony_cipub const SO_OOBINLINE: ::c_int = 0x0100; 9102add0d91Sopenharmony_cipub const SO_REUSEPORT: ::c_int = 0x0200; 9112add0d91Sopenharmony_cipub const SO_SNDBUF: ::c_int = 0x1001; 9122add0d91Sopenharmony_cipub const SO_RCVBUF: ::c_int = 0x1002; 9132add0d91Sopenharmony_cipub const SO_SNDLOWAT: ::c_int = 0x1003; 9142add0d91Sopenharmony_cipub const SO_RCVLOWAT: ::c_int = 0x1004; 9152add0d91Sopenharmony_cipub const SO_SNDTIMEO: ::c_int = 0x1005; 9162add0d91Sopenharmony_cipub const SO_RCVTIMEO: ::c_int = 0x1006; 9172add0d91Sopenharmony_cipub const SO_ERROR: ::c_int = 0x1007; 9182add0d91Sopenharmony_cipub const SO_TYPE: ::c_int = 0x1008; 9192add0d91Sopenharmony_cipub const SO_CONTIMEO: ::c_int = 0x1009; 9202add0d91Sopenharmony_cipub const SO_NO_CHECK: ::c_int = 0x100a; 9212add0d91Sopenharmony_ci 9222add0d91Sopenharmony_cipub const SOCK_STREAM: ::c_int = 1; 9232add0d91Sopenharmony_cipub const SOCK_DGRAM: ::c_int = 2; 9242add0d91Sopenharmony_cipub const SOCK_RAW: ::c_int = 3; 9252add0d91Sopenharmony_ci 9262add0d91Sopenharmony_cipub const SOL_SOCKET: ::c_int = 0xfff; 9272add0d91Sopenharmony_ci 9282add0d91Sopenharmony_cipub const STDIN_FILENO: ::c_int = 0; 9292add0d91Sopenharmony_cipub const STDOUT_FILENO: ::c_int = 1; 9302add0d91Sopenharmony_cipub const STDERR_FILENO: ::c_int = 2; 9312add0d91Sopenharmony_ci 9322add0d91Sopenharmony_cipub const TCP_NODELAY: ::c_int = 0x01; 9332add0d91Sopenharmony_cipub const TCP_KEEPALIVE: ::c_int = 0x02; 9342add0d91Sopenharmony_cipub const TCP_KEEPIDLE: ::c_int = 0x03; 9352add0d91Sopenharmony_cipub const TCP_KEEPINTVL: ::c_int = 0x04; 9362add0d91Sopenharmony_cipub const TCP_KEEPCNT: ::c_int = 0x05; 9372add0d91Sopenharmony_ci 9382add0d91Sopenharmony_ciconst ULONG_SIZE: usize = 64; 9392add0d91Sopenharmony_ci 9402add0d91Sopenharmony_cipub const WNOHANG: ::c_int = 0x00000001; 9412add0d91Sopenharmony_ci 9422add0d91Sopenharmony_cipub const PRIO_PROCESS: ::c_int = 0; 9432add0d91Sopenharmony_cipub const PRIO_PGRP: ::c_int = 1; 9442add0d91Sopenharmony_cipub const PRIO_USER: ::c_int = 2; 9452add0d91Sopenharmony_ci 9462add0d91Sopenharmony_cisafe_f! { 9472add0d91Sopenharmony_ci pub {const} fn WEXITSTATUS(status: ::c_int) -> ::c_int { 9482add0d91Sopenharmony_ci (status >> 8) & 0xff 9492add0d91Sopenharmony_ci } 9502add0d91Sopenharmony_ci 9512add0d91Sopenharmony_ci pub {const} fn WIFEXITED(status: ::c_int) -> bool { 9522add0d91Sopenharmony_ci (status & 0xff) == 0 9532add0d91Sopenharmony_ci } 9542add0d91Sopenharmony_ci 9552add0d91Sopenharmony_ci pub {const} fn WTERMSIG(status: ::c_int) -> ::c_int { 9562add0d91Sopenharmony_ci status & 0x7f 9572add0d91Sopenharmony_ci } 9582add0d91Sopenharmony_ci} 9592add0d91Sopenharmony_ci 9602add0d91Sopenharmony_ciextern "C" { 9612add0d91Sopenharmony_ci pub fn getrlimit(resource: ::c_int, rlim: *mut ::rlimit) -> ::c_int; 9622add0d91Sopenharmony_ci pub fn setrlimit(resource: ::c_int, rlim: *const ::rlimit) -> ::c_int; 9632add0d91Sopenharmony_ci pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int; 9642add0d91Sopenharmony_ci 9652add0d91Sopenharmony_ci pub fn sem_destroy(sem: *mut sem_t) -> ::c_int; 9662add0d91Sopenharmony_ci pub fn sem_init(sem: *mut sem_t, pshared: ::c_int, value: ::c_uint) -> ::c_int; 9672add0d91Sopenharmony_ci 9682add0d91Sopenharmony_ci pub fn abs(i: ::c_int) -> ::c_int; 9692add0d91Sopenharmony_ci pub fn labs(i: ::c_long) -> ::c_long; 9702add0d91Sopenharmony_ci pub fn rand() -> ::c_int; 9712add0d91Sopenharmony_ci pub fn srand(seed: ::c_uint); 9722add0d91Sopenharmony_ci 9732add0d91Sopenharmony_ci pub fn bind(s: ::c_int, name: *const ::sockaddr, namelen: ::socklen_t) -> ::c_int; 9742add0d91Sopenharmony_ci 9752add0d91Sopenharmony_ci pub fn clock_gettime(clock_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int; 9762add0d91Sopenharmony_ci 9772add0d91Sopenharmony_ci pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int; 9782add0d91Sopenharmony_ci pub fn getpwuid_r( 9792add0d91Sopenharmony_ci uid: ::uid_t, 9802add0d91Sopenharmony_ci pwd: *mut passwd, 9812add0d91Sopenharmony_ci buf: *mut ::c_char, 9822add0d91Sopenharmony_ci buflen: ::size_t, 9832add0d91Sopenharmony_ci result: *mut *mut passwd, 9842add0d91Sopenharmony_ci ) -> ::c_int; 9852add0d91Sopenharmony_ci 9862add0d91Sopenharmony_ci // Dummy 9872add0d91Sopenharmony_ci pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; 9882add0d91Sopenharmony_ci 9892add0d91Sopenharmony_ci pub fn memalign(align: ::size_t, nbytes: ::size_t) -> *mut ::c_void; 9902add0d91Sopenharmony_ci 9912add0d91Sopenharmony_ci pub fn pthread_create( 9922add0d91Sopenharmony_ci tid: *mut ::pthread_t, 9932add0d91Sopenharmony_ci attr: *const ::pthread_attr_t, 9942add0d91Sopenharmony_ci start: extern "C" fn(*mut ::c_void) -> *mut ::c_void, 9952add0d91Sopenharmony_ci arg: *mut ::c_void, 9962add0d91Sopenharmony_ci ) -> ::c_int; 9972add0d91Sopenharmony_ci 9982add0d91Sopenharmony_ci pub fn pthread_sigmask(how: ::c_int, set: *const ::sigset_t, oset: *mut ::sigset_t) -> ::c_int; 9992add0d91Sopenharmony_ci 10002add0d91Sopenharmony_ci pub fn recvfrom( 10012add0d91Sopenharmony_ci s: ::c_int, 10022add0d91Sopenharmony_ci mem: *mut ::c_void, 10032add0d91Sopenharmony_ci len: ::size_t, 10042add0d91Sopenharmony_ci flags: ::c_int, 10052add0d91Sopenharmony_ci from: *mut ::sockaddr, 10062add0d91Sopenharmony_ci fromlen: *mut ::socklen_t, 10072add0d91Sopenharmony_ci ) -> ::c_int; 10082add0d91Sopenharmony_ci 10092add0d91Sopenharmony_ci pub fn setgroups(ngroups: ::c_int, grouplist: *const ::gid_t) -> ::c_int; 10102add0d91Sopenharmony_ci pub fn uname(buf: *mut ::utsname) -> ::c_int; 10112add0d91Sopenharmony_ci} 10122add0d91Sopenharmony_ci 10132add0d91Sopenharmony_cicfg_if! { 10142add0d91Sopenharmony_ci if #[cfg(target_arch = "aarch64")] { 10152add0d91Sopenharmony_ci mod aarch64; 10162add0d91Sopenharmony_ci pub use self::aarch64::*; 10172add0d91Sopenharmony_ci } else if #[cfg(target_arch = "x86_64")] { 10182add0d91Sopenharmony_ci mod x86_64; 10192add0d91Sopenharmony_ci pub use self::x86_64::*; 10202add0d91Sopenharmony_ci } else { 10212add0d91Sopenharmony_ci // Unknown target_arch 10222add0d91Sopenharmony_ci } 10232add0d91Sopenharmony_ci} 1024