1 use PT_FIRSTMACH; 2 3 use crate::prelude::*; 4 5 pub type __greg_t = u64; 6 pub type __cpu_simple_lock_nv_t = c_int; 7 pub type __gregset = [__greg_t; _NGREG]; 8 pub type __fregset = [__freg; _NFREG]; 9 10 s! { 11 pub struct mcontext_t { 12 pub __gregs: __gregset, 13 pub __fregs: __fpregset, 14 __spare: [crate::__greg_t; 7], 15 } 16 } 17 18 s_no_extra_traits! { 19 pub union __fpreg { 20 pub u_u64: u64, 21 pub u_d: c_double, 22 } 23 } 24 25 pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1; 26 27 pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0; 28 pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1; 29 pub const PT_GETFPREGS: c_int = PT_FIRSTMACH + 2; 30 pub const PT_SETFPREGS: c_int = PT_FIRSTMACH + 3; 31 32 pub const _NGREG: usize = 32; 33 pub const _NFREG: usize = 33; 34 35 pub const _REG_X1: c_int = 0; 36 pub const _REG_X2: c_int = 1; 37 pub const _REG_X3: c_int = 2; 38 pub const _REG_X4: c_int = 3; 39 pub const _REG_X5: c_int = 4; 40 pub const _REG_X6: c_int = 5; 41 pub const _REG_X7: c_int = 6; 42 pub const _REG_X8: c_int = 7; 43 pub const _REG_X9: c_int = 8; 44 pub const _REG_X10: c_int = 9; 45 pub const _REG_X11: c_int = 10; 46 pub const _REG_X12: c_int = 11; 47 pub const _REG_X13: c_int = 12; 48 pub const _REG_X14: c_int = 13; 49 pub const _REG_X15: c_int = 14; 50 pub const _REG_X16: c_int = 15; 51 pub const _REG_X17: c_int = 16; 52 pub const _REG_X18: c_int = 17; 53 pub const _REG_X19: c_int = 18; 54 pub const _REG_X20: c_int = 19; 55 pub const _REG_X21: c_int = 20; 56 pub const _REG_X22: c_int = 21; 57 pub const _REG_X23: c_int = 22; 58 pub const _REG_X24: c_int = 23; 59 pub const _REG_X25: c_int = 24; 60 pub const _REG_X26: c_int = 25; 61 pub const _REG_X27: c_int = 26; 62 pub const _REG_X28: c_int = 27; 63 pub const _REG_X29: c_int = 28; 64 pub const _REG_X30: c_int = 29; 65 pub const _REG_X31: c_int = 30; 66 pub const _REG_PC: c_int = 31; 67 68 pub const _REG_RA: c_int = _REG_X1; 69 pub const _REG_SP: c_int = _REG_X2; 70 pub const _REG_GP: c_int = _REG_X3; 71 pub const _REG_TP: c_int = _REG_X4; 72 pub const _REG_S0: c_int = _REG_X8; 73 pub const _REG_RV: c_int = _REG_X10; 74 pub const _REG_A0: c_int = _REG_X10; 75 76 pub const _REG_F0: c_int = 0; 77 pub const _REG_FPCSR: c_int = 32; 78