| plan 9 kernel history: overview | file list | diff list |
2002/1001/port/edf.c (diff list | history)
| 2002/0927/sys/src/9/port/edf.c:64,75 – 2002/1001/sys/src/9/port/edf.c:64,76 (short | long | prev | next) | ||
| 2002/0927 | ||
| 2002/0316 | void (*devrt)(Task*, Ticks, int); | |
| 2002/0315 | ||
| 2002/0410 |
| |
| 2002/1001 | static void edfresched(Task*); | |
| 2002/0320 | static void setdelta(void); | |
| 2002/0405 |
| |
| 2002/1001 | static void testdelta(Task*); static void edfreleaseintr(Ureg*, Timer*); | |
| 2002/0405 | static void edfdeadlineintr(Ureg*, Timer*); | |
| 2002/0410 |
| |
| 2002/1001 | static char * edftestschedulability(Task*); static void resrelease(Task*); | |
| 2002/0315 | ||
| 2002/0704 | static void | |
| 2002/0410 | edfinit(void) | |
| 2002/0927/sys/src/9/port/edf.c:449,455 – 2002/1001/sys/src/9/port/edf.c:450,456 | ||
| 2002/0327 | } static void | |
| 2002/0405 |
| |
| 2002/1001 | edfdeadlineintr(Ureg*, Timer *timer) | |
| 2002/0327 | { | |
| 2002/0328 | /* Task reached deadline */ | |
| 2002/0927/sys/src/9/port/edf.c:462,469 – 2002/1001/sys/src/9/port/edf.c:463,470 | ||
| 2002/0315 | ||
| 2002/0327 | DPRINT("%d edfdeadlineintr\n", m->machno); | |
| 2002/0410 |
| |
| 2002/1001 | if (timer) timer->when = 0; | |
| 2002/0328 | ||
| 2002/0927 | if(panicking || active.exiting) | |
| 2002/0327 | return; | |
| 2002/0927/sys/src/9/port/edf.c:486,491 – 2002/1001/sys/src/9/port/edf.c:487,493 | ||
| 2002/0927 | if (t->curcsn){ if (t->curcsn->S <= used){ t->curcsn->S = 0LL; | |
| 2002/1001 | resrelease(t); | |
| 2002/0927 | r = t->curcsn->i; noted++; snprint(buf, sizeof buf, "sys: deadline miss: resource %s", r->name); | |
| 2002/0927/sys/src/9/port/edf.c:1083,1088 – 2002/1001/sys/src/9/port/edf.c:1085,1091 | ||
| 2002/0927 | } t->Delta = c->Delta; t->curcsn = c; | |
| 2002/1001 | if(devrt) devrt(t, now, SResacq); | |
| 2002/0927 | /* priority is going up, no need to reschedule */ | |
| 2002/0315 | } | |
| 2002/0927/sys/src/9/port/edf.c:1113,1118 – 2002/1001/sys/src/9/port/edf.c:1116,1122 | ||
| 2002/0927 | }else t->Delta = Infinity; c->S = 0LL; /* don't allow reuse */ | |
| 2002/1001 | if(devrt) devrt(t, now, SResrel); | |
| 2002/0927 | if (deadlinetimer[m->machno].when) timerdel(&deadlinetimer[m->machno]); deadlinetimer[m->machno].when = when; | |