lk 352 proc.c sleep(void *chan, struct spinlock *lk) lk 357 proc.c if(lk == 0) lk 366 proc.c if(lk != &ptable.lock){ //DOC: sleeplock0 lk 368 proc.c release(lk); lk 380 proc.c if(lk != &ptable.lock){ //DOC: sleeplock2 lk 382 proc.c acquire(lk); lk 13 spinlock.c initlock(struct spinlock *lk, char *name) lk 15 spinlock.c lk->name = name; lk 16 spinlock.c lk->locked = 0; lk 17 spinlock.c lk->cpu = 0; lk 25 spinlock.c acquire(struct spinlock *lk) lk 28 spinlock.c if(holding(lk)) lk 34 spinlock.c while(xchg(&lk->locked, 1) != 0) lk 38 spinlock.c lk->cpu = cpu; lk 39 spinlock.c getcallerpcs(&lk, lk->pcs); lk 44 spinlock.c release(struct spinlock *lk) lk 46 spinlock.c if(!holding(lk)) lk 49 spinlock.c lk->pcs[0] = 0; lk 50 spinlock.c lk->cpu = 0; lk 61 spinlock.c xchg(&lk->locked, 0);