Lines Matching refs:iter
2010 static struct key_vector *fib_trie_get_next(struct fib_trie_iter *iter) in fib_trie_get_next() argument
2012 unsigned long cindex = iter->index; in fib_trie_get_next()
2013 struct key_vector *pn = iter->tnode; in fib_trie_get_next()
2017 iter->tnode, iter->index, iter->depth); in fib_trie_get_next()
2027 iter->tnode = pn; in fib_trie_get_next()
2028 iter->index = cindex; in fib_trie_get_next()
2031 iter->tnode = n; in fib_trie_get_next()
2032 iter->index = 0; in fib_trie_get_next()
2033 ++iter->depth; in fib_trie_get_next()
2043 --iter->depth; in fib_trie_get_next()
2047 iter->tnode = pn; in fib_trie_get_next()
2048 iter->index = 0; in fib_trie_get_next()
2053 static struct key_vector *fib_trie_get_first(struct fib_trie_iter *iter, in fib_trie_get_first() argument
2066 iter->tnode = n; in fib_trie_get_first()
2067 iter->index = 0; in fib_trie_get_first()
2068 iter->depth = 1; in fib_trie_get_first()
2070 iter->tnode = pn; in fib_trie_get_first()
2071 iter->index = 0; in fib_trie_get_first()
2072 iter->depth = 0; in fib_trie_get_first()
2081 struct fib_trie_iter iter; in trie_collect_stats() local
2086 for (n = fib_trie_get_first(&iter, t); n; n = fib_trie_get_next(&iter)) { in trie_collect_stats()
2091 s->totdepth += iter.depth; in trie_collect_stats()
2092 if (iter.depth > s->maxdepth) in trie_collect_stats()
2093 s->maxdepth = iter.depth; in trie_collect_stats()
2240 struct fib_trie_iter *iter = seq->private; in fib_trie_get_idx() local
2252 for (n = fib_trie_get_first(iter, in fib_trie_get_idx()
2254 n; n = fib_trie_get_next(iter)) in fib_trie_get_idx()
2256 iter->tb = tb; in fib_trie_get_idx()
2274 struct fib_trie_iter *iter = seq->private; in fib_trie_seq_next() local
2276 struct fib_table *tb = iter->tb; in fib_trie_seq_next()
2283 n = fib_trie_get_next(iter); in fib_trie_seq_next()
2291 n = fib_trie_get_first(iter, (struct trie *) tb->tb_data); in fib_trie_seq_next()
2300 n = fib_trie_get_first(iter, (struct trie *) tb->tb_data); in fib_trie_seq_next()
2308 iter->tb = tb; in fib_trie_seq_next()
2364 const struct fib_trie_iter *iter = seq->private; in fib_trie_seq_show() local
2368 fib_table_print(seq, iter->tb); in fib_trie_seq_show()
2373 seq_indent(seq, iter->depth-1); in fib_trie_seq_show()
2382 seq_indent(seq, iter->depth); in fib_trie_seq_show()
2388 seq_indent(seq, iter->depth + 1); in fib_trie_seq_show()
2433 static struct key_vector *fib_route_get_idx(struct fib_route_iter *iter, in fib_route_get_idx() argument
2436 struct fib_table *tb = iter->main_tb; in fib_route_get_idx()
2437 struct key_vector *l, **tp = &iter->tnode; in fib_route_get_idx()
2442 if (iter->pos > 0 && pos >= iter->pos) { in fib_route_get_idx()
2443 pos -= iter->pos; in fib_route_get_idx()
2444 key = iter->key; in fib_route_get_idx()
2447 iter->tnode = t->kv; in fib_route_get_idx()
2448 iter->pos = 0; in fib_route_get_idx()
2454 iter->pos++; in fib_route_get_idx()
2467 iter->key = key; /* remember it */ in fib_route_get_idx()
2469 iter->pos = 0; /* forget it */ in fib_route_get_idx()
2477 struct fib_route_iter *iter = seq->private; in fib_route_seq_start() local
2487 iter->main_tb = tb; in fib_route_seq_start()
2490 return fib_route_get_idx(iter, *pos); in fib_route_seq_start()
2493 iter->tnode = t->kv; in fib_route_seq_start()
2494 iter->pos = 0; in fib_route_seq_start()
2495 iter->key = 0; in fib_route_seq_start()
2502 struct fib_route_iter *iter = seq->private; in fib_route_seq_next() local
2504 t_key key = iter->key; in fib_route_seq_next()
2510 l = leaf_walk_rcu(&iter->tnode, key); in fib_route_seq_next()
2513 iter->key = l->key + 1; in fib_route_seq_next()
2514 iter->pos++; in fib_route_seq_next()
2516 iter->pos = 0; in fib_route_seq_next()
2550 struct fib_route_iter *iter = seq->private; in fib_route_seq_show() local
2551 struct fib_table *tb = iter->main_tb; in fib_route_seq_show()