diff options
| author | Ian Moffett <ian@osmora.org> | 2025-11-19 17:47:43 -0500 |
|---|---|---|
| committer | Ian Moffett <ian@osmora.org> | 2025-11-19 17:47:43 -0500 |
| commit | a0e0b16a5e5e0370d2312d17a250784d03b9507e (patch) | |
| tree | 83c8604a6b026443fd8b8cc590ca56412bcf9ffb /sys | |
| parent | b09819f09d88f8860042a54a54eec188b8631142 (diff) | |
kern/amd64: mp: Add CPU idle function to split logic
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/amd64/cpu/mp.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/arch/amd64/cpu/mp.c b/sys/arch/amd64/cpu/mp.c index a84648b..7ce3a06 100644 --- a/sys/arch/amd64/cpu/mp.c +++ b/sys/arch/amd64/cpu/mp.c @@ -111,6 +111,14 @@ static volatile uint32_t aps_up = 0; __section(".trampoline") static char ap_code[4096]; static void +cpu_idle(void) +{ + for (;;) { + __asmv("hlt"); + } +} + +static void cpu_mtrr_save(void) { uint64_t mtrr_cap; @@ -283,9 +291,8 @@ cpu_lm_entry(void) atomic_inc_int(&aps_up); cpu_list[aps_up] = ci; - for (;;) { - __asmv("cli; hlt"); - } + cpu_idle(); + __builtin_unreachable(); } static int |
