1 #include "u.h" 2 #include "../port/lib.h" 3 #include "mem.h" 4 #include "dat.h" 5 #include "fns.h" 6 7 Talarm talarm; 8 9 /* 10 * called every clock tick 11 */ 12 void 13 checkalarms(void) 14 { 15 Proc *p; 16 ulong now; 17 18 now = MACHP(0)->ticks; 19 20 if(talarm.list == 0 || canlock(&talarm) == 0) 21 return; 22 23 for(;;) { 24 p = talarm.list; 25 if(p == 0) 26 break; 27 28 if(p->twhen == 0) { 29 talarm.list = p->tlink; 30 p->trend = 0; 31 continue; 32 } 33 if(now < p->twhen) 34 break; 35 wakeup(p->trend); 36 talarm.list = p->tlink; 37 p->trend = 0; 38 } 39 40 unlock(&talarm); 41 } 42