summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/cpu/mp.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-11-19 17:47:43 -0500
committerIan Moffett <ian@osmora.org>2025-11-19 17:47:43 -0500
commita0e0b16a5e5e0370d2312d17a250784d03b9507e (patch)
tree83c8604a6b026443fd8b8cc590ca56412bcf9ffb /sys/arch/amd64/cpu/mp.c
parentb09819f09d88f8860042a54a54eec188b8631142 (diff)
kern/amd64: mp: Add CPU idle function to split logic
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch/amd64/cpu/mp.c')
-rw-r--r--sys/arch/amd64/cpu/mp.c13
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