12add0d91Sopenharmony_cipub type c_char = i8; 22add0d91Sopenharmony_cipub type wchar_t = i32; 32add0d91Sopenharmony_cipub type nlink_t = u64; 42add0d91Sopenharmony_cipub type blksize_t = ::c_long; 52add0d91Sopenharmony_cipub type __u64 = ::c_ulonglong; 62add0d91Sopenharmony_ci 72add0d91Sopenharmony_cis! { 82add0d91Sopenharmony_ci pub struct stat { 92add0d91Sopenharmony_ci pub st_dev: ::dev_t, 102add0d91Sopenharmony_ci pub st_ino: ::ino_t, 112add0d91Sopenharmony_ci pub st_nlink: ::nlink_t, 122add0d91Sopenharmony_ci pub st_mode: ::mode_t, 132add0d91Sopenharmony_ci pub st_uid: ::uid_t, 142add0d91Sopenharmony_ci pub st_gid: ::gid_t, 152add0d91Sopenharmony_ci __pad0: ::c_int, 162add0d91Sopenharmony_ci pub st_rdev: ::dev_t, 172add0d91Sopenharmony_ci pub st_size: ::off_t, 182add0d91Sopenharmony_ci pub st_blksize: ::blksize_t, 192add0d91Sopenharmony_ci pub st_blocks: ::blkcnt_t, 202add0d91Sopenharmony_ci pub st_atime: ::time_t, 212add0d91Sopenharmony_ci pub st_atime_nsec: ::c_long, 222add0d91Sopenharmony_ci pub st_mtime: ::time_t, 232add0d91Sopenharmony_ci pub st_mtime_nsec: ::c_long, 242add0d91Sopenharmony_ci pub st_ctime: ::time_t, 252add0d91Sopenharmony_ci pub st_ctime_nsec: ::c_long, 262add0d91Sopenharmony_ci __unused: [::c_long; 3], 272add0d91Sopenharmony_ci } 282add0d91Sopenharmony_ci 292add0d91Sopenharmony_ci pub struct stat64 { 302add0d91Sopenharmony_ci pub st_dev: ::dev_t, 312add0d91Sopenharmony_ci pub st_ino: ::ino64_t, 322add0d91Sopenharmony_ci pub st_nlink: ::nlink_t, 332add0d91Sopenharmony_ci pub st_mode: ::mode_t, 342add0d91Sopenharmony_ci pub st_uid: ::uid_t, 352add0d91Sopenharmony_ci pub st_gid: ::gid_t, 362add0d91Sopenharmony_ci __pad0: ::c_int, 372add0d91Sopenharmony_ci pub st_rdev: ::dev_t, 382add0d91Sopenharmony_ci pub st_size: ::off_t, 392add0d91Sopenharmony_ci pub st_blksize: ::blksize_t, 402add0d91Sopenharmony_ci pub st_blocks: ::blkcnt64_t, 412add0d91Sopenharmony_ci pub st_atime: ::time_t, 422add0d91Sopenharmony_ci pub st_atime_nsec: ::c_long, 432add0d91Sopenharmony_ci pub st_mtime: ::time_t, 442add0d91Sopenharmony_ci pub st_mtime_nsec: ::c_long, 452add0d91Sopenharmony_ci pub st_ctime: ::time_t, 462add0d91Sopenharmony_ci pub st_ctime_nsec: ::c_long, 472add0d91Sopenharmony_ci __reserved: [::c_long; 3], 482add0d91Sopenharmony_ci } 492add0d91Sopenharmony_ci 502add0d91Sopenharmony_ci pub struct mcontext_t { 512add0d91Sopenharmony_ci __private: [u64; 32], 522add0d91Sopenharmony_ci } 532add0d91Sopenharmony_ci 542add0d91Sopenharmony_ci pub struct ipc_perm { 552add0d91Sopenharmony_ci pub __ipc_perm_key: ::key_t, 562add0d91Sopenharmony_ci pub uid: ::uid_t, 572add0d91Sopenharmony_ci pub gid: ::gid_t, 582add0d91Sopenharmony_ci pub cuid: ::uid_t, 592add0d91Sopenharmony_ci pub cgid: ::gid_t, 602add0d91Sopenharmony_ci pub mode: ::mode_t, 612add0d91Sopenharmony_ci pub __seq: ::c_int, 622add0d91Sopenharmony_ci __unused1: ::c_long, 632add0d91Sopenharmony_ci __unused2: ::c_long 642add0d91Sopenharmony_ci } 652add0d91Sopenharmony_ci} 662add0d91Sopenharmony_ci 672add0d91Sopenharmony_cis_no_extra_traits! { 682add0d91Sopenharmony_ci pub struct ucontext_t { 692add0d91Sopenharmony_ci pub uc_flags: ::c_ulong, 702add0d91Sopenharmony_ci pub uc_link: *mut ucontext_t, 712add0d91Sopenharmony_ci pub uc_stack: ::stack_t, 722add0d91Sopenharmony_ci pub uc_mcontext: mcontext_t, 732add0d91Sopenharmony_ci pub uc_sigmask: ::sigset_t, 742add0d91Sopenharmony_ci __private: [u8; 512], 752add0d91Sopenharmony_ci } 762add0d91Sopenharmony_ci} 772add0d91Sopenharmony_ci 782add0d91Sopenharmony_cicfg_if! { 792add0d91Sopenharmony_ci if #[cfg(feature = "extra_traits")] { 802add0d91Sopenharmony_ci impl PartialEq for ucontext_t { 812add0d91Sopenharmony_ci fn eq(&self, other: &ucontext_t) -> bool { 822add0d91Sopenharmony_ci self.uc_flags == other.uc_flags 832add0d91Sopenharmony_ci && self.uc_link == other.uc_link 842add0d91Sopenharmony_ci && self.uc_stack == other.uc_stack 852add0d91Sopenharmony_ci && self.uc_mcontext == other.uc_mcontext 862add0d91Sopenharmony_ci && self.uc_sigmask == other.uc_sigmask 872add0d91Sopenharmony_ci && self 882add0d91Sopenharmony_ci .__private 892add0d91Sopenharmony_ci .iter() 902add0d91Sopenharmony_ci .zip(other.__private.iter()) 912add0d91Sopenharmony_ci .all(|(a,b)| a == b) 922add0d91Sopenharmony_ci } 932add0d91Sopenharmony_ci } 942add0d91Sopenharmony_ci impl Eq for ucontext_t {} 952add0d91Sopenharmony_ci impl ::fmt::Debug for ucontext_t { 962add0d91Sopenharmony_ci fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { 972add0d91Sopenharmony_ci f.debug_struct("ucontext_t") 982add0d91Sopenharmony_ci .field("uc_flags", &self.uc_flags) 992add0d91Sopenharmony_ci .field("uc_link", &self.uc_link) 1002add0d91Sopenharmony_ci .field("uc_stack", &self.uc_stack) 1012add0d91Sopenharmony_ci .field("uc_mcontext", &self.uc_mcontext) 1022add0d91Sopenharmony_ci .field("uc_sigmask", &self.uc_sigmask) 1032add0d91Sopenharmony_ci // FIXME: .field("__private", &self.__private) 1042add0d91Sopenharmony_ci .finish() 1052add0d91Sopenharmony_ci } 1062add0d91Sopenharmony_ci } 1072add0d91Sopenharmony_ci impl ::hash::Hash for ucontext_t { 1082add0d91Sopenharmony_ci fn hash<H: ::hash::Hasher>(&self, state: &mut H) { 1092add0d91Sopenharmony_ci self.uc_flags.hash(state); 1102add0d91Sopenharmony_ci self.uc_link.hash(state); 1112add0d91Sopenharmony_ci self.uc_stack.hash(state); 1122add0d91Sopenharmony_ci self.uc_mcontext.hash(state); 1132add0d91Sopenharmony_ci self.uc_sigmask.hash(state); 1142add0d91Sopenharmony_ci self.__private.hash(state); 1152add0d91Sopenharmony_ci } 1162add0d91Sopenharmony_ci } 1172add0d91Sopenharmony_ci } 1182add0d91Sopenharmony_ci} 1192add0d91Sopenharmony_ci 1202add0d91Sopenharmony_ci// offsets in user_regs_structs, from sys/reg.h 1212add0d91Sopenharmony_cipub const R15: ::c_int = 0; 1222add0d91Sopenharmony_cipub const R14: ::c_int = 1; 1232add0d91Sopenharmony_cipub const R13: ::c_int = 2; 1242add0d91Sopenharmony_cipub const R12: ::c_int = 3; 1252add0d91Sopenharmony_cipub const RBP: ::c_int = 4; 1262add0d91Sopenharmony_cipub const RBX: ::c_int = 5; 1272add0d91Sopenharmony_cipub const R11: ::c_int = 6; 1282add0d91Sopenharmony_cipub const R10: ::c_int = 7; 1292add0d91Sopenharmony_cipub const R9: ::c_int = 8; 1302add0d91Sopenharmony_cipub const R8: ::c_int = 9; 1312add0d91Sopenharmony_cipub const RAX: ::c_int = 10; 1322add0d91Sopenharmony_cipub const RCX: ::c_int = 11; 1332add0d91Sopenharmony_cipub const RDX: ::c_int = 12; 1342add0d91Sopenharmony_cipub const RSI: ::c_int = 13; 1352add0d91Sopenharmony_cipub const RDI: ::c_int = 14; 1362add0d91Sopenharmony_cipub const ORIG_RAX: ::c_int = 15; 1372add0d91Sopenharmony_cipub const RIP: ::c_int = 16; 1382add0d91Sopenharmony_cipub const CS: ::c_int = 17; 1392add0d91Sopenharmony_cipub const EFLAGS: ::c_int = 18; 1402add0d91Sopenharmony_cipub const RSP: ::c_int = 19; 1412add0d91Sopenharmony_cipub const SS: ::c_int = 20; 1422add0d91Sopenharmony_cipub const FS_BASE: ::c_int = 21; 1432add0d91Sopenharmony_cipub const GS_BASE: ::c_int = 22; 1442add0d91Sopenharmony_cipub const DS: ::c_int = 23; 1452add0d91Sopenharmony_cipub const ES: ::c_int = 24; 1462add0d91Sopenharmony_cipub const FS: ::c_int = 25; 1472add0d91Sopenharmony_cipub const GS: ::c_int = 26; 1482add0d91Sopenharmony_ci 1492add0d91Sopenharmony_cipub const MAP_32BIT: ::c_int = 0x0040; 1502add0d91Sopenharmony_ci 1512add0d91Sopenharmony_cipub const SIGSTKSZ: ::size_t = 8192; 1522add0d91Sopenharmony_cipub const MINSIGSTKSZ: ::size_t = 2048; 153