lkp                82 kern/kern_lock.c #define ACQUIRE(lkp, error, extflags, drain, wanted)			\
lkp                86 kern/kern_lock.c 			(lkp)->lk_flags |= LK_WAITDRAIN;		\
lkp                88 kern/kern_lock.c 			(lkp)->lk_waitcount++;				\
lkp                91 kern/kern_lock.c 		    (void *)&(lkp)->lk_flags : (void *)(lkp),		\
lkp                92 kern/kern_lock.c 		    (lkp)->lk_prio, (lkp)->lk_wmesg, (lkp)->lk_timo);	\
lkp                94 kern/kern_lock.c 			(lkp)->lk_waitcount--;				\
lkp               104 kern/kern_lock.c #define	SETHOLDER(lkp, pid, cpu_id)					\
lkp               105 kern/kern_lock.c 	(lkp)->lk_lockholder = (pid)
lkp               107 kern/kern_lock.c #define	WEHOLDIT(lkp, pid, cpu_id)					\
lkp               108 kern/kern_lock.c 	(lkp)->lk_lockholder == (pid)
lkp               110 kern/kern_lock.c #define	WAKEUP_WAITER(lkp)						\
lkp               112 kern/kern_lock.c 	if ((lkp)->lk_waitcount) 				{	\
lkp               114 kern/kern_lock.c 		wakeup((void *)(lkp));					\
lkp               137 kern/kern_lock.c #define	HAVEIT(lkp)							\
lkp               141 kern/kern_lock.c #define	DONTHAVEIT(lkp)							\
lkp               171 kern/kern_lock.c lockinit(struct lock *lkp, int prio, char *wmesg, int timo, int flags)
lkp               174 kern/kern_lock.c 	bzero(lkp, sizeof(struct lock));
lkp               175 kern/kern_lock.c 	lkp->lk_flags = flags & LK_EXTFLG_MASK;
lkp               176 kern/kern_lock.c 	lkp->lk_lockholder = LK_NOPROC;
lkp               177 kern/kern_lock.c 	lkp->lk_prio = prio;
lkp               178 kern/kern_lock.c 	lkp->lk_timo = timo;
lkp               179 kern/kern_lock.c 	lkp->lk_wmesg = wmesg;	/* just a name for spin locks */
lkp               181 kern/kern_lock.c 	lkp->lk_lock_file = NULL;
lkp               182 kern/kern_lock.c 	lkp->lk_unlock_file = NULL;
lkp               190 kern/kern_lock.c lockstatus(struct lock *lkp)
lkp               194 kern/kern_lock.c 	if (lkp->lk_exclusivecount != 0)
lkp               196 kern/kern_lock.c 	else if (lkp->lk_sharecount != 0)
lkp               209 kern/kern_lock.c lockmgr(__volatile struct lock *lkp, u_int flags, struct simplelock *interlkp)
lkp               218 kern/kern_lock.c 	extflags = (flags | lkp->lk_flags) & LK_EXTFLG_MASK;
lkp               237 kern/kern_lock.c 	if (lkp->lk_flags & (LK_DRAINING|LK_DRAINED)) {
lkp               239 kern/kern_lock.c 		if (lkp->lk_flags & LK_DRAINED)
lkp               242 kern/kern_lock.c 		    WEHOLDIT(lkp, pid, cpu_id) == 0)
lkp               246 kern/kern_lock.c 		lkp->lk_flags &= ~LK_DRAINING;
lkp               247 kern/kern_lock.c 		lkp->lk_flags |= LK_DRAINED;
lkp               253 kern/kern_lock.c 	if ((lkp->lk_flags & (LK_CANRECURSE|LK_RECURSEFAIL)) ==
lkp               260 kern/kern_lock.c 		if (WEHOLDIT(lkp, pid, cpu_id) == 0) {
lkp               264 kern/kern_lock.c 			if ((extflags & LK_NOWAIT) && (lkp->lk_flags &
lkp               272 kern/kern_lock.c 			ACQUIRE(lkp, error, extflags, 0, lkp->lk_flags &
lkp               276 kern/kern_lock.c 			lkp->lk_sharecount++;
lkp               283 kern/kern_lock.c 		lkp->lk_sharecount++;
lkp               285 kern/kern_lock.c 		if (WEHOLDIT(lkp, pid, cpu_id) == 0 ||
lkp               286 kern/kern_lock.c 		    lkp->lk_exclusivecount == 0)
lkp               288 kern/kern_lock.c 		lkp->lk_sharecount += lkp->lk_exclusivecount;
lkp               289 kern/kern_lock.c 		lkp->lk_exclusivecount = 0;
lkp               290 kern/kern_lock.c 		lkp->lk_flags &= ~LK_HAVE_EXCL;
lkp               291 kern/kern_lock.c 		SETHOLDER(lkp, LK_NOPROC, LK_NOCPU);
lkp               293 kern/kern_lock.c 		lkp->lk_unlock_file = file;
lkp               294 kern/kern_lock.c 		lkp->lk_unlock_line = line;
lkp               296 kern/kern_lock.c 		DONTHAVEIT(lkp);
lkp               297 kern/kern_lock.c 		WAKEUP_WAITER(lkp);
lkp               301 kern/kern_lock.c 		if (WEHOLDIT(lkp, pid, cpu_id)) {
lkp               312 kern/kern_lock.c 			lkp->lk_exclusivecount++;
lkp               318 kern/kern_lock.c 		if ((extflags & LK_NOWAIT) && ((lkp->lk_flags &
lkp               320 kern/kern_lock.c 		     lkp->lk_sharecount != 0)) {
lkp               327 kern/kern_lock.c 		ACQUIRE(lkp, error, extflags, 0, lkp->lk_flags &
lkp               331 kern/kern_lock.c 		lkp->lk_flags |= LK_WANT_EXCL;
lkp               335 kern/kern_lock.c 		ACQUIRE(lkp, error, extflags, 0, lkp->lk_sharecount != 0);
lkp               336 kern/kern_lock.c 		lkp->lk_flags &= ~LK_WANT_EXCL;
lkp               339 kern/kern_lock.c 		lkp->lk_flags |= LK_HAVE_EXCL;
lkp               340 kern/kern_lock.c 		SETHOLDER(lkp, pid, cpu_id);
lkp               342 kern/kern_lock.c 		lkp->lk_lock_file = file;
lkp               343 kern/kern_lock.c 		lkp->lk_lock_line = line;
lkp               345 kern/kern_lock.c 		HAVEIT(lkp);
lkp               346 kern/kern_lock.c 		if (lkp->lk_exclusivecount != 0)
lkp               348 kern/kern_lock.c 		lkp->lk_exclusivecount = 1;
lkp               352 kern/kern_lock.c 		if (lkp->lk_exclusivecount != 0) {
lkp               353 kern/kern_lock.c 			if (WEHOLDIT(lkp, pid, cpu_id) == 0) {
lkp               356 kern/kern_lock.c 				    pid, lkp->lk_lockholder);
lkp               358 kern/kern_lock.c 			lkp->lk_exclusivecount--;
lkp               359 kern/kern_lock.c 			if (lkp->lk_exclusivecount == 0) {
lkp               360 kern/kern_lock.c 				lkp->lk_flags &= ~LK_HAVE_EXCL;
lkp               361 kern/kern_lock.c 				SETHOLDER(lkp, LK_NOPROC, LK_NOCPU);
lkp               363 kern/kern_lock.c 				lkp->lk_unlock_file = file;
lkp               364 kern/kern_lock.c 				lkp->lk_unlock_line = line;
lkp               366 kern/kern_lock.c 				DONTHAVEIT(lkp);
lkp               368 kern/kern_lock.c 		} else if (lkp->lk_sharecount != 0) {
lkp               369 kern/kern_lock.c 			lkp->lk_sharecount--;
lkp               375 kern/kern_lock.c 		WAKEUP_WAITER(lkp);
lkp               385 kern/kern_lock.c 		if (WEHOLDIT(lkp, pid, cpu_id))
lkp               390 kern/kern_lock.c 		if ((extflags & LK_NOWAIT) && ((lkp->lk_flags &
lkp               392 kern/kern_lock.c 		     lkp->lk_sharecount != 0 || lkp->lk_waitcount != 0)) {
lkp               396 kern/kern_lock.c 		ACQUIRE(lkp, error, extflags, 1,
lkp               397 kern/kern_lock.c 		    ((lkp->lk_flags &
lkp               399 kern/kern_lock.c 		     lkp->lk_sharecount != 0 ||
lkp               400 kern/kern_lock.c 		     lkp->lk_waitcount != 0));
lkp               403 kern/kern_lock.c 		lkp->lk_flags |= LK_DRAINING | LK_HAVE_EXCL;
lkp               404 kern/kern_lock.c 		SETHOLDER(lkp, pid, cpu_id);
lkp               406 kern/kern_lock.c 		lkp->lk_lock_file = file;
lkp               407 kern/kern_lock.c 		lkp->lk_lock_line = line;
lkp               409 kern/kern_lock.c 		HAVEIT(lkp);
lkp               410 kern/kern_lock.c 		lkp->lk_exclusivecount = 1;
lkp               418 kern/kern_lock.c 	if ((lkp->lk_flags & LK_WAITDRAIN) != 0 &&
lkp               419 kern/kern_lock.c 	    ((lkp->lk_flags &
lkp               421 kern/kern_lock.c 	    lkp->lk_sharecount == 0 && lkp->lk_waitcount == 0)) {
lkp               422 kern/kern_lock.c 		lkp->lk_flags &= ~LK_WAITDRAIN;
lkp               423 kern/kern_lock.c 		wakeup((void *)&lkp->lk_flags);
lkp               434 kern/kern_lock.c lockmgr_printinfo(__volatile struct lock *lkp)
lkp               437 kern/kern_lock.c 	if (lkp->lk_sharecount)
lkp               438 kern/kern_lock.c 		printf(" lock type %s: SHARED (count %d)", lkp->lk_wmesg,
lkp               439 kern/kern_lock.c 		    lkp->lk_sharecount);
lkp               440 kern/kern_lock.c 	else if (lkp->lk_flags & LK_HAVE_EXCL) {
lkp               442 kern/kern_lock.c 		    lkp->lk_wmesg, lkp->lk_exclusivecount);
lkp               443 kern/kern_lock.c 		printf("pid %d", lkp->lk_lockholder);
lkp               446 kern/kern_lock.c 	if (lkp->lk_waitcount > 0)
lkp               447 kern/kern_lock.c 		printf(" with %d pending", lkp->lk_waitcount);
lkp               504 kern/kern_lock.c simple_lock_init(struct simplelock *lkp)
lkp               520 kern/kern_lock.c _simple_lock(__volatile struct simplelock *lkp, const char *id, int l)
lkp               598 kern/kern_lock.c _simple_lock_try(__volatile struct simplelock *lkp, const char *id, int l)
lkp               647 kern/kern_lock.c _simple_unlock(__volatile struct simplelock *lkp, const char *id, int l)
lkp                59 kern/subr_pool.c #define simple_lock_only_held(lkp, str) do { /* nothing */ } while (0)
lkp                43 sys/simplelock.h #define	simple_lock(lkp)
lkp                44 sys/simplelock.h #define	simple_lock_try(lkp)	(1)	/* always succeeds */
lkp                45 sys/simplelock.h #define	simple_unlock(lkp)
lkp                46 sys/simplelock.h #define simple_lock_assert(lkp)
lkp                48 sys/simplelock.h static __inline void simple_lock_init(struct simplelock *lkp)
lkp                51 sys/simplelock.h 	lkp->lock_data = SLOCK_UNLOCKED;
lkp                62 sys/simplelock.h #define simple_unlock(lkp) _simple_unlock(lkp, __FILE__, __LINE__)
lkp                63 sys/simplelock.h #define simple_lock_try(lkp) _simple_lock_try(lkp, __FILE__, __LINE__)
lkp                64 sys/simplelock.h #define simple_lock(lkp) _simple_lock(lkp, __FILE__, __LINE__)
lkp                65 sys/simplelock.h #define simple_lock_assert(lkp, state) _simple_lock_assert(lkp, state, __FILE__, __LINE__)
lkp                80 sys/simplelock.h static __inline void simple_lock_init(struct simplelock *lkp)
lkp                82 sys/simplelock.h 	__cpu_simple_lock_init(&lkp->lock_data);
lkp                85 sys/simplelock.h static __inline void simple_lock(__volatile struct simplelock *lkp)
lkp                87 sys/simplelock.h 	__cpu_simple_lock(&lkp->lock_data);
lkp                90 sys/simplelock.h static __inline int simple_lock_try(__volatile struct simplelock *lkp)
lkp                92 sys/simplelock.h 	return (__cpu_simple_lock_try(&lkp->lock_data));
lkp                95 sys/simplelock.h static __inline void simple_unlock(__volatile struct simplelock *lkp)
lkp                97 sys/simplelock.h 	__cpu_simple_unlock(&lkp->lock_data);