From 43d945b5e87685e68bc8d328b9f7d0b6e635d7c9 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 4 Sep 2022 23:03:20 -0400 Subject: [PATCH] Enable interrupts and halt CPU --- src/hos/cpu.d | 10 ++++++++++ src/hulk/hulk.d | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/hos/cpu.d b/src/hos/cpu.d index 4b83603..9fb02ad 100644 --- a/src/hos/cpu.d +++ b/src/hos/cpu.d @@ -5,6 +5,16 @@ void cli() __asm("cli", ""); } +void sti() +{ + __asm("sti", ""); +} + +void hlt() +{ + __asm("hlt", ""); +} + ulong read_cr0() { return __asm!ulong("mov %cr0, %rax", "={rax}"); diff --git a/src/hulk/hulk.d b/src/hulk/hulk.d index d01f861..419d828 100644 --- a/src/hulk/hulk.d +++ b/src/hulk/hulk.d @@ -16,6 +16,7 @@ import hulk.pci; import hulk.gdt; import hulk.idt; import hos.cpu; +import ldc.llvmasm; extern extern(C) __gshared ubyte _hulk_total_size; @@ -46,8 +47,10 @@ void hulk_start() hippo.initialize(&hulk_header); pci.initialize(); + sti(); for (;;) { + hlt(); } }