spinlock
extern void acquire_spinlock(spinlock *lock);
extern void release_spinlock(spinlock *lock);
# define B_INITIALIZE_SPINLOCK(spinlock) do { \
(spinlock)->lock = 0; \
(spinlock)->failed_try_acquire = 0; \
(spinlock)->total_wait = 0; \
(spinlock)->total_held = 0; \
(spinlock)->last_acquired = 0; \
# define B_INITIALIZE_SPINLOCK(spinlock) do { \
(spinlock)->lock = 0; \
#define B_SPINLOCK_IS_LOCKED(spinlock) (atomic_get(&(spinlock)->lock) > 0)
spinlock lock;
#define spinlock_t spinlock
extern int pthread_spin_init(pthread_spinlock_t* spinlock, int pshared);
extern int pthread_spin_destroy(pthread_spinlock_t* spinlock);
extern int pthread_spin_lock(pthread_spinlock_t* spinlock);
extern int pthread_spin_trylock(pthread_spinlock_t* spinlock);
extern int pthread_spin_unlock(pthread_spinlock_t* spinlock);
spinlock Spinlock;
spinlock fLock;
spinlock fLock;
spinlock irqs_lock;
extern spinlock gSchedulerListenersLock;
spinlock lock;
spinlock lock;
try_acquire_spinlock_inline(spinlock* lock)
acquire_spinlock_inline(spinlock* lock)
release_spinlock_inline(spinlock* lock)
bool try_acquire_spinlock(spinlock* lock);
extern spinlock gThreadCreationLock;
spinlock scheduler_lock;
spinlock time_lock;
spinlock time_lock;
spinlock signal_lock;
spinlock lock;
spinlock lock;
inline bool Lock(spinlock* lockable)
inline void Unlock(spinlock* lockable)
inline bool Lock(spinlock* lockable)
inline void Unlock(spinlock* lockable)
*outHandle = (ACPI_SPINLOCK) malloc(sizeof(spinlock));
#define ACPI_SPINLOCK spinlock *
spinlock fInterruptLock;
static spinlock sTimerSpinlock;
spinlock fTXLock;
spinlock fRXLock;
spinlock fChannelsSpinlock;
spinlock lock;
spinlock lock; // normal spinlock
spinlock fInterruptLock;
spinlock fLock = B_SPINLOCK_INITIALIZER;
spinlock fLock = B_SPINLOCK_INITIALIZER;
spinlock fInterruptLock;
spinlock hwlock; /* lock protecting register access */
spinlock fSpinlock;
static spinlock lock = B_SPINLOCK_INITIALIZER;
static spinlock lock = B_SPINLOCK_INITIALIZER;
static spinlock lock = B_SPINLOCK_INITIALIZER;
spinlock fSpinlock;
spinlock lock; /* Write lock */
spinlock fHWSpinlock;
spinlock rd_lock;
spinlock hardware;
spinlock wr_lock;
spinlock slock = B_SPINLOCK_INITIALIZER;
extern spinlock slock;
spinlock lock; /* Write lock */
static spinlock slock = B_SPINLOCK_INITIALIZER;
spinlock lock;
spinlock lock;
spinlock cap_spinlock; // synchronization for following capture data
spinlock locked = B_SPINLOCK_INITIALIZER;
spinlock intrlock; /* ethercard io, including interrupt handler */
spinlock rxSpinlock;
spinlock txSpinlock;
spinlock intLock;
spinlock lock;
spinlock lock;
char condition[roundup((sizeof(void*) * 5) + sizeof(spinlock) + sizeof(int32), sizeof(void*))];
extern spinlock __haiku_intr_spinlock;
spinlock __haiku_intr_spinlock;
static spinlock sAbsoluteRealTimeTimersLock = B_SPINLOCK_INITIALIZER;
static spinlock atomic_lock = B_SPINLOCK_INITIALIZER;
static spinlock sPagingStructuresListLock;
static spinlock sAsidLock = B_SPINLOCK_INITIALIZER;
static spinlock atomic_lock = 0;
static spinlock sSetArchDataLock;
static spinlock tmap_list_lock;
static spinlock sPagingStructuresListLock;
static spinlock sSetArchDataLock;
static spinlock sPagingStructuresListLock;
static spinlock sVSIDBaseBitmapLock;
static spinlock sPagingStructuresListLock;
static spinlock sVSIDBaseBitmapLock;
static spinlock sUcodeUpdateLock = B_SPINLOCK_INITIALIZER;
static spinlock sSerialOutputSpinlock = B_SPINLOCK_INITIALIZER;
static spinlock sPagingStructuresListLock;
spinlock unused_blocks_lock;
static spinlock sSetCpuLock;
static spinlock sSpinlock = B_SPINLOCK_INITIALIZER;
static spinlock sSpinlock = B_SPINLOCK_INITIALIZER;
static spinlock sParanoiaLock;
spinlock fLock;
static spinlock sProfilerLock = B_SPINLOCK_INITIALIZER;
spinlock fLock;
spinlock fFinisherLock;
spinlock fLock;
spinlock fReadRequestsLock;
spinlock fWriteRequestsLock;
static spinlock sUnusedVnodesLock = B_SPINLOCK_INITIALIZER;
static spinlock sDeferredFreeListLock;
spinlock vector_lock;
spinlock load_lock;
spinlock gSchedulerListenersLock = B_SPINLOCK_INITIALIZER;
spinlock fQueueLock;
spinlock fCPULock;
spinlock fQueueLock;
spinlock fFunctionLock;
spinlock lock; // protects only the id field when unused
static spinlock sSemsSpinlock = B_SPINLOCK_INITIALIZER;
spinlock inner_lock;
spinlock *lock;
push_lock_caller(void* caller, spinlock* lock)
find_lock_caller(spinlock* lock)
spinlock* lock = (spinlock*)(addr_t)address;
update_lock_contention(spinlock* lock, bigtime_t start)
update_lock_held(spinlock* lock)
try_acquire_spinlock(spinlock* lock)
acquire_spinlock(spinlock* lock)
release_spinlock(spinlock *lock)
static spinlock sGroupHashLock = B_SPINLOCK_INITIALIZER;
static spinlock sUndertakerLock = B_SPINLOCK_INITIALIZER;
static spinlock sCachedKernelStacksLock = B_SPINLOCK_INITIALIZER;
spinlock gThreadCreationLock = B_SPINLOCK_INITIALIZER;
spinlock* spinlock = &cpuData.lock;
acquire_spinlock(spinlock);
release_spinlock(spinlock);
acquire_spinlock(spinlock);
spinlock lock;
release_spinlock(spinlock);
inline spinlock& GetLock() { return fLock; }
spinlock fLock;
acquire_spinlock(spinlock* lock)
static spinlock sLock = B_SPINLOCK_INITIALIZER;
spinlock fLock;