1 use PT_FIRSTMACH; 2 3 pub type c_long = i64; 4 pub type c_ulong = u64; 5 pub type c_char = i8; 6 pub type c___greg_t = u64; 7 pub type __cpu_simple_lock_nv_t = ::c_uchar; 8 9 s! { 10 pub struct mcontext_t { 11 pub __gregs: [c___greg_t; 26], 12 pub _mc_tlsbase: c___greg_t, 13 pub __fpregs: [[::c_char;32]; 16], 14 } 15 16 pub struct ucontext_t { 17 pub uc_flags: ::c_uint, 18 pub uc_link: *mut ::ucontext_t, 19 pub uc_sigmask: ::sigset_t, 20 pub uc_stack: ::stack_t, 21 pub uc_mcontext: ::mcontext_t, 22 } 23 } 24 25 // should be pub(crate), but that requires Rust 1.18.0 26 cfg_if! { 27 if #[cfg(libc_const_size_of)] { 28 #[doc(hidden)] 29 pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1; 30 } else { 31 #[doc(hidden)] 32 pub const _ALIGNBYTES: usize = 8 - 1; 33 } 34 } 35 36 pub const PT_STEP: ::c_int = PT_FIRSTMACH + 0; 37 pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1; 38 pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2; 39 pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3; 40 pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4; 41 42 pub const _REG_RDI: ::c_int = 0; 43 pub const _REG_RSI: ::c_int = 1; 44 pub const _REG_RDX: ::c_int = 2; 45 pub const _REG_RCX: ::c_int = 3; 46 pub const _REG_R8: ::c_int = 4; 47 pub const _REG_R9: ::c_int = 5; 48 pub const _REG_R10: ::c_int = 6; 49 pub const _REG_R11: ::c_int = 7; 50 pub const _REG_R12: ::c_int = 8; 51 pub const _REG_R13: ::c_int = 9; 52 pub const _REG_R14: ::c_int = 10; 53 pub const _REG_R15: ::c_int = 11; 54 pub const _REG_RBP: ::c_int = 12; 55 pub const _REG_RBX: ::c_int = 13; 56 pub const _REG_RAX: ::c_int = 14; 57 pub const _REG_GS: ::c_int = 15; 58 pub const _REG_FS: ::c_int = 16; 59 pub const _REG_ES: ::c_int = 17; 60 pub const _REG_DS: ::c_int = 18; 61 pub const _REG_TRAPNO: ::c_int = 19; 62 pub const _REG_ERR: ::c_int = 20; 63 pub const _REG_RIP: ::c_int = 21; 64 pub const _REG_CS: ::c_int = 22; 65 pub const _REG_RFLAGS: ::c_int = 23; 66 pub const _REG_RSP: ::c_int = 24; 67 pub const _REG_SS: ::c_int = 25; 68