Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 836 → Rev 837

/shark/trunk/kernel/modules/edf.c
20,11 → 20,11
 
/**
------------
CVS : $Id: edf.c,v 1.16 2004-06-21 11:22:05 anton Exp $
CVS : $Id: edf.c,v 1.17 2004-09-09 13:13:21 giacomo Exp $
 
File: $File$
Revision: $Revision: 1.16 $
Last update: $Date: 2004-06-21 11:22:05 $
Revision: $Revision: 1.17 $
Last update: $Date: 2004-09-09 13:13:21 $
------------
 
This file contains the scheduling module EDF (Earliest Deadline First)
62,7 → 62,7
#include <kernel/func.h>
#include <tracer.h>
 
//#define EDF_DEBUG
#define EDF_DEBUG
#define edf_printf kern_printf
#ifdef EDF_DEBUG
char *pnow() {
167,6 → 167,8
EDF_level_des *lev = (EDF_level_des *)level_table[proc_table[p].task_level];
EDF_task_des *td = &lev->tvec[p];
 
td->dl_timer = -1;
 
TRACER_LOGEVENT(FTrace_EVT_task_deadline_miss,
(unsigned short int)proc_table[p].context,0);
 
191,6 → 193,11
static void EDF_timer_guest_deadline(void *par)
{
PID p = (PID) par;
EDF_level_des *lev = (EDF_level_des *)level_table[proc_table[p].task_level];
EDF_task_des *td = &lev->tvec[p];
 
td->dl_timer = -1;
 
TRACER_LOGEVENT(FTrace_EVT_task_deadline_miss,
(unsigned short int)proc_table[p].context,0);
kern_raise(XDEADLINE_MISS,p);
209,6 → 216,10
if (lev->flags & EDF_ENABLE_DL_CHECK) {
temp = td->release;
ADDUSEC2TIMESPEC(td->rdeadline, &temp);
if (td->dl_timer != -1) {
kern_event_delete(td->dl_timer);
td->dl_timer = -1;
}
td->dl_timer = kern_event_post(&temp,EDF_timer_deadline,(void *)p);
}
 
572,7 → 583,10
iq_timespec_insert(p,&lev->ready);
proc_table[p].status = EDF_READY;
td->dl_timer = -1;
if (td->dl_timer != -1) {
kern_event_delete(td->dl_timer);
td->dl_timer = -1;
}
 
td->period = job->period;