Lines Matching refs:_n
17 # define RBI_LINK(_n, _t)
18 # define RBI_FIELD(_n) rb_node_t
19 # define RBI_HEAD(_n, _t) rb_tree_t
22 # define RBI_CODE(_n, _t, _f, _cmp) \
23 signed int _n##_compare_nodes(void *ctx, const void *n1, const void *n2);\
24 signed int _n##_compare_key(void *ctx, const void *n1, const void *key);\
25 typedef void (*_n##_rb_walker_t)(_t *, void *); \
26 void _n##_rb_walktree(rb_tree_t *, _n##_rb_walker_t, void *); \
28 static const rb_tree_ops_t _n##_tree_ops = { \
29 .rbto_compare_nodes = _n##_compare_nodes, \
30 .rbto_compare_key = _n##_compare_key, \
36 _n##_compare_nodes(void *ctx, const void *n1, const void *n2) { \
41 _n##_compare_key(void *ctx, const void *n1, const void *key) { \
46 _n##_rb_walktree(rb_tree_t *head, _n##_rb_walker_t func, void *arg) \
57 # define RBI_DELETE(_n, _h, _v) rb_tree_remove_node(_h, _v)
58 # define RBI_INIT(_n, _h) rb_tree_init(_h, &_n##_tree_ops)
59 # define RBI_INSERT(_n, _h, _v) rb_tree_insert_node(_h, _v)
61 # define RBI_SEARCH(_n, _h, _k) rb_tree_find_node(_h, _k)
62 # define RBI_WALK(_n, _h, _w, _a) _n##_rb_walktree(_h, _w, _a)
71 #define RBI_LINK(_n, _t) \
72 struct _n##_rb_link { \
79 #define RBI_HEAD(_n, _t) \
80 struct _n##_rb_head { \
86 #define RBI_FIELD(_n) struct _n##_rb_link
88 #define RBI_CODE(_n, _t, _f, _cmp) \
90 _t RBI_ZERO(_n); \
92 typedef void (*_n##_rb_walker_t)(_t *, void *); \
94 _t * _n##_rb_delete(struct _n##_rb_head *, _t *); \
95 void _n##_rb_init(struct _n##_rb_head *); \
96 void _n##_rb_insert(struct _n##_rb_head *, _t *); \
97 _t * _n##_rb_search(struct _n##_rb_head *, void *); \
98 void _n##_rb_walktree(struct _n##_rb_head *, _n##_rb_walker_t, void *);\
101 rotate_left(struct _n##_rb_head *head, _t *node) \
109 if (tmp2 != & _n##_rb_zero) \
111 if (parent == & _n##_rb_zero) \
123 rotate_right(struct _n##_rb_head *head, _t *node) \
131 if (tmp2 != &_n##_rb_zero) \
133 if (parent == &_n##_rb_zero) \
145 _n##_rb_insert(struct _n##_rb_head *head, _t *node) \
150 node->_f.left = &_n##_rb_zero; \
151 node->_f.right = &_n##_rb_zero; \
153 while ((n = *p) != &_n##_rb_zero) { \
164 while ((node != &_n##_rb_zero) && (parent->_f.colour == C_RED)){\
208 deleteblack(struct _n##_rb_head *head, _t *parent, _t *node) \
212 while ((node == &_n##_rb_zero || node->_f.colour == C_BLACK) && \
222 if ((tmp->_f.left == &_n##_rb_zero || \
224 (tmp->_f.right == &_n##_rb_zero || \
230 if (tmp->_f.right == &_n##_rb_zero || \
234 if (tmp2 != &_n##_rb_zero) \
242 if (tmp->_f.right != &_n##_rb_zero) \
255 if ((tmp->_f.left == &_n##_rb_zero || \
257 (tmp->_f.right == &_n##_rb_zero || \
263 if (tmp->_f.left == &_n##_rb_zero || \
267 if (tmp2 != &_n##_rb_zero) \
275 if (tmp->_f.left != &_n##_rb_zero) \
283 if (node != &_n##_rb_zero) \
288 _n##_rb_delete(struct _n##_rb_head *head, _t *node) \
293 if (node->_f.left == &_n##_rb_zero) { \
295 } else if (node->_f.right == &_n##_rb_zero) { \
299 while ((left = node->_f.left) != &_n##_rb_zero) \
304 if (child != &_n##_rb_zero) \
306 if (parent != &_n##_rb_zero) { \
317 if (old->_f.parent != &_n##_rb_zero) { \
326 if (old->_f.right != &_n##_rb_zero) \
328 if (parent != &_n##_rb_zero) { \
335 if (child != &_n##_rb_zero) \
337 if (parent != &_n##_rb_zero) { \
353 _n##_rb_init(struct _n##_rb_head *head) \
355 memset(&_n##_rb_zero, 0, sizeof(_n##_rb_zero)); \
356 head->top._f.left = &_n##_rb_zero; \
357 head->top._f.right = &_n##_rb_zero; \
359 _n##_rb_zero._f.left = &_n##_rb_zero; \
360 _n##_rb_zero._f.right = &_n##_rb_zero; \
361 _n##_rb_zero._f.parent = &_n##_rb_zero; \
365 _n##_rb_walktree(struct _n##_rb_head *head, _n##_rb_walker_t func, void *arg)\
372 while (node != &_n##_rb_zero) \
379 (node != &_n##_rb_zero)) { \
385 for (node = node->_f.parent->_f.right; node != &_n##_rb_zero;\
390 if (node != &_n##_rb_zero) \
394 if (node == &_n##_rb_zero) \
400 _n##_rb_search(struct _n##_rb_head *head, void *key) \
405 while (node != &_n##_rb_zero) { \
414 if (node == &_n##_rb_zero || match != 0) \
419 #define RBI_DELETE(_n, _h, _v) _n##_rb_delete(_h, _v)
420 #define RBI_INIT(_n, _h) _n##_rb_init(_h)
421 #define RBI_INSERT(_n, _h, _v) _n##_rb_insert(_h, _v)
423 #define RBI_SEARCH(_n, _h, _k) _n##_rb_search(_h, _k)
424 #define RBI_WALK(_n, _h, _w, _a) _n##_rb_walktree(_h, _w, _a)
425 #define RBI_ZERO(_n) _n##_rb_zero