Files
mop3/kernel/amd64/spin_lock.c
kamkow1 c8fb575bdd
All checks were successful
Build ISO image / build-and-deploy (push) Successful in 2m7s
Build documentation / build-and-deploy (push) Successful in 39s
Change formatting rules
2026-04-24 01:54:48 +02:00

13 lines
390 B
C

#include <sys/spin_lock.h>
/// Relax the spinlock using AMD64 pause instruction
void spin_lock_relax(void) { __asm__ volatile("pause" ::: "memory"); }
void spin_lock_save_flags(uint64_t* flags) {
__asm__ volatile("pushfq; cli; popq %0" : "=rm"(*flags)::"memory");
}
void spin_lock_restore_flags(uint64_t flags) {
__asm__ volatile("pushq %0; popfq" ::"rm"(flags) : "memory", "cc");
}