Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1009 → Rev 1010

/shark/trunk/ports/first/modules/cbsnhstar.c
120,8 → 120,8
 
} CBSNHSTAR_level_des;
 
extern bandwidth_t fsf_max_bw;
 
 
static void CBSNHSTAR_activation(CBSNHSTAR_level_des *lev,
PID p,
struct timespec *acttime)
169,7 → 169,7
ADDUSEC2TIMESPEC(b->D, &b->dline);
b->avail=b->Q;
b->flags=CBSNHSTAR_ACTIVE;
kern_printf("((1)ds sec %ld, us %ld)", b->dline.tv_sec, b->dline.tv_nsec/1000);
//kern_printf("((1)ds sec %ld, us %ld)", b->dline.tv_sec, b->dline.tv_nsec/1000);
}
 
203,9 → 203,9
 
b->avail -= tx;
 
// #ifdef CBSNHSTAR_DEBUG
#ifdef CBSNHSTAR_DEBUG
kern_printf("(CS:Cap p%d av=%d tx=%d)", p, b->avail,tx);
//#endif
#endif
/*
if (b->avail <= 0) {
235,13 → 235,15
b->N_D=0;
}
TIMESPEC_ASSIGN(&b->replenish, &schedule_time);
ADDUSEC2TIMESPEC(b->T, &b->replenish);
TIMESPEC_ASSIGN(&b->dline, &schedule_time);
//TIMESPEC_ASSIGN(&b->dline, &schedule_time);
ADDUSEC2TIMESPEC(b->D, &b->dline);
b->avail=b->Q;
b->flags=CBSNHSTAR_ACTIVE;
#ifdef CBSNHSTAR_DEBUG
kern_printf("((2)ds sec %ld, us %ld)", b->dline.tv_sec, b->dline.tv_nsec/1000);
#endif
}
}
312,7 → 314,9
TIMESPEC_ASSIGN(&b->dline, &b->replenish);
ADDUSEC2TIMESPEC(b->D, &b->dline);
ADDUSEC2TIMESPEC(b->T, &b->replenish);
#ifdef CBSNHSTAR_DEBUG
kern_printf("((3)ds sec %ld, us %ld)", b->dline.tv_sec, b->dline.tv_nsec/1000);
#endif
 
/* and the capacity */
b->avail = b->Q;
567,9 → 571,9
CBSNHSTAR_level_des *lev = (CBSNHSTAR_level_des *)(level_table[l]);
int r;
 
// #ifdef CBSNHSTAR_DEBUG
#ifdef CBSNHSTAR_DEBUG
kern_printf("(CS:SetBud)");
//#endif
#endif
 
for (r = 0; r < lev->n; r++)
if (lev->b[r].Q == 0) break;
671,9 → 675,21
lev->b[budget].negotiation=1;
}
} else {
/* Clamping */
bandwidth_t b;
mul32div32to32(MAX_BANDWIDTH,lev->b[budget].Q,lev->b[budget].T,b);
lev->U -= b;
mul32div32to32(MAX_BANDWIDTH, Q, T, b);
if (fsf_max_bw - lev->U < b) {
b=fsf_max_bw - lev->U;
mul32div32to32(b,T,MAX_BANDWIDTH,Q);
}
lev->b[budget].Q = Q;
lev->b[budget].T = T;
lev->b[budget].D = D;
mul32div32to32(MAX_BANDWIDTH,lev->b[budget].Q,lev->b[budget].T,b);
lev->U += b;
}
 
return 0;