summaryrefslogtreecommitdiff
path: root/kernel/include/regs.h
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-26 11:52:55 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-26 11:52:55 +0100
commit950649760927a7c33ddecd1944fd0ad20e731ee9 (patch)
tree26c36460a91a128879de7ebf68fbcfcc50ef08fd /kernel/include/regs.h
parenta362a43899040a3848427c4d1f3bd1d3e53f46ec (diff)
save/restore context from rsp
Diffstat (limited to 'kernel/include/regs.h')
-rw-r--r--kernel/include/regs.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/kernel/include/regs.h b/kernel/include/regs.h
index 81b8a69..ec2ed89 100644
--- a/kernel/include/regs.h
+++ b/kernel/include/regs.h
@@ -1,6 +1,8 @@
#ifndef REGS_H
#define REGS_H
+#include <types.h>
+
#define R15_OFF 0x0
#define R14_OFF 0x08
#define R13_OFF 0x10
@@ -24,4 +26,30 @@
#define RSP_OFF 0x100
#define SS_OFF 0x108
+struct regs_t {
+ uint64_t r15;
+ uint64_t r14;
+ uint64_t r13;
+ uint64_t r12;
+ uint64_t rbp;
+ uint64_t rbx;
+ uint64_t seg;
+ uint64_t r11;
+ uint64_t r10;
+ uint64_t r9;
+ uint64_t r8;
+ uint64_t rdi;
+ uint64_t rsi;
+ uint64_t rdx;
+ uint64_t rcx;
+ uint64_t rax;
+ uint64_t error;
+ uint64_t rip;
+ uint64_t cs;
+ uint64_t rflags;
+ uint64_t rsp;
+ uint64_t ss;
+} __attribute__((packed));
+typedef struct regs_t regs_t;
+
#endif