diff options
Diffstat (limited to 'kernel/include/registers.h')
| -rw-r--r-- | kernel/include/registers.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/kernel/include/registers.h b/kernel/include/registers.h index a0c0949..373e557 100644 --- a/kernel/include/registers.h +++ b/kernel/include/registers.h @@ -3,6 +3,32 @@ #include <types.h> +#define RAX 0x0 +#define RBX 0x8 +#define RCX 0x10 +#define RDX 0x18 +#define RSI 0x20 +#define RDI 0x28 +#define RSP 0x30 +#define RBP 0x38 +#define R8 0x40 +#define R9 0x48 +#define R10 0x50 +#define R11 0x58 +#define R12 0x60 +#define R13 0x68 +#define R14 0x70 +#define R15 0x78 +#define RIP 0x80 +#define RFLAGS 0x88 +#define CR3 0x90 +#define CS 0x98 +#define DS 0x9c +#define SS 0x100 +#define ES 0x104 +#define FS 0x108 +#define GS 0x10c + struct registers_t { uint64_t rax; uint64_t rbx; @@ -21,14 +47,15 @@ struct registers_t { uint64_t r14; uint64_t r15; uint64_t rip; + uint64_t rflags; + uint64_t cr3; uint16_t cs; uint16_t ds; uint16_t ss; uint16_t es; uint16_t fs; uint16_t gs; -}; +} __attribute__((packed, aligned(8))); typedef struct registers_t registers_t; - #endif |
