Files
mango/arch/x86_64/cpu.c

19 lines
327 B
C

#include <socks/machine/cpu.h>
#include <arch/msr.h>
int ml_cpu_block_init(ml_cpu_block *p)
{
p->c_this = p;
gdt_init(&p->c_gdt, &p->c_gdt_ptr);
idt_init(&p->c_idt_ptr);
return 0;
}
int ml_cpu_block_use(ml_cpu_block *p)
{
gdt_load(&p->c_gdt_ptr);
idt_load(&p->c_idt_ptr);
wrmsr(MSR_GS_BASE, (uint64_t)p);
return 0;
}