Subversion Repositories shark

Compare Revisions

Regard whitespace Rev 346 → Rev 348

/shark/trunk/ports/first/modules/edfstar.c
84,7 → 84,9
 
/* flags */
#define EDFSTAR_FLAG_NORAISEEXC 2
#define EDFSTAR_FLAG_SPORADIC 1
 
 
/* the level redefinition for the Earliest Deadline First level */
typedef struct {
level_des l; /* the standard level descriptor */
249,7 → 251,7
if (m->pclass != HARD_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
h = (HARD_TASK_MODEL *)m;
if (!h->wcet || !h->mit || h->periodicity != PERIODIC) return -1;
if (!h->wcet || !h->mit /* || h->periodicity != PERIODIC */) return -1;
/* now we know that m is a valid model */
 
 
260,6 → 262,10
lev->period[p] = h->mit;
 
lev->flag[p] = 0;
 
if (h->periodicity == APERIODIC)
lev->flag[p] |= EDFSTAR_FLAG_SPORADIC;
 
lev->deadline_timer[p] = -1;
lev->dline_miss[p] = 0;
lev->wcet_miss[p] = 0;
378,7 → 384,12
/* save activation (only if needed... */
if (proc_table[p].status != SLEEP) {
/* a periodic task cannot be activated when it is already active */
/* but aperiodic task can be reactivate before */
if (lev->flag[p] & EDFSTAR_FLAG_SPORADIC)
lev->nact[p]++;
else
kern_raise(XACTIVATION,p);
return;
}
 
517,6 → 528,7
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
lev->activated=NIL;
if (lev->deadline_timer[p] != -1) {
kern_event_delete(lev->deadline_timer[p]);
/shark/trunk/ports/first/modules/posixstar.c
441,6 → 441,8
#endif
 
lev->nact[p] = -1;
/* extract task from the queue */
iq_extract(p,&lev->ready[lev->priority[p]]);
 
/* then, we insert the task in the free queue */
proc_table[p].status = FREE;