razzle/arch/i386/asm/asm.c
2025-02-28 21:25:17 -05:00

10 lines
230 B
C

#include "asm.h"
void __sl_acquire(uint32_t *lock_id) {
__asm__("retry_lock: lock bts $0,(%0); pause; jc retry_lock" : "+g"(lock_id));
}
void __sl_release(uint32_t *lock_id) {
__asm__("lock btr $0, (%0)" : "+g"(lock_id));
}