Lines Matching refs:root
70 lut_add(struct lut *root, const char *lhs, void *rhs) in lut_add() argument
74 if (root == NULL) { in lut_add()
76 root = MALLOC(sizeof (*root)); in lut_add()
77 root->lut_lhs = STRDUP(lhs); in lut_add()
78 root->lut_rhs = rhs; in lut_add()
79 root->lut_left = root->lut_right = NULL; in lut_add()
80 } else if (lhs != NULL && (diff = strcmp(root->lut_lhs, lhs)) == 0) { in lut_add()
82 root->lut_rhs = rhs; in lut_add()
84 root->lut_left = lut_add(root->lut_left, lhs, rhs); in lut_add()
86 root->lut_right = lut_add(root->lut_right, lhs, rhs); in lut_add()
87 return (root); in lut_add()
106 lut_dup(struct lut *root) in lut_dup() argument
110 lut_walk(root, dooper, &ret); in lut_dup()
119 lut_lookup(struct lut *root, const char *lhs) in lut_lookup() argument
123 if (root == NULL || lhs == NULL) in lut_lookup()
125 else if ((diff = strcmp(root->lut_lhs, lhs)) == 0) in lut_lookup()
126 return (root->lut_rhs); in lut_lookup()
128 return (lut_lookup(root->lut_left, lhs)); in lut_lookup()
130 return (lut_lookup(root->lut_right, lhs)); in lut_lookup()
137 lut_walk(struct lut *root, in lut_walk() argument
140 if (root) { in lut_walk()
141 lut_walk(root->lut_left, callback, arg); in lut_walk()
142 (*callback)(root->lut_lhs, root->lut_rhs, arg); in lut_walk()
143 lut_walk(root->lut_right, callback, arg); in lut_walk()
155 lut_free(struct lut *root, void (*callback)(void *rhs)) in lut_free() argument
157 if (root != NULL) { in lut_free()
158 lut_free(root->lut_left, callback); in lut_free()
159 lut_free(root->lut_right, callback); in lut_free()
160 FREE(root->lut_lhs); in lut_free()
162 (*callback)(root->lut_rhs); in lut_free()
163 FREE(root); in lut_free()
173 struct lut *root = (struct lut *)arg; in printer() local