| /* Copyright (C) 2004 Hewlett-Packard Co. |
| Contributed by David Mosberger-Tang <davidm@hpl.hp.com>. |
| |
| This file is part of libunwind. |
| |
| Permission is hereby granted, free of charge, to any person obtaining |
| a copy of this software and associated documentation files (the |
| "Software"), to deal in the Software without restriction, including |
| without limitation the rights to use, copy, modify, merge, publish, |
| distribute, sublicense, and/or sell copies of the Software, and to |
| permit persons to whom the Software is furnished to do so, subject to |
| the following conditions: |
| |
| The above copyright notice and this permission notice shall be |
| included in all copies or substantial portions of the Software. |
| |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
| LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
| OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
| WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ |
| |
| #if defined __linux__ |
| #define UC_MCONTEXT_GREGS_R8 0x28 |
| #define UC_MCONTEXT_GREGS_R9 0x30 |
| #define UC_MCONTEXT_GREGS_R10 0x38 |
| #define UC_MCONTEXT_GREGS_R11 0x40 |
| #define UC_MCONTEXT_GREGS_R12 0x48 |
| #define UC_MCONTEXT_GREGS_R13 0x50 |
| #define UC_MCONTEXT_GREGS_R14 0x58 |
| #define UC_MCONTEXT_GREGS_R15 0x60 |
| #define UC_MCONTEXT_GREGS_RDI 0x68 |
| #define UC_MCONTEXT_GREGS_RSI 0x70 |
| #define UC_MCONTEXT_GREGS_RBP 0x78 |
| #define UC_MCONTEXT_GREGS_RBX 0x80 |
| #define UC_MCONTEXT_GREGS_RDX 0x88 |
| #define UC_MCONTEXT_GREGS_RAX 0x90 |
| #define UC_MCONTEXT_GREGS_RCX 0x98 |
| #define UC_MCONTEXT_GREGS_RSP 0xa0 |
| #define UC_MCONTEXT_GREGS_RIP 0xa8 |
| #define UC_MCONTEXT_FPREGS_PTR 0x1a8 |
| #define UC_MCONTEXT_FPREGS_MEM 0xe0 |
| #define UC_SIGMASK 0x128 |
| #define FPREGS_OFFSET_MXCSR 0x18 |
| #elif defined __FreeBSD__ |
| #define UC_SIGMASK 0x0 |
| #define UC_MCONTEXT_GREGS_RDI 0x18 |
| #define UC_MCONTEXT_GREGS_RSI 0x20 |
| #define UC_MCONTEXT_GREGS_RDX 0x28 |
| #define UC_MCONTEXT_GREGS_RCX 0x30 |
| #define UC_MCONTEXT_GREGS_R8 0x38 |
| #define UC_MCONTEXT_GREGS_R9 0x40 |
| #define UC_MCONTEXT_GREGS_RAX 0x48 |
| #define UC_MCONTEXT_GREGS_RBX 0x50 |
| #define UC_MCONTEXT_GREGS_RBP 0x58 |
| #define UC_MCONTEXT_GREGS_R10 0x60 |
| #define UC_MCONTEXT_GREGS_R11 0x68 |
| #define UC_MCONTEXT_GREGS_R12 0x70 |
| #define UC_MCONTEXT_GREGS_R13 0x78 |
| #define UC_MCONTEXT_GREGS_R14 0x80 |
| #define UC_MCONTEXT_GREGS_R15 0x88 |
| #define UC_MCONTEXT_FS 0x94 |
| #define UC_MCONTEXT_GS 0x96 |
| #define UC_MCONTEXT_FLAGS 0xa0 |
| #define UC_MCONTEXT_ES 0xa4 |
| #define UC_MCONTEXT_DS 0xa6 |
| #define UC_MCONTEXT_GREGS_RIP 0xb0 |
| #define UC_MCONTEXT_CS 0xb8 |
| #define UC_MCONTEXT_RFLAGS 0xc0 |
| #define UC_MCONTEXT_GREGS_RSP 0xc8 |
| #define UC_MCONTEXT_SS 0xd0 |
| #define UC_MCONTEXT_MC_LEN 0xd8 |
| #define UC_MCONTEXT_FPFORMAT 0xe0 |
| #define UC_MCONTEXT_OWNEDFP 0xe8 |
| #define UC_MCONTEXT_FPSTATE 0xf0 |
| #define UC_MCONTEXT_FPOWNED_FPU 0x20001 |
| #define UC_MCONTEXT_FPFMT_XMM 0x10002 |
| #define UC_MCONTEXT_MC_LEN_VAL 0x320 |
| |
| #endif |