{
psched_time_t now;
struct gred_sched_data *q=NULL;
- struct gred_sched *t= (struct gred_sched *)sch->data;
+ struct gred_sched *t= qdisc_priv(sch);
unsigned long qave=0;
int i=0;
if (!PSCHED_IS_PASTPERFECT(q->qidlestart)) {
long us_idle;
PSCHED_GET_TIME(now);
- us_idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max, 0);
+ us_idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max);
PSCHED_SET_PASTPERFECT(q->qidlestart);
q->qave >>= q->Stab[(us_idle>>q->Scell_log)&0xFF];
gred_requeue(struct sk_buff *skb, struct Qdisc* sch)
{
struct gred_sched_data *q;
- struct gred_sched *t= (struct gred_sched *)sch->data;
+ struct gred_sched *t= qdisc_priv(sch);
q= t->tab[(skb->tc_index&0xf)];
/* error checking here -- probably unnecessary */
PSCHED_SET_PASTPERFECT(q->qidlestart);
{
struct sk_buff *skb;
struct gred_sched_data *q;
- struct gred_sched *t= (struct gred_sched *)sch->data;
+ struct gred_sched *t= qdisc_priv(sch);
skb = __skb_dequeue(&sch->q);
if (skb) {
struct sk_buff *skb;
struct gred_sched_data *q;
- struct gred_sched *t= (struct gred_sched *)sch->data;
+ struct gred_sched *t= qdisc_priv(sch);
skb = __skb_dequeue_tail(&sch->q);
if (skb) {
{
int i;
struct gred_sched_data *q;
- struct gred_sched *t= (struct gred_sched *)sch->data;
+ struct gred_sched *t= qdisc_priv(sch);
__skb_queue_purge(&sch->q);
static int gred_change(struct Qdisc *sch, struct rtattr *opt)
{
- struct gred_sched *table = (struct gred_sched *)sch->data;
+ struct gred_sched *table = qdisc_priv(sch);
struct gred_sched_data *q;
struct tc_gred_qopt *ctl;
struct tc_gred_sopt *sopt;
static int gred_init(struct Qdisc *sch, struct rtattr *opt)
{
- struct gred_sched *table = (struct gred_sched *)sch->data;
+ struct gred_sched *table = qdisc_priv(sch);
struct tc_gred_sopt *sopt;
struct rtattr *tb[TCA_GRED_STAB];
struct rtattr *tb2[TCA_GRED_DPS];
struct rtattr *rta;
struct tc_gred_qopt *opt = NULL ;
struct tc_gred_qopt *dst;
- struct gred_sched *table = (struct gred_sched *)sch->data;
+ struct gred_sched *table = qdisc_priv(sch);
struct gred_sched_data *q;
int i;
unsigned char *b = skb->tail;
long idle;
psched_time_t now;
PSCHED_GET_TIME(now);
- idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max, 0);
+ idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max);
qave = q->qave >> q->Stab[(idle>>q->Scell_log)&0xFF];
dst->qave = qave >> q->Wlog;
static void gred_destroy(struct Qdisc *sch)
{
- struct gred_sched *table = (struct gred_sched *)sch->data;
+ struct gred_sched *table = qdisc_priv(sch);
int i;
for (i = 0;i < table->DPs; i++) {