Lines Matching refs:root
68 * struct lut *root = NULL;
69 * root = lut_add(root, key, value, cmp_func);
78 lut_add(struct lut *root, void *lhs, void *rhs, lut_cmp cmp_func)
81 struct lut **tmp_hdl = &root, *parent = NULL, *tmp = root;
92 return (root);
105 *tmp_hdl = MALLOC(sizeof (*root));
112 return (root);
116 lut_lookup(struct lut *root, void *lhs, lut_cmp cmp_func)
122 while (root) {
124 diff = (*cmp_func)(root->lut_lhs, lhs);
126 diff = (const char *)lhs - (const char *)root->lut_lhs;
129 return (root->lut_rhs);
131 root = root->lut_left;
133 root = root->lut_right;
139 lut_lookup_lhs(struct lut *root, void *lhs, lut_cmp cmp_func)
145 while (root) {
147 diff = (*cmp_func)(root->lut_lhs, lhs);
149 diff = (const char *)lhs - (const char *)root->lut_lhs;
152 return (root->lut_lhs);
154 root = root->lut_left;
156 root = root->lut_right;
165 lut_walk(struct lut *root, lut_cb callback, void *arg)
167 struct lut *tmp = root;
170 if (root == NULL)
205 lut_free(struct lut *root, lut_cb callback, void *arg)
207 struct lut *tmp = root;
210 if (root == NULL)
241 * free the root node and then we're done