Searched refs:sx_lock (Results 1 - 4 of 4) sorted by last modified time
/freebsd-9.3-release/sys/sys/ |
H A D | _sx.h | 39 volatile uintptr_t sx_lock; member in struct:sx
|
H A D | sx.h | 52 * The sx_lock field consists of several fields. The low bit 160 if (!atomic_cmpset_acq_ptr(&sx->sx_lock, SX_LOCK_UNLOCKED, tid)) 175 if (!atomic_cmpset_rel_ptr(&sx->sx_lock, tid, SX_LOCK_UNLOCKED)) 183 uintptr_t x = sx->sx_lock; 187 !atomic_cmpset_acq_ptr(&sx->sx_lock, x, x + SX_ONE_SHARER)) 206 uintptr_t x = sx->sx_lock; 209 !atomic_cmpset_rel_ptr(&sx->sx_lock, x, x - SX_ONE_SHARER)) 270 ((sx)->sx_lock & SX_LOCK_SHARED ? NULL : \ 271 (struct thread *)SX_OWNER((sx)->sx_lock)) 274 (((sx)->sx_lock [all...] |
/freebsd-9.3-release/sys/kern/ |
H A D | kern_sx.c | 188 uintptr_t x = sx->sx_lock; 211 ASSERT_ATOMIC_LOAD_PTR(sx->sx_lock, 212 ("%s: sx_lock not aligned for %s: %p", __func__, description, 213 &sx->sx_lock)); 228 sx->sx_lock = SX_LOCK_UNLOCKED; 237 KASSERT(sx->sx_lock == SX_LOCK_UNLOCKED, ("sx lock still held")); 239 sx->sx_lock = SX_LOCK_DESTROYED; 253 KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, 279 x = sx->sx_lock; 284 if (atomic_cmpset_acq_ptr(&sx->sx_lock, [all...] |
/freebsd-9.3-release/sys/cddl/compat/opensolaris/sys/ |
H A D | rwlock.h | 86 #define rw_read_held(lock) ((lock)->sx_lock != SX_LOCK_UNLOCKED && ((lock)->sx_lock & SX_LOCK_SHARED)) 91 #define rw_owner(lock) ((lock)->sx_lock & SX_LOCK_SHARED ? NULL : (struct thread *)SX_OWNER((lock)->sx_lock))
|
Completed in 51 milliseconds