Searched refs:sx_lock (Results 1 - 4 of 4) sorted by last modified time

/freebsd-9.3-release/sys/sys/
H A D_sx.h39 volatile uintptr_t sx_lock; member in struct:sx
H A Dsx.h52 * 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 Dkern_sx.c188 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 Drwlock.h86 #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