Lines Matching refs:_name

784 #define RBT_HEAD(_name, _type)						\
785 struct _name { \
823 #define RBT_PROTOTYPE(_name, _type, _field, _cmp) \
824 extern const struct rb_type *const _name##_RBT_TYPE; \
827 _name##_RBT_INIT(struct _name *head) \
833 _name##_RBT_INSERT(struct _name *head, struct _type *elm) \
835 return _rb_insert(_name##_RBT_TYPE, &head->rbh_root, elm); \
839 _name##_RBT_REMOVE(struct _name *head, struct _type *elm) \
841 return _rb_remove(_name##_RBT_TYPE, &head->rbh_root, elm); \
845 _name##_RBT_FIND(struct _name *head, const struct _type *key) \
847 return _rb_find(_name##_RBT_TYPE, &head->rbh_root, key); \
851 _name##_RBT_NFIND(struct _name *head, const struct _type *key) \
853 return _rb_nfind(_name##_RBT_TYPE, &head->rbh_root, key); \
857 _name##_RBT_ROOT(struct _name *head) \
859 return _rb_root(_name##_RBT_TYPE, &head->rbh_root); \
863 _name##_RBT_EMPTY(struct _name *head) \
869 _name##_RBT_MIN(struct _name *head) \
871 return _rb_min(_name##_RBT_TYPE, &head->rbh_root); \
875 _name##_RBT_MAX(struct _name *head) \
877 return _rb_max(_name##_RBT_TYPE, &head->rbh_root); \
881 _name##_RBT_NEXT(struct _type *elm) \
883 return _rb_next(_name##_RBT_TYPE, elm); \
887 _name##_RBT_PREV(struct _type *elm) \
889 return _rb_prev(_name##_RBT_TYPE, elm); \
893 _name##_RBT_LEFT(struct _type *elm) \
895 return _rb_left(_name##_RBT_TYPE, elm); \
899 _name##_RBT_RIGHT(struct _type *elm) \
901 return _rb_right(_name##_RBT_TYPE, elm); \
905 _name##_RBT_PARENT(struct _type *elm) \
907 return _rb_parent(_name##_RBT_TYPE, elm); \
911 _name##_RBT_SET_LEFT(struct _type *elm, struct _type *left) \
913 _rb_set_left(_name##_RBT_TYPE, elm, left); \
917 _name##_RBT_SET_RIGHT(struct _type *elm, struct _type *right) \
919 _rb_set_right(_name##_RBT_TYPE, elm, right); \
923 _name##_RBT_SET_PARENT(struct _type *elm, struct _type *parent) \
925 _rb_set_parent(_name##_RBT_TYPE, elm, parent); \
929 _name##_RBT_POISON(struct _type *elm, unsigned long poison) \
931 _rb_poison(_name##_RBT_TYPE, elm, poison); \
935 _name##_RBT_CHECK(struct _type *elm, unsigned long poison) \
937 return _rb_check(_name##_RBT_TYPE, elm, poison); \
940 #define RBT_GENERATE_INTERNAL(_name, _type, _field, _cmp, _aug) \
942 _name##_RBT_COMPARE(const void *lptr, const void *rptr) \
947 static const struct rb_type _name##_RBT_INFO = { \
948 _name##_RBT_COMPARE, \
952 const struct rb_type *const _name##_RBT_TYPE = &_name##_RBT_INFO
954 #define RBT_GENERATE_AUGMENT(_name, _type, _field, _cmp, _aug) \
956 _name##_RBT_AUGMENT(void *ptr) \
961 RBT_GENERATE_INTERNAL(_name, _type, _field, _cmp, _name##_RBT_AUGMENT)
963 #define RBT_GENERATE(_name, _type, _field, _cmp) \
964 RBT_GENERATE_INTERNAL(_name, _type, _field, _cmp, NULL)
966 #define RBT_INIT(_name, _head) _name##_RBT_INIT(_head)
967 #define RBT_INSERT(_name, _head, _elm) _name##_RBT_INSERT(_head, _elm)
968 #define RBT_REMOVE(_name, _head, _elm) _name##_RBT_REMOVE(_head, _elm)
969 #define RBT_FIND(_name, _head, _key) _name##_RBT_FIND(_head, _key)
970 #define RBT_NFIND(_name, _head, _key) _name##_RBT_NFIND(_head, _key)
971 #define RBT_ROOT(_name, _head) _name##_RBT_ROOT(_head)
972 #define RBT_EMPTY(_name, _head) _name##_RBT_EMPTY(_head)
973 #define RBT_MIN(_name, _head) _name##_RBT_MIN(_head)
974 #define RBT_MAX(_name, _head) _name##_RBT_MAX(_head)
975 #define RBT_NEXT(_name, _elm) _name##_RBT_NEXT(_elm)
976 #define RBT_PREV(_name, _elm) _name##_RBT_PREV(_elm)
977 #define RBT_LEFT(_name, _elm) _name##_RBT_LEFT(_elm)
978 #define RBT_RIGHT(_name, _elm) _name##_RBT_RIGHT(_elm)
979 #define RBT_PARENT(_name, _elm) _name##_RBT_PARENT(_elm)
980 #define RBT_SET_LEFT(_name, _elm, _l) _name##_RBT_SET_LEFT(_elm, _l)
981 #define RBT_SET_RIGHT(_name, _elm, _r) _name##_RBT_SET_RIGHT(_elm, _r)
982 #define RBT_SET_PARENT(_name, _elm, _p) _name##_RBT_SET_PARENT(_elm, _p)
983 #define RBT_POISON(_name, _elm, _p) _name##_RBT_POISON(_elm, _p)
984 #define RBT_CHECK(_name, _elm, _p) _name##_RBT_CHECK(_elm, _p)
986 #define RBT_FOREACH(_e, _name, _head) \
987 for ((_e) = RBT_MIN(_name, (_head)); \
989 (_e) = RBT_NEXT(_name, (_e)))
991 #define RBT_FOREACH_SAFE(_e, _name, _head, _n) \
992 for ((_e) = RBT_MIN(_name, (_head)); \
993 (_e) != NULL && ((_n) = RBT_NEXT(_name, (_e)), 1); \
996 #define RBT_FOREACH_REVERSE(_e, _name, _head) \
997 for ((_e) = RBT_MAX(_name, (_head)); \
999 (_e) = RBT_PREV(_name, (_e)))
1001 #define RBT_FOREACH_REVERSE_SAFE(_e, _name, _head, _n) \
1002 for ((_e) = RBT_MAX(_name, (_head)); \
1003 (_e) != NULL && ((_n) = RBT_PREV(_name, (_e)), 1); \