radix_node
radix_node *root; // root of radix tree, actually it is an array
register struct radix_node *t, *tt, *ttt;
rn_new_radix_mask(register struct radix_node *tt, register struct radix_mask *next)
static struct radix_node *
rn_search(void *v_arg, struct radix_node *head)
register struct radix_node *x;
static struct radix_node *
rn_search_m(void *v_arg, struct radix_node *head, void *m_arg)
register struct radix_node *x;
rn_satisfies_leaf(char *trial, register struct radix_node *leaf, int skip)
static struct radix_node *
rn_newpair(void *v, int b, struct radix_node nodes[2])
register struct radix_node *tt = nodes, *t = tt + 1;
static struct radix_node *
struct radix_node nodes[2])
struct radix_node *top = head->rnh_treetop;
register struct radix_node *t = rn_search(v_arg, top);
struct radix_node *tt;
register struct radix_node *p, *x = top;
struct radix_node *base, *next;
register struct radix_node *rn, *last = 0 /* shut up gcc */;
struct radix_node *base, *next;
register struct radix_node *rn = h->rnh_treetop;
struct radix_node *
register struct radix_node *x;
static struct radix_node *rn_insert(void *, struct radix_node_head *, int *,
struct radix_node *
struct radix_node [2]);
register struct radix_node *t = head->rnh_treetop, *x;
struct radix_node *saved_t, *top = t;
static struct radix_node *rn_newpair(void *, int, struct radix_node[2]);
static struct radix_node *rn_search(void *, struct radix_node *);
static struct radix_node *rn_search_m(void *, struct radix_node *, void *);
struct radix_node *
register struct radix_node *x;
struct radix_node *saved_x;
x = (struct radix_node *)calloc(1, max_keylen + 2 * sizeof(*x));
struct radix_node *
struct radix_node treenodes[2])
register struct radix_node *t, *x = 0, *tt;
struct radix_node *saved_tt, *top = head->rnh_treetop;
static struct radix_mask *rn_new_radix_mask(struct radix_node *tt,
static int rn_satisfies_leaf(char *trial, struct radix_node *leaf,
struct radix_node *xx = x;
struct radix_node *
register struct radix_node *t, *p, *x, *tt;
struct radix_node *dupedkey, *saved_tt, *top;
struct radix_node *(*rnh_addaddr) /* add based on sockaddr */
struct radix_node_head *head, struct radix_node nodes[]);
struct radix_node *(*rnh_addpkt) /* add based on packet hdr */
struct radix_node_head *head, struct radix_node nodes[]);
struct radix_node *(*rnh_deladdr) /* remove based on sockaddr */
struct radix_node *(*rnh_delpkt) /* remove based on packet hdr */
struct radix_node *(*rnh_matchaddr) /* locate based on sockaddr */
struct radix_node *(*rnh_lookup) /* locate based on sockaddr */
struct radix_node *(*rnh_matchpkt) /* locate based on packet hdr */
(struct radix_node *rn, struct radix_node_head *head);
struct radix_node rnh_nodes[3]; /* empty tree for common case */
struct radix_node *rn_addmask(void *, int, int);
struct radix_node *rn_addroute (void *, void *, struct radix_node_head *,
struct radix_node [2]);
struct radix_node *rn_delete(void *, void *, struct radix_node_head *);
struct radix_node *rn_lookup (void *v_arg, void *m_arg,
struct radix_node *rn_match(void *, struct radix_node_head *);
struct radix_node *rn_parent; /* parent */
struct radix_node *rn_Dupedkey;
struct radix_node *rn_L;/* progeny */
struct radix_node *rn_R;/* progeny */
struct radix_node *rmu_leaf; /* for normal routes */
typedef int walktree_f_t(struct radix_node *, void *);
struct radix_node *rnh_treetop;
radix_bitmap_init(radix_node *node, uint32 radix, uint32 skip, uint32 slots)
bmp->root = (radix_node *)malloc(bmp->root_size * sizeof(radix_node));
radix_leaf_alloc(radix_node *leaf, radix_slot_t slotIndex, int32 count)
radix_node_alloc(radix_node *node, radix_slot_t slotIndex, int32 count,
radix_leaf_dealloc(radix_node *leaf, radix_slot_t slotIndex, uint32 count)
radix_node_dealloc(radix_node *node, radix_slot_t slotIndex, uint32 count,