xref: /dragonfly/lib/libc/x86_64/sys/asmcontext.c (revision 9317c2d0)
1 #define _KERNEL_STRUCTURES
2 #include <sys/types.h>
3 #include <sys/ucontext.h>
4 #include <sys/assym.h>
5 #include <machine/frame.h>
6 #include <machine/tss.h>
7 #include <machine/segments.h>
8 #include <stddef.h>
9 
10 ASSYM(UC_SIGMASK, offsetof(ucontext_t, uc_sigmask));
11 ASSYM(UC_LINK, offsetof(ucontext_t, uc_link));
12 ASSYM(UC_MCONTEXT, offsetof(ucontext_t, uc_mcontext));
13 ASSYM(SIG_BLOCK, SIG_BLOCK);
14 #ifdef __x86_64__
15 ASSYM(KUCSEL, GSEL(GUCODE_SEL, SEL_UPL));
16 ASSYM(KUDSEL, GSEL(GUDATA_SEL, SEL_UPL));
17 ASSYM(MC_ONSTACK, offsetof(mcontext_t, mc_onstack));
18 ASSYM(MC_RDI, offsetof(mcontext_t, mc_rdi));
19 ASSYM(MC_RSI, offsetof(mcontext_t, mc_rsi));
20 ASSYM(MC_RDX, offsetof(mcontext_t, mc_rdx));
21 ASSYM(MC_RCX, offsetof(mcontext_t, mc_rcx));
22 ASSYM(MC_R8, offsetof(mcontext_t, mc_r8));
23 ASSYM(MC_R9, offsetof(mcontext_t, mc_r9));
24 ASSYM(MC_RAX, offsetof(mcontext_t, mc_rax));
25 ASSYM(MC_RBX, offsetof(mcontext_t, mc_rbx));
26 ASSYM(MC_RBP, offsetof(mcontext_t, mc_rbp));
27 ASSYM(MC_R10, offsetof(mcontext_t, mc_r10));
28 ASSYM(MC_R11, offsetof(mcontext_t, mc_r11));
29 ASSYM(MC_R12, offsetof(mcontext_t, mc_r12));
30 ASSYM(MC_R13, offsetof(mcontext_t, mc_r13));
31 ASSYM(MC_R14, offsetof(mcontext_t, mc_r14));
32 ASSYM(MC_R15, offsetof(mcontext_t, mc_r15));
33 ASSYM(MC_RIP, offsetof(mcontext_t, mc_rip));
34 ASSYM(MC_CS, offsetof(mcontext_t, mc_cs));
35 ASSYM(MC_RFLAGS, offsetof(mcontext_t, mc_rflags));
36 ASSYM(MC_RSP, offsetof(mcontext_t, mc_rsp));
37 ASSYM(MC_SS, offsetof(mcontext_t, mc_ss));
38 ASSYM(_MC_FPOWNED_NONE, _MC_FPOWNED_NONE);
39 ASSYM(_MC_FPFMT_NODEV, _MC_FPFMT_NODEV);
40 #endif
41 ASSYM(MC_LEN, offsetof(mcontext_t, mc_len));
42 ASSYM(MC_FPFORMAT, offsetof(mcontext_t, mc_fpformat));
43 ASSYM(MC_OWNEDFP, offsetof(mcontext_t, mc_ownedfp));
44 ASSYM(SIZEOF_MCONTEXT_T, sizeof(mcontext_t));
45