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