1use crate::types::SigSetExtended;
2
3use super::UStack;
4
5#[repr(C)]
9#[derive(Debug, Clone)]
10pub struct UContext {
11 pub flags: usize,
13 pub link: usize,
15 pub stack: UStack,
17 pub gregs: MContext,
19 pub sig_mask: SigSetExtended,
21 pub __fpregs_mem: [u64; 64],
23}
24
25#[allow(missing_docs)]
29#[repr(C)]
30#[derive(Debug, Clone)]
31pub struct MContext {
32 pub r8: usize,
33 pub r9: usize,
34 pub r10: usize,
35 pub r11: usize,
36 pub r12: usize,
37 pub r13: usize,
38 pub r14: usize,
39 pub r15: usize,
40 pub rdi: usize,
41 pub rsi: usize,
42 pub rbp: usize,
43 pub rbx: usize,
44 pub rdx: usize,
45 pub rax: usize,
46 pub rcx: usize,
47 pub rsp: usize,
48 pub rip: usize,
49 pub eflags: usize,
50 pub cs: u8,
51 pub gs: u8,
52 pub fs: u8,
53 __pad0: u8,
54 pub err: usize,
55 pub trapno: usize,
56 pub oldmask: usize,
57 pub cr2: usize,
58 pub fp_ptr: usize,
59 __reserved1: [usize; 8],
60}