summaryrefslogtreecommitdiff
path: root/kernel/src/cpu/regs.c
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-27 01:59:33 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-27 01:59:33 +0100
commit15f3911599a8d005edee46247470afe2a7a0b4aa (patch)
tree3113b84e1ddddc1f4937ca5596d8e32aacc4f51f /kernel/src/cpu/regs.c
parenta164ca67174ba6179170dea573479f23122513cc (diff)
almost done multitasking
Diffstat (limited to 'kernel/src/cpu/regs.c')
-rw-r--r--kernel/src/cpu/regs.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/kernel/src/cpu/regs.c b/kernel/src/cpu/regs.c
new file mode 100644
index 0000000..710448e
--- /dev/null
+++ b/kernel/src/cpu/regs.c
@@ -0,0 +1,33 @@
+#include <regs.h>
+#include <libk/stdio.h>
+
+void print_regs_from_rsp(uint64_t rsp)
+{
+ regs_t *regs = (regs_t *)rsp;
+
+ printf("info regs:\n");
+ printf("rax: 0x%x; ", regs->rax);
+ printf("rbx: 0x%x; ", regs->rbx);
+ printf("rcx: 0x%x; ", regs->rcx);
+ printf("rdx: 0x%x; ", regs->rdx);
+ printf("rdi: 0x%x; ", regs->rdi);
+ printf("rsi: 0x%x; ", regs->rsi);
+ printf("rsp: 0x%x; ", regs->rsp);
+ printf("rbp: 0x%x; ", regs->rbp);
+ printf("r8: 0x%x; ", regs->r8);
+ printf("r9: 0x%x; ", regs->r9);
+ printf("r10: 0x%x; ", regs->r10);
+ printf("r11: 0x%x; ", regs->r11);
+ printf("r12: 0x%x; ", regs->r12);
+ printf("r13: 0x%x; ", regs->r13);
+ printf("r14: 0x%x; ", regs->r14);
+ printf("r15: 0x%x; ", regs->r15);
+ printf("rip: 0x%x; ", regs->rip);
+ printf("cs: 0x%x; ", regs->cs);
+ printf("ds: 0x%x; ", regs->seg >> 48);
+ printf("ss: 0x%x; ", regs->ss);
+ printf("es: 0x%x; ", (regs->seg >> 32) & 0xFFFF);
+ printf("fs: 0x%x; ", (regs->seg >> 16) & 0xFFFF);
+ printf("gs: 0x%x; ", regs->seg & 0xFFFF);
+ printf("rflags: 0x%x; ", regs->rflags);
+}