| plan 9 kernel history: overview | file list | diff list |
2002/0405/port/edf.c (diff list | history)
| 2002/0404/sys/src/9/port/edf.c:26,33 – 2002/0405/sys/src/9/port/edf.c:26,33 (short | long | prev | next) | ||
| 2002/0315 | [EdfDeadline] = "Deadline", }; | |
| 2002/0327 |
| |
| 2002/0405 | static Timer cycdeadline; /* Time of next deadline */ static Timer cycrelease; /* Time of next release */ | |
| 2002/0327 | ||
| 2002/0315 | static int initialized; static uvlong fasthz; | |
| 2002/0404/sys/src/9/port/edf.c:70,77 – 2002/0405/sys/src/9/port/edf.c:70,77 | ||
| 2002/0320 | static void setdelta(void); static void testdelta(Task *thetask); | |
| 2002/0315 | static char * edf_testschedulability(Task *thetask); | |
| 2002/0328 |
| |
| 2002/0405 | static void edfreleaseintr(Ureg *, Timer *cy); static void edfdeadlineintr(Ureg*, Timer*); | |
| 2002/0315 | void edf_init(void) | |
| 2002/0404/sys/src/9/port/edf.c:214,224 – 2002/0405/sys/src/9/port/edf.c:214,224 | ||
| 2002/0327 | return; | |
| 2002/0328 | DPRINT("edfreleasetimer clock\n"); if (cycrelease.when) | |
| 2002/0327 |
| |
| 2002/0405 | timerdel(&cycrelease); | |
| 2002/0327 | cycrelease.when = t->r; | |
| 2002/0328 | if (cycrelease.when <= now) | |
| 2002/0327 | cycrelease.when = now; | |
| 2002/0405 | timeradd(&cycrelease); | |
| 2002/0327 | clockintrsched(); } | |
| 2002/0404/sys/src/9/port/edf.c:271,277 – 2002/0405/sys/src/9/port/edf.c:271,277 | ||
| 2002/0315 | assert(0 && p == nil || nt == t); } | |
| 2002/0327 | if (cycdeadline.when){ | |
| 2002/0405 | timerdel(&cycdeadline); | |
| 2002/0327 | cycdeadline.when = 0; clockintrsched(); } | |
| 2002/0404/sys/src/9/port/edf.c:406,418 – 2002/0405/sys/src/9/port/edf.c:406,418 | ||
| 2002/0315 | } static void | |
| 2002/0328 |
| |
| 2002/0405 | edfreleaseintr(Ureg*, Timer*) | |
| 2002/0315 | { | |
| 2002/0327 | Task *t; | |
| 2002/0328 | DPRINT("%d edfreleaseintr\n", m->machno); | |
| 2002/0327 | ||
| 2002/0330 |
| |
| 2002/0405 | timerdel(&cycrelease); | |
| 2002/0328 | cycrelease.when = 0; | |
| 2002/0330 | clockintrsched(); | |
| 2002/0328 | ||
| 2002/0404/sys/src/9/port/edf.c:433,439 – 2002/0405/sys/src/9/port/edf.c:433,439 | ||
| 2002/0327 | } static void | |
| 2002/0328 |
| |
| 2002/0405 | edfdeadlineintr(Ureg*, Timer*) | |
| 2002/0327 | { | |
| 2002/0328 | /* Task reached deadline */ | |
| 2002/0404/sys/src/9/port/edf.c:442,448 – 2002/0405/sys/src/9/port/edf.c:442,448 | ||
| 2002/0315 | ||
| 2002/0327 | DPRINT("%d edfdeadlineintr\n", m->machno); | |
| 2002/0330 |
| |
| 2002/0405 | timerdel(&cycdeadline); | |
| 2002/0328 | cycdeadline.when = 0; | |
| 2002/0330 | clockintrsched(); | |
| 2002/0328 | ||
| 2002/0404/sys/src/9/port/edf.c:743,752 – 2002/0405/sys/src/9/port/edf.c:743,752 | ||
| 2002/0327 | iunlock(&edflock); return p; } | |
| 2002/0405 | timerdel(&cycdeadline); | |
| 2002/0327 | } cycdeadline.when = when; | |
| 2002/0405 | timeradd(&cycdeadline); | |
| 2002/0327 | clockintrsched(); | |
| 2002/0315 | iunlock(&edflock); return p; | |