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