|  | pub type c_char = i8; | 
|  | pub type wchar_t = i32; | 
|  | pub type nlink_t = u64; | 
|  | pub type blksize_t = ::c_long; | 
|  | pub type __u64 = ::c_ulonglong; | 
|  |  | 
|  | s! { | 
|  | pub struct stat { | 
|  | pub st_dev: ::dev_t, | 
|  | pub st_ino: ::ino_t, | 
|  | pub st_nlink: ::nlink_t, | 
|  | pub st_mode: ::mode_t, | 
|  | pub st_uid: ::uid_t, | 
|  | pub st_gid: ::gid_t, | 
|  | __pad0: ::c_int, | 
|  | pub st_rdev: ::dev_t, | 
|  | pub st_size: ::off_t, | 
|  | pub st_blksize: ::blksize_t, | 
|  | pub st_blocks: ::blkcnt_t, | 
|  | pub st_atime: ::time_t, | 
|  | pub st_atime_nsec: ::c_long, | 
|  | pub st_mtime: ::time_t, | 
|  | pub st_mtime_nsec: ::c_long, | 
|  | pub st_ctime: ::time_t, | 
|  | pub st_ctime_nsec: ::c_long, | 
|  | __unused: [::c_long; 3], | 
|  | } | 
|  |  | 
|  | pub struct stat64 { | 
|  | pub st_dev: ::dev_t, | 
|  | pub st_ino: ::ino64_t, | 
|  | pub st_nlink: ::nlink_t, | 
|  | pub st_mode: ::mode_t, | 
|  | pub st_uid: ::uid_t, | 
|  | pub st_gid: ::gid_t, | 
|  | __pad0: ::c_int, | 
|  | pub st_rdev: ::dev_t, | 
|  | pub st_size: ::off_t, | 
|  | pub st_blksize: ::blksize_t, | 
|  | pub st_blocks: ::blkcnt64_t, | 
|  | pub st_atime: ::time_t, | 
|  | pub st_atime_nsec: ::c_long, | 
|  | pub st_mtime: ::time_t, | 
|  | pub st_mtime_nsec: ::c_long, | 
|  | pub st_ctime: ::time_t, | 
|  | pub st_ctime_nsec: ::c_long, | 
|  | __reserved: [::c_long; 3], | 
|  | } | 
|  |  | 
|  | pub struct mcontext_t { | 
|  | __private: [u64; 32], | 
|  | } | 
|  |  | 
|  | pub struct ipc_perm { | 
|  | pub __ipc_perm_key: ::key_t, | 
|  | pub uid: ::uid_t, | 
|  | pub gid: ::gid_t, | 
|  | pub cuid: ::uid_t, | 
|  | pub cgid: ::gid_t, | 
|  | pub mode: ::mode_t, | 
|  | pub __seq: ::c_int, | 
|  | __unused1: ::c_long, | 
|  | __unused2: ::c_long | 
|  | } | 
|  | } | 
|  |  | 
|  | s_no_extra_traits! { | 
|  | pub struct ucontext_t { | 
|  | pub uc_flags: ::c_ulong, | 
|  | pub uc_link: *mut ucontext_t, | 
|  | pub uc_stack: ::stack_t, | 
|  | pub uc_mcontext: mcontext_t, | 
|  | pub uc_sigmask: ::sigset_t, | 
|  | __private: [u8; 512], | 
|  | } | 
|  | } | 
|  |  | 
|  | cfg_if! { | 
|  | if #[cfg(feature = "extra_traits")] { | 
|  | impl PartialEq for ucontext_t { | 
|  | fn eq(&self, other: &ucontext_t) -> bool { | 
|  | self.uc_flags == other.uc_flags | 
|  | && self.uc_link == other.uc_link | 
|  | && self.uc_stack == other.uc_stack | 
|  | && self.uc_mcontext == other.uc_mcontext | 
|  | && self.uc_sigmask == other.uc_sigmask | 
|  | && self | 
|  | .__private | 
|  | .iter() | 
|  | .zip(other.__private.iter()) | 
|  | .all(|(a,b)| a == b) | 
|  | } | 
|  | } | 
|  | impl Eq for ucontext_t {} | 
|  | impl ::fmt::Debug for ucontext_t { | 
|  | fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result { | 
|  | f.debug_struct("ucontext_t") | 
|  | .field("uc_flags", &self.uc_flags) | 
|  | .field("uc_link", &self.uc_link) | 
|  | .field("uc_stack", &self.uc_stack) | 
|  | .field("uc_mcontext", &self.uc_mcontext) | 
|  | .field("uc_sigmask", &self.uc_sigmask) | 
|  | // FIXME: .field("__private", &self.__private) | 
|  | .finish() | 
|  | } | 
|  | } | 
|  | impl ::hash::Hash for ucontext_t { | 
|  | fn hash<H: ::hash::Hasher>(&self, state: &mut H) { | 
|  | self.uc_flags.hash(state); | 
|  | self.uc_link.hash(state); | 
|  | self.uc_stack.hash(state); | 
|  | self.uc_mcontext.hash(state); | 
|  | self.uc_sigmask.hash(state); | 
|  | self.__private.hash(state); | 
|  | } | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | // offsets in user_regs_structs, from sys/reg.h | 
|  | pub const R15: ::c_int = 0; | 
|  | pub const R14: ::c_int = 1; | 
|  | pub const R13: ::c_int = 2; | 
|  | pub const R12: ::c_int = 3; | 
|  | pub const RBP: ::c_int = 4; | 
|  | pub const RBX: ::c_int = 5; | 
|  | pub const R11: ::c_int = 6; | 
|  | pub const R10: ::c_int = 7; | 
|  | pub const R9: ::c_int = 8; | 
|  | pub const R8: ::c_int = 9; | 
|  | pub const RAX: ::c_int = 10; | 
|  | pub const RCX: ::c_int = 11; | 
|  | pub const RDX: ::c_int = 12; | 
|  | pub const RSI: ::c_int = 13; | 
|  | pub const RDI: ::c_int = 14; | 
|  | pub const ORIG_RAX: ::c_int = 15; | 
|  | pub const RIP: ::c_int = 16; | 
|  | pub const CS: ::c_int = 17; | 
|  | pub const EFLAGS: ::c_int = 18; | 
|  | pub const RSP: ::c_int = 19; | 
|  | pub const SS: ::c_int = 20; | 
|  | pub const FS_BASE: ::c_int = 21; | 
|  | pub const GS_BASE: ::c_int = 22; | 
|  | pub const DS: ::c_int = 23; | 
|  | pub const ES: ::c_int = 24; | 
|  | pub const FS: ::c_int = 25; | 
|  | pub const GS: ::c_int = 26; | 
|  |  | 
|  | pub const MAP_32BIT: ::c_int = 0x0040; | 
|  |  | 
|  | pub const SIGSTKSZ: ::size_t = 8192; | 
|  | pub const MINSIGSTKSZ: ::size_t = 2048; |