replace asm volatile("pause") with function

This commit is contained in:
2026-10-15 21:20:31 +02:00
parent d7b20baf97
commit 7748a1dac8
8 changed files with 19 additions and 8 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
#include <zinnia/atomic.h>
#include <zinnia/irq.h>
#include <zinnia/spin.h>
#include <arch/cpu.h>
void spin_init(struct spinlock* spin) {
spin->next = 0;
@@ -12,7 +13,7 @@ void spin_lock(struct spinlock* spin) {
uint32_t my = atomic_fetch_add(&spin->next, 1, ATOMIC_RELAXED);
while (atomic_load(&spin->owner, ATOMIC_ACQUIRE) != my) {
asm volatile("pause");
arch_cpu_pause();
}
}