493,9 → 493,11 |
ELASTIC_level_des *lev = (ELASTIC_level_des *)(level_table[l]); |
ELASTIC_task_descr *et = &lev->elist[p]; |
|
level_table[ lev->scheduling_level ]-> |
private_extract(lev->scheduling_level,p); |
et->flags &= ~ELASTIC_JOB_PRESENT; |
if (et->flags & ELASTIC_JOB_PRESENT) { |
level_table[ lev->scheduling_level ]-> |
private_extract(lev->scheduling_level,p); |
et->flags &= ~ELASTIC_JOB_PRESENT; |
} |
|
} |
|
619,6 → 621,40 |
} |
|
|
int ELASTIC_set_Tmin(PID p, TIME Tmin) |
{ |
SYS_FLAGS f; |
ELASTIC_level_des *lev = (ELASTIC_level_des *)level_table[proc_table[p].task_level]; |
ELASTIC_task_descr *et = &lev->elist[p]; |
TIME saveTmin; |
|
f = kern_fsave(); |
|
if (et->flags & ELASTIC_PRESENT) { |
|
saveTmin = et->Tmin; |
|
et->Tmin = Tmin; |
if (ELASTIC_compress(lev) == -1) { |
#ifdef ELASTIC_DEBUG |
cprintf("ELASTIC_set_Tmin failed: could not compress\n"); |
#endif |
et->Tmin = saveTmin; |
kern_frestore(f); |
return -1; |
} |
|
kern_frestore(f); |
return 0; |
|
} else { |
|
kern_frestore(f); |
return -1; |
} |
} |
|
|
int ELASTIC_get_Tmin(PID p) { |
|
SYS_FLAGS f; |