Lines Matching refs:iter

2029 static struct key_vector *fib_trie_get_next(struct fib_trie_iter *iter)  in fib_trie_get_next()  argument
2031 unsigned long cindex = iter->index; in fib_trie_get_next()
2032 struct key_vector *pn = iter->tnode; in fib_trie_get_next()
2036 iter->tnode, iter->index, iter->depth); in fib_trie_get_next()
2046 iter->tnode = pn; in fib_trie_get_next()
2047 iter->index = cindex; in fib_trie_get_next()
2050 iter->tnode = n; in fib_trie_get_next()
2051 iter->index = 0; in fib_trie_get_next()
2052 ++iter->depth; in fib_trie_get_next()
2062 --iter->depth; in fib_trie_get_next()
2066 iter->tnode = pn; in fib_trie_get_next()
2067 iter->index = 0; in fib_trie_get_next()
2072 static struct key_vector *fib_trie_get_first(struct fib_trie_iter *iter, in fib_trie_get_first() argument
2086 iter->tnode = n; in fib_trie_get_first()
2087 iter->index = 0; in fib_trie_get_first()
2088 iter->depth = 1; in fib_trie_get_first()
2090 iter->tnode = pn; in fib_trie_get_first()
2091 iter->index = 0; in fib_trie_get_first()
2092 iter->depth = 0; in fib_trie_get_first()
2101 struct fib_trie_iter iter; in trie_collect_stats() local
2106 for (n = fib_trie_get_first(&iter, t); n; n = fib_trie_get_next(&iter)) { in trie_collect_stats()
2111 s->totdepth += iter.depth; in trie_collect_stats()
2112 if (iter.depth > s->maxdepth) in trie_collect_stats()
2113 s->maxdepth = iter.depth; in trie_collect_stats()
2260 struct fib_trie_iter *iter = seq->private; in fib_trie_get_idx() local
2272 for (n = fib_trie_get_first(iter, in fib_trie_get_idx()
2274 n; n = fib_trie_get_next(iter)) in fib_trie_get_idx()
2276 iter->tb = tb; in fib_trie_get_idx()
2294 struct fib_trie_iter *iter = seq->private; in fib_trie_seq_next() local
2296 struct fib_table *tb = iter->tb; in fib_trie_seq_next()
2303 n = fib_trie_get_next(iter); in fib_trie_seq_next()
2311 n = fib_trie_get_first(iter, (struct trie *) tb->tb_data); in fib_trie_seq_next()
2320 n = fib_trie_get_first(iter, (struct trie *) tb->tb_data); in fib_trie_seq_next()
2328 iter->tb = tb; in fib_trie_seq_next()
2384 const struct fib_trie_iter *iter = seq->private; in fib_trie_seq_show() local
2388 fib_table_print(seq, iter->tb); in fib_trie_seq_show()
2393 seq_indent(seq, iter->depth-1); in fib_trie_seq_show()
2402 seq_indent(seq, iter->depth); in fib_trie_seq_show()
2408 seq_indent(seq, iter->depth + 1); in fib_trie_seq_show()
2453 static struct key_vector *fib_route_get_idx(struct fib_route_iter *iter, in fib_route_get_idx() argument
2456 struct fib_table *tb = iter->main_tb; in fib_route_get_idx()
2457 struct key_vector *l, **tp = &iter->tnode; in fib_route_get_idx()
2462 if (iter->pos > 0 && pos >= iter->pos) { in fib_route_get_idx()
2463 pos -= iter->pos; in fib_route_get_idx()
2464 key = iter->key; in fib_route_get_idx()
2467 iter->tnode = t->kv; in fib_route_get_idx()
2468 iter->pos = 0; in fib_route_get_idx()
2474 iter->pos++; in fib_route_get_idx()
2487 iter->key = key; /* remember it */ in fib_route_get_idx()
2489 iter->pos = 0; /* forget it */ in fib_route_get_idx()
2497 struct fib_route_iter *iter = seq->private; in fib_route_seq_start() local
2507 iter->main_tb = tb; in fib_route_seq_start()
2510 return fib_route_get_idx(iter, *pos); in fib_route_seq_start()
2513 iter->tnode = t->kv; in fib_route_seq_start()
2514 iter->pos = 0; in fib_route_seq_start()
2515 iter->key = 0; in fib_route_seq_start()
2522 struct fib_route_iter *iter = seq->private; in fib_route_seq_next() local
2524 t_key key = iter->key; in fib_route_seq_next()
2530 l = leaf_walk_rcu(&iter->tnode, key); in fib_route_seq_next()
2533 iter->key = l->key + 1; in fib_route_seq_next()
2534 iter->pos++; in fib_route_seq_next()
2536 iter->pos = 0; in fib_route_seq_next()
2570 struct fib_route_iter *iter = seq->private; in fib_route_seq_show() local
2571 struct fib_table *tb = iter->main_tb; in fib_route_seq_show()