summaryrefslogtreecommitdiff
path: root/kernel/include/registers.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/registers.h')
-rw-r--r--kernel/include/registers.h31
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