示例#1
0
void  schedNewEvent(struct dummyq_struct * pQ, EBLK  * peblk, U  delay)
{
    U  abs_t;
    U  thigh_abs;
    U  hash_index;
    struct futq * pfutq;
    abs_t = ((U )vcs_clocks) + delay;
    hash_index = abs_t & 0xfff;
    peblk->peblkFlink = (EBLK  *)(-1);
    peblk->t = abs_t;
    if (abs_t < (U )vcs_clocks) {
        thigh_abs = ((U  *)&vcs_clocks)[1];
        sched_millenium(pQ, peblk, thigh_abs + 1, abs_t);
    }
    else if ((pfutq = pQ->hashtab[hash_index].tfutq)) {
        peblk->peblkPrv = pfutq->peblkTail;
        pfutq->peblkTail->peblkFlink = peblk;
        pfutq->peblkTail = peblk;
    }
    else {
        sched_hsopt(pQ, peblk, abs_t);
    }
}
示例#2
0
void  hsF_0(struct dummyq_struct * I748, EBLK  * I749, U  I556)
{
    U  I940;
    U  I941;
    U  I942;
    struct futq * I943;
    I940 = ((U )vcs_clocks) + I556;
    I942 = I940 & 0xfff;
    I749->I491 = (EBLK  *)(-1);
    I749->I501 = I940;
    if (I940 < (U )vcs_clocks) {
        I941 = ((U  *)&vcs_clocks)[1];
        sched_millenium(I748, I749, I941 + 1, I940);
    }
    else if ((I943 = I748->I722[I942].I510)) {
        I749->I502 = (struct eblk *)I943->I509;
        I943->I509->I491 = (RP )I749;
        I943->I509 = (RmaEblk  *)I749;
    }
    else {
        sched_hsopt(I748, I749, I940);
    }
}