diff options
author | Ian Moffett <ian@osmora.org> | 2025-09-26 23:42:10 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-09-26 23:45:48 -0400 |
commit | 01dae750edc685b1a0c49c6b27fd5466b0f0ac31 (patch) | |
tree | 4b7a6469b5b76342b630c5dfa3f317be9ad81432 /src/sys/arch/amd64/cpu/cpu_conf.c | |
parent | a5ea47adbcacf70c24dbc00371e239d455e1764b (diff) |
kern/amd64: cpu: Add CPU halt ISR for IPIs
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/arch/amd64/cpu/cpu_conf.c')
-rw-r--r-- | src/sys/arch/amd64/cpu/cpu_conf.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sys/arch/amd64/cpu/cpu_conf.c b/src/sys/arch/amd64/cpu/cpu_conf.c index 6ab4d6e..20a2cec 100644 --- a/src/sys/arch/amd64/cpu/cpu_conf.c +++ b/src/sys/arch/amd64/cpu/cpu_conf.c @@ -34,9 +34,20 @@ #include <machine/trap.h> #include <machine/lapic.h> #include <machine/gdt.h> +#include <machine/mdcpu.h> #include <string.h> extern void syscall_isr(void); +extern void core_halt_isr(void); +void core_halt_handler(void); + +void +core_halt_handler(void) +{ + for (;;) { + __ASMV("cli; hlt"); + } +} /* * Initialize interrupt vectors @@ -57,6 +68,7 @@ init_vectors(void) idt_set_desc(0xD, IDT_TRAP_GATE, ISR(general_prot), 0); idt_set_desc(0xE, IDT_TRAP_GATE, ISR(page_fault), 0); idt_set_desc(0x80, IDT_USER_GATE, ISR(syscall_isr), 0); + idt_set_desc(HALT_VECTOR, IDT_USER_GATE, ISR(core_halt_isr), 0); } void |