10 lines
230 B
C
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));
|
|
}
|