358,10 → 358,9 |
private_epilogue(lev->scheduling_level,p); |
} |
|
static void HCBS_public_activate(LEVEL l, PID p) |
static void HCBS_public_activate(LEVEL l, PID p, struct timespec *t) |
{ |
HCBS_level_des *lev = (HCBS_level_des *)(level_table[l]); |
struct timespec t; |
|
if (lev->flag[p] & HCBS_SLEEP) { |
lev->flag[p] &= ~HCBS_SLEEP; |
375,10 → 374,8 |
return; |
} |
|
kern_gettime(&t); |
HCBS_activation(lev, p, t); |
|
HCBS_activation(lev, p, &t); |
|
/* Set the reactivation timer */ |
if (!(lev->flag[p] & HCBS_APERIODIC)) |
{ |
386,7 → 383,7 |
the deadline may be != from actual_time + period |
(if we call the task_activate after a task_sleep, and the |
deadline was postponed a lot...) */ |
TIMESPEC_ASSIGN(&lev->reactivation_time[p], &t); |
TIMESPEC_ASSIGN(&lev->reactivation_time[p], t); |
ADDUSEC2TIMESPEC(lev->period[p], &lev->reactivation_time[p]); |
// TIMESPEC_ASSIGN(&lev->reactivation_time[p], &lev->cbs_dline[p]); |
lev->reactivation_timer[p] = kern_event_post(&lev->reactivation_time[p], |