| |
| #ifdef linux |
| /* Register numbers */ |
| #define RN_GS 0 |
| #define RN_FS 1 |
| #define RN_ES 2 |
| #define RN_DS 3 |
| #define RN_EDI 4 |
| #define RN_ESI 5 |
| #define RN_EBP 6 |
| #define RN_ESP 7 |
| #define RN_EBX 8 |
| #define RN_EDX 9 |
| #define RN_ECX 10 |
| #define RN_EAX 11 |
| #define RN_TRAPNO 12 |
| #define RN_ERR 13 |
| #define RN_EIP 14 |
| #define RN_CS 15 |
| #define RN_EFLAGS 16 |
| #define RN_ESP_AT_SIGNAL 17 |
| #define RN_SS 18 |
| #define RN_I387 19 |
| #define RN_OLDMASK 20 |
| #define RN_CR2 21 |
| #endif |
| |
| #if defined(__NetBSD__) || defined(__FreeBSD__) |
| #define RN_OLDMASK 1 |
| /* Register numbers */ |
| #define RN_ESP 2 |
| #define RN_EBP 3 |
| #define RN_ESP_AT_SIGNAL 4 |
| #define RN_EIP 5 |
| #define RN_EFLAGS 6 |
| #define RN_ES 7 |
| #define RN_DS 8 |
| #define RN_CS 9 |
| #define RN_SS 10 |
| #define RN_EDI 11 |
| #define RN_ESI 12 |
| #define RN_EBX 13 |
| #define RN_EDX 14 |
| #define RN_ECX 15 |
| #define RN_EAX 16 |
| /* NetBSD doesn't context switch gs or fs */ |
| #define SC_GS 0x27 |
| #define SC_FS 0x27 |
| #endif |
| |
| #ifdef linux |
| #define SC_GS regval[RN_GS] |
| #define SC_FS regval[RN_FS] |
| #define I387 regval[RN_I387] |
| #define CR2 regval[RN_CR2] |
| #endif |
| #define SC_ES regval[RN_ES] |
| #define SC_DS regval[RN_DS] |
| #define SC_EDI(dbg_mask) (regval[RN_EDI] & dbg_mask) |
| #define SC_ESI(dbg_mask) (regval[RN_ESI] & dbg_mask) |
| #define SC_EBP(dbg_mask) (regval[RN_EBP] & dbg_mask) |
| #define SC_ESP(dbg_mask) (regval[RN_ESP] & dbg_mask) |
| #define SC_EBX(dbg_mask) (regval[RN_EBX] & dbg_mask) |
| #define SC_EDX(dbg_mask) (regval[RN_EDX] & dbg_mask) |
| #define SC_ECX(dbg_mask) (regval[RN_ECX] & dbg_mask) |
| #define SC_EAX(dbg_mask) (regval[RN_EAX] & dbg_mask) |
| #define SC_TRAPNO regval[RN_TRAPNO] |
| #define SC_ERR regval[RN_ERR] |
| #define SC_EIP(dbg_mask) (regval[RN_EIP] & dbg_mask) |
| #define SC_CS regval[RN_CS] |
| #define SC_EFLAGS regval[RN_EFLAGS] |
| #define ESP_AT_SIGNAL regval[RN_ESP_AT_SIGNAL] |
| #define SC_SS regval[RN_SS] |
| #define OLDMASK regval[RN_OLDMASK] |