Implement interrupts

This commit is contained in:
2025-08-19 22:51:33 +02:00
parent 92ccd189e7
commit 3f6df79885
14 changed files with 455 additions and 101 deletions

14
kernel/hal/x86_64/cpu.c Normal file
View File

@ -0,0 +1,14 @@
#include <stdint.h>
#include <stddef.h>
uint64_t cpu_rdmsr(uint32_t id) {
uint32_t lo, hi;
asm volatile("rdmsr" : "=m"(lo), "=d"(hi) : "c"(id));
return ((uint64_t)lo) | ((uint64_t)hi << 32);
}
uint64_t cpu_wrmsr(uint32_t id, uint64_t val) {
uint32_t lo = val & 0xffffffff, hi = (val >> 32) & 0xffffffff;
asm volatile("wrmsr" :: "a"(lo), "d"(hi), "c"(id) : "memory");
return val;
}