blob: bf89b8e416c42b384a2614f45fd9c22d0734115f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include "globals.h"
#include "main/apic.h"
void spinlock_init(spinlock_t *lock) { lock->s_locked = 0; }
inline void spinlock_lock(spinlock_t *lock)
{
// __sync_bool_compare_and_swap is a GCC intrinsic for atomic compare-and-swap
// If lock->locked is 0, then it is set to 1 and __sync_bool_compare_and_swap
// returns true Otherwise, lock->locked is left at 1 and
// __sync_bool_compare_and_swap returns false
}
inline void spinlock_unlock(spinlock_t *lock)
{
}
inline long spinlock_ownslock(spinlock_t *lock)
{
return 1;
}
|