lk                 13 kernel/sleeplock.c initsleeplock(struct sleeplock *lk, char *name)
lk                 15 kernel/sleeplock.c   initlock(&lk->lk, "sleep lock");
lk                 16 kernel/sleeplock.c   lk->name = name;
lk                 17 kernel/sleeplock.c   lk->locked = 0;
lk                 18 kernel/sleeplock.c   lk->pid = 0;
lk                 22 kernel/sleeplock.c acquiresleep(struct sleeplock *lk)
lk                 24 kernel/sleeplock.c   acquire(&lk->lk);
lk                 25 kernel/sleeplock.c   while (lk->locked) {
lk                 26 kernel/sleeplock.c     sleep_prepare(lk);
lk                 27 kernel/sleeplock.c     release(&lk->lk);
lk                 29 kernel/sleeplock.c     acquire(&lk->lk);
lk                 31 kernel/sleeplock.c   lk->locked = 1;
lk                 32 kernel/sleeplock.c   lk->pid = myproc()->pid;
lk                 33 kernel/sleeplock.c   release(&lk->lk);
lk                 37 kernel/sleeplock.c releasesleep(struct sleeplock *lk)
lk                 39 kernel/sleeplock.c   acquire(&lk->lk);
lk                 40 kernel/sleeplock.c   lk->locked = 0;
lk                 41 kernel/sleeplock.c   lk->pid = 0;
lk                 42 kernel/sleeplock.c   wakeup(lk);
lk                 43 kernel/sleeplock.c   release(&lk->lk);
lk                 47 kernel/sleeplock.c holdingsleep(struct sleeplock *lk)
lk                 51 kernel/sleeplock.c   acquire(&lk->lk);
lk                 52 kernel/sleeplock.c   r = lk->locked && (lk->pid == myproc()->pid);
lk                 53 kernel/sleeplock.c   release(&lk->lk);
lk                  4 kernel/sleeplock.h   struct spinlock lk; // spinlock protecting this sleep lock
lk                 12 kernel/spinlock.c initlock(struct spinlock *lk, char *name)
lk                 14 kernel/spinlock.c   lk->name = name;
lk                 15 kernel/spinlock.c   lk->locked = 0;
lk                 16 kernel/spinlock.c   lk->cpu = 0;
lk                 22 kernel/spinlock.c acquire(struct spinlock *lk)
lk                 25 kernel/spinlock.c   if (holding(lk))
lk                 37 kernel/spinlock.c   while (__atomic_exchange_n(&lk->locked, 1, __ATOMIC_ACQUIRE) != 0)
lk                 41 kernel/spinlock.c   lk->cpu = mycpu();
lk                 46 kernel/spinlock.c release(struct spinlock *lk)
lk                 48 kernel/spinlock.c   if (!holding(lk))
lk                 51 kernel/spinlock.c   lk->cpu = 0;
lk                 73 kernel/spinlock.c   __atomic_store_n(&lk->locked, 0, __ATOMIC_RELEASE);
lk                 81 kernel/spinlock.c holding(struct spinlock *lk)
lk                 84 kernel/spinlock.c   r = (lk->locked && lk->cpu == mycpu());