offsets.h revision e9cd30040e2794ee586ff853b360b47881824fda
1434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm/* Linux-specific definitions: */
2434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm
3434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm/* Define various structure offsets to simplify cross-compilation.  */
4434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm
5fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm/* Offsets for x86 Linux "ucontext_t":  */
6fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm
7fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_UC_FLAGS_OFF	0x00
8fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_UC_LINK_OFF	0x04
9fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_UC_STACK_OFF	0x08
10fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_UC_MCONTEXT_OFF	0x14
11fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_UC_SIGMASK_OFF	0x6c
1254752e0df0ce7ad535f724e16874ebb00b5f94f6Paul Pluzhnikov#define LINUX_UC_FPREGS_MEM_OFF	0xec
13fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm
14434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm/* The struct sigcontext is located at an offset of 4
15434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm   from the stack pointer in the signal frame.         */
16434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm
17fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm/* Offsets for x86 Linux "struct sigcontext":  */
18fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm
19fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_GS_OFF		0x00
20fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_GSH_OFF	0x02
21fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_FS_OFF		0x04
22fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_FSH_OFF	0x06
23fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ES_OFF		0x08
24fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ESH_OFF	0x0a
25fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_DS_OFF		0x0c
26fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_DSH_OFF	0x0e
27fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EDI_OFF	0x10
28fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ESI_OFF	0x14
29fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EBP_OFF	0x18
30fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ESP_OFF	0x1c
31fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EBX_OFF	0x20
32fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EDX_OFF	0x24
33fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ECX_OFF	0x28
34fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EAX_OFF	0x2c
35fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_TRAPNO_OFF	0x30
36fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ERR_OFF	0x34
37fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EIP_OFF	0x38
38fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_CS_OFF		0x3c
39fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_CSH_OFF	0x3e
40fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_EFLAGS_OFF	0x40
41fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_ESP_AT_SIGNAL_OFF	0x44
42fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_SS_OFF		0x48
43fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_SSH_OFF	0x4a
44fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_FPSTATE_OFF	0x4c
45fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_OLDMASK_OFF	0x50
46fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_SC_CR2_OFF	0x54
47fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm
48fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm/* Offsets for x86 Linux "struct _fpstate":  */
49434b9ffcfebbee058847a18231c5046877b87bd1com[davidm]!hans_boehm
50fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_CW_OFF		0x000
51fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_SW_OFF		0x004
52fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_TAG_OFF		0x008
53fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_IPOFF_OFF		0x00c
54fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_CSSEL_OFF		0x010
55fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_DATAOFF_OFF	0x014
56fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_DATASEL_OFF	0x018
57fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST0_OFF		0x01c
58fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST1_OFF		0x026
59fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST2_OFF		0x030
60fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST3_OFF		0x03a
61fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST4_OFF		0x044
62fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST5_OFF		0x04e
63fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST6_OFF		0x058
64fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_ST7_OFF		0x062
65fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_STATUS_OFF	0x06c
66fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_MAGIC_OFF		0x06e
67fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ENV_OFF	0x070
68fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_MXCSR_OFF		0x088
69fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST0_OFF	0x090
70fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST1_OFF	0x0a0
71fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST2_OFF	0x0b0
72fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST3_OFF	0x0c0
73fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST4_OFF	0x0d0
74fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST5_OFF	0x0e0
75fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST6_OFF	0x0f0
76fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_FXSR_ST7_OFF	0x100
77fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM0_OFF		0x110
78fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM1_OFF		0x120
79fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM2_OFF		0x130
80fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM3_OFF		0x140
81fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM4_OFF		0x150
82fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM5_OFF		0x160
83fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM6_OFF		0x170
84fcd8dad37efa05fd6090a68fe24b66a0ca7856eehp.com!davidm#define LINUX_FPSTATE_XMM7_OFF		0x180
85bb41eba56c44306e5bc2dcf8eeba574bd5a3702fKonstantin Belousov
86e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_SC_UCONTEXT_OFF		0x14
87e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_OFF		0x10
88e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov
8954f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_EAX_OFF	0x40
9054f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_EBX_OFF	0x34
9154f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_ECX_OFF	0x3c
9254f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_EDX_OFF	0x38
9354f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_EDI_OFF	0x24
9454f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_ESI_OFF	0x28
9554f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_EBP_OFF	0x2c
96e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_EIP_OFF	0x4c
97e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_ESP_OFF	0x58
98e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FS_OFF	0x18
99e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_GS_OFF	0x14
100e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_DS_OFF	0x20
101e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_ES_OFF	0x1c
102e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_SS_OFF	0x5c
103e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_CS_OFF	0x50
104e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_EFLAGS_OFF	0x54
105e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_OWNEDFP_OFF	0x68
106e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FPFORMAT_OFF	0x64
107e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FPSTATE_OFF	0x70
108e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_MC_LEN_OFF	0x60
109e9cd30040e2794ee586ff853b360b47881824fdaKonstantin Belousov#define FREEBSD_UC_MCONTEXT_TRAPNO_OFF	0x44
110bb41eba56c44306e5bc2dcf8eeba574bd5a3702fKonstantin Belousov
11154f8b2fdbe814d79cf52231ba38175c92b5c3c23Konstantin Belousov#define FREEBSD_UC_MCONTEXT_MC_LEN_VAL	0x280
112bb41eba56c44306e5bc2dcf8eeba574bd5a3702fKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FPOWNED_FPU	0x20001
113bb41eba56c44306e5bc2dcf8eeba574bd5a3702fKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FPFMT_387	0x10001
114bb41eba56c44306e5bc2dcf8eeba574bd5a3702fKonstantin Belousov#define FREEBSD_UC_MCONTEXT_FPFMT_XMM	0x10002
115