131085bb4Srsc // Mutual exclusion lock. 266432474Srtm struct spinlock { 331085bb4Srsc uint locked; // Is the lock held? 431085bb4Srsc 531085bb4Srsc // For debugging: 631085bb4Srsc char *name; // Name of lock. 731085bb4Srsc int cpu; // The number of the cpu holding the lock. 831085bb4Srsc uint pcs[10]; // The call stack (an array of program counters) 931085bb4Srsc // that locked the lock. 1066432474Srtm }; 11*c2f354e4Srsc 12*c2f354e4Srsc 13*c2f354e4Srsc 14*c2f354e4Srsc 15*c2f354e4Srsc 16*c2f354e4Srsc 17*c2f354e4Srsc 18*c2f354e4Srsc 19*c2f354e4Srsc 20*c2f354e4Srsc 21*c2f354e4Srsc 22*c2f354e4Srsc 23*c2f354e4Srsc 24*c2f354e4Srsc 25*c2f354e4Srsc 26*c2f354e4Srsc 27*c2f354e4Srsc 28*c2f354e4Srsc 29*c2f354e4Srsc 30*c2f354e4Srsc 31*c2f354e4Srsc 32*c2f354e4Srsc 33*c2f354e4Srsc 34*c2f354e4Srsc 35*c2f354e4Srsc 36*c2f354e4Srsc 37*c2f354e4Srsc 38*c2f354e4Srsc 39*c2f354e4Srsc 40*c2f354e4Srsc 41*c2f354e4Srsc 42*c2f354e4Srsc 43*c2f354e4Srsc 44*c2f354e4Srsc 45*c2f354e4Srsc 46*c2f354e4Srsc 47*c2f354e4Srsc 48*c2f354e4Srsc 49*c2f354e4Srsc 50*c2f354e4Srsc 51*c2f354e4Srsc 52*c2f354e4Srsc 53*c2f354e4Srsc 54*c2f354e4Srsc // Blank page. 55