• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/net/sched/

Lines Matching refs:ht

74 	struct tc_u_knode	*ht[1];
104 struct tc_u_hnode *ht = (struct tc_u_hnode*)tp->root;
116 n = ht->ht[sel];
188 ht = n->ht_down;
190 if (ht->divisor) {
197 sel = ht->divisor & u32_hash_fold(*data, &n->sel,
230 ht = n->ht_up;
246 struct tc_u_hnode *ht;
248 for (ht = tp_c->hlist; ht; ht = ht->next)
249 if (ht->handle == handle)
252 return ht;
256 u32_lookup_key(struct tc_u_hnode *ht, u32 handle)
262 if (sel > ht->divisor)
265 for (n = ht->ht[sel]; n; n = n->next)
275 struct tc_u_hnode *ht;
279 ht = tp->root;
281 ht = u32_lookup_ht(tp_c, TC_U32_HTID(handle));
283 if (!ht)
287 return (unsigned long)ht;
289 return (unsigned long)u32_lookup_key(ht, handle);
360 struct tc_u_hnode *ht = key->ht_up;
362 if (ht) {
363 for (kp = &ht->ht[TC_U32_HASH(key->handle)]; *kp; kp = &(*kp)->next) {
378 static void u32_clear_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht)
383 for (h=0; h<=ht->divisor; h++) {
384 while ((n = ht->ht[h]) != NULL) {
385 ht->ht[h] = n->next;
392 static int u32_destroy_hnode(struct tcf_proto *tp, struct tc_u_hnode *ht)
397 WARN_ON(ht->refcnt);
399 u32_clear_hnode(tp, ht);
402 if (*hn == ht) {
403 *hn = ht->next;
404 kfree(ht);
424 struct tc_u_hnode *ht;
428 for (ht = tp_c->hlist; ht; ht = ht->next) {
429 ht->refcnt--;
430 u32_clear_hnode(tp, ht);
433 while ((ht = tp_c->hlist) != NULL) {
434 tp_c->hlist = ht->next;
436 WARN_ON(ht->refcnt != 0);
438 kfree(ht);
449 struct tc_u_hnode *ht = (struct tc_u_hnode*)arg;
451 if (ht == NULL)
454 if (TC_U32_KEY(ht->handle))
455 return u32_delete_key(tp, (struct tc_u_knode*)ht);
457 if (tp->root == ht)
460 if (ht->refcnt == 1) {
461 ht->refcnt--;
462 u32_destroy_hnode(tp, ht);
470 static u32 gen_new_kid(struct tc_u_hnode *ht, u32 handle)
475 for (n=ht->ht[TC_U32_HASH(handle)]; n; n = n->next)
494 struct tc_u_hnode *ht,
514 ht_down = u32_lookup_ht(ht->tp_c, handle);
554 struct tc_u_hnode *ht;
588 ht = kzalloc(sizeof(*ht) + divisor*sizeof(void*), GFP_KERNEL);
589 if (ht == NULL)
591 ht->tp_c = tp_c;
592 ht->refcnt = 1;
593 ht->divisor = divisor;
594 ht->handle = handle;
595 ht->prio = tp->prio;
596 ht->next = tp_c->hlist;
597 tp_c->hlist = ht;
598 *arg = (unsigned long)ht;
605 ht = tp->root;
606 htid = ht->handle;
608 ht = u32_lookup_ht(tp->data, TC_U32_HTID(htid));
609 if (ht == NULL)
613 ht = tp->root;
614 htid = ht->handle;
617 if (ht->divisor < TC_U32_HASH(htid))
625 handle = gen_new_kid(ht, htid);
645 n->ht_up = ht;
659 err = u32_set_parms(tp, base, ht, n, tb, tca[TCA_RATE]);
662 for (ins = &ht->ht[TC_U32_HASH(handle)]; *ins; ins = &(*ins)->next)
684 struct tc_u_hnode *ht;
691 for (ht = tp_c->hlist; ht; ht = ht->next) {
692 if (ht->prio != tp->prio)
695 if (arg->fn(tp, (unsigned long)ht, arg) < 0) {
701 for (h = 0; h <= ht->divisor; h++) {
702 for (n = ht->ht[h]; n; n = n->next) {
733 struct tc_u_hnode *ht = (struct tc_u_hnode*)fh;
734 u32 divisor = ht->divisor+1;