From 956bb743a3ba6939aaff2372fc45628cda6a9840 Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Mon, 5 Sep 2022 23:54:12 +0200 Subject: userspace finally working --- kernel/src/cpu/tss.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'kernel/src/cpu/tss.c') diff --git a/kernel/src/cpu/tss.c b/kernel/src/cpu/tss.c index c7f9dc2..843c114 100644 --- a/kernel/src/cpu/tss.c +++ b/kernel/src/cpu/tss.c @@ -1,15 +1,22 @@ #include +#include +#include tss_type tss; void load_tss() { - __asm__ volatile ("mov $0x28, %ax; ltr %ax;"); + __asm__ volatile ("push %rax; mov $0x28, %ax; ltr %ax; pop %rax;"); } void init_tss() { tss.iopb = sizeof(tss_type); + uint64_t stack = (uint64_t)kalloc(4096*4); + stack = (uint64_t)kalloc(4096*4) + 8; + tss.rsp0_low = (uint32_t)stack; + tss.rsp0_high = (uint32_t)(stack >> 32); load_tss(); + printf("rsp0 addr in tss: 0x%x\n", stack); } -- cgit v1.2.3