From ae5499137e377e08feb523c08b26495e79ed16df Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Fri, 2 Dec 2022 00:56:33 +0100 Subject: now also working on amd cpus --- kernel/src/cpu/io.c | 5 +++++ kernel/src/cpu/tss.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'kernel/src/cpu') diff --git a/kernel/src/cpu/io.c b/kernel/src/cpu/io.c index 1a68f08..a5adfd6 100644 --- a/kernel/src/cpu/io.c +++ b/kernel/src/cpu/io.c @@ -12,3 +12,8 @@ void outb(uint32_t port, uint8_t value) { __asm__ volatile ("outb %%al, %%dx;" : : "d"(port), "a"(value)); } + +void io_wait(void) +{ + outb(0x80, 0); +} diff --git a/kernel/src/cpu/tss.c b/kernel/src/cpu/tss.c index 0dfa18e..d2c16d3 100644 --- a/kernel/src/cpu/tss.c +++ b/kernel/src/cpu/tss.c @@ -12,9 +12,10 @@ void load_tss() void init_tss() { + memset(&tss, 0, sizeof(tss_type)); tss.iopb = sizeof(tss_type); - uint64_t stack = (uint64_t)kalloc(4096*4); - stack = (uint64_t)kalloc(4096*4) + 8; + uint32_t stack_size = 4096*4; + uint64_t stack = (uint64_t)kalloc(stack_size) + stack_size - 8; tss.rsp0_low = (uint32_t)stack; tss.rsp0_high = (uint32_t)(stack >> 32); -- cgit v1.2.3