Lines Matching refs:tnode

105 		struct key_vector __rcu *tnode[0];  member
109 struct tnode { struct
118 #define TNODE_SIZE(n) offsetof(struct tnode, kv[0].tnode[n]) argument
162 static inline struct tnode *tn_info(struct key_vector *kv) in tn_info()
164 return container_of(kv, struct tnode, kv[0]); in tn_info()
169 #define get_child(tn, i) rtnl_dereference((tn)->tnode[i])
173 #define get_child_rcu(tn, i) rcu_dereference_rtnl((tn)->tnode[i])
286 struct tnode *n = container_of(head, struct tnode, rcu); in __node_free_rcu()
298 static struct tnode *tnode_alloc(int bits) in tnode_alloc()
327 struct tnode *kv = kmem_cache_alloc(trie_leaf_kmem, GFP_KERNEL); in leaf_new()
348 struct tnode *tnode = tnode_alloc(bits); in tnode_new() local
350 struct key_vector *tn = tnode->kv; in tnode_new()
355 pr_debug("AT %p s=%zu %zu\n", tnode, TNODE_SIZE(0), in tnode_new()
358 if (!tnode) in tnode_new()
362 tnode->full_children = 1; in tnode_new()
364 tnode->empty_children = 1ul << bits; in tnode_new()
411 rcu_assign_pointer(tn->tnode[i], n); in put_child()
440 rcu_assign_pointer(tp->tnode[0], n); in put_child_root()
466 tn = container_of(head, struct tnode, rcu)->kv; in tnode_free()
1325 struct key_vector __rcu **cptr = n->tnode; in fib_table_lookup()
1375 cptr = &pn->tnode[cindex]; in fib_table_lookup()
2005 struct key_vector *tnode; member
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()
2031 iter->tnode = n; in fib_trie_get_next()
2047 iter->tnode = pn; in fib_trie_get_next()
2061 n = rcu_dereference(pn->tnode[0]); in fib_trie_get_first()
2066 iter->tnode = n; in fib_trie_get_first()
2070 iter->tnode = pn; in fib_trie_get_first()
2428 struct key_vector *tnode; member
2437 struct key_vector *l, **tp = &iter->tnode; in fib_route_get_idx()
2447 iter->tnode = t->kv; in fib_route_get_idx()
2493 iter->tnode = t->kv; in fib_route_seq_start()
2510 l = leaf_walk_rcu(&iter->tnode, key); in fib_route_seq_next()