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);