Clear interrupts on HULK startup just in case

This commit is contained in:
Josh Holtrop 2022-09-01 15:50:59 -04:00
parent 66bd51ffb0
commit b72c69ef1c
2 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,10 @@
import ldc.llvmasm; import ldc.llvmasm;
void cli()
{
__asm("cli", "");
}
ulong read_cr0() ulong read_cr0()
{ {
return __asm!ulong("mov %cr0, %rax", "={rax}"); return __asm!ulong("mov %cr0, %rax", "={rax}");

View File

@ -14,6 +14,7 @@ import hulk.hurl;
import hulk.hippo; import hulk.hippo;
import hulk.pci; import hulk.pci;
import hulk.gdt; import hulk.gdt;
import hos.cpu;
extern extern(C) __gshared ubyte _hulk_total_size; extern extern(C) __gshared ubyte _hulk_total_size;
@ -32,6 +33,7 @@ private __gshared HulkHeader hulk_header = {
*/ */
void hulk_start() void hulk_start()
{ {
cli();
gdt.initialize(); gdt.initialize();
fb.initialize(cast(uint *)HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, hulk_header.bootinfo.fb.width, hulk_header.bootinfo.fb.height, hulk_header.bootinfo.fb.stride); fb.initialize(cast(uint *)HULK_VIRTUAL_FRAMEBUFFER_ADDRESS, hulk_header.bootinfo.fb.width, hulk_header.bootinfo.fb.height, hulk_header.bootinfo.fb.stride);
console.initialize(); console.initialize();