4 #ifndef RZ_INTERVALTREE_H
5 #define RZ_INTERVALTREE_H
8 #include "../rz_types.h"
95 #define rz_interval_tree_foreach(tree, it, dat) \
96 for ((it) = rz_rbtree_first(&(tree)->root->node); rz_rbtree_iter_has(&it) && (dat = rz_interval_tree_iter_get(&it)->data); rz_rbtree_iter_next(&(it)))
98 #define rz_interval_tree_foreach_prev(tree, it, dat) \
99 for ((it) = rz_rbtree_last(&(tree)->root->node); rz_rbtree_iter_has(&it) && (dat = rz_rbtree_iter_get(&it, RzIntervalNode, node)->data); rz_rbtree_iter_prev(&(it)))
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void start
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API bool rz_interval_tree_all_intersect(RzIntervalTree *tree, ut64 start, ut64 end, bool end_inclusive, RzIntervalIterCb cb, void *user)
static void * rz_interval_tree_at(RzIntervalTree *tree, ut64 start)
RZ_API bool rz_interval_tree_delete(RzIntervalTree *tree, RzIntervalNode *node, bool free)
RBIter RzIntervalTreeIter
static bool rz_interval_tree_empty(RzIntervalTree *tree)
RZ_API RzIntervalNode * rz_interval_tree_node_at(RzIntervalTree *tree, ut64 start)
RZ_API bool rz_interval_tree_all_in(RzIntervalTree *tree, ut64 value, bool end_inclusive, RzIntervalIterCb cb, void *user)
RZ_API RzIntervalNode * rz_interval_tree_node_at_data(RzIntervalTree *tree, ut64 start, void *data)
RZ_API bool rz_interval_tree_resize(RzIntervalTree *tree, RzIntervalNode *node, ut64 new_start, ut64 new_end)
RZ_API bool rz_interval_tree_all_at(RzIntervalTree *tree, ut64 start, RzIntervalIterCb cb, void *user)
RZ_API void rz_interval_tree_init(RzIntervalTree *tree, RzIntervalNodeFree free)
struct rz_interval_tree_t RzIntervalTree
void(* RzIntervalNodeFree)(void *data)
static RzIntervalNode * rz_interval_tree_iter_get(RzIntervalTreeIter *it)
RZ_API bool rz_interval_tree_insert(RzIntervalTree *tree, ut64 start, ut64 end, void *data)
RZ_API RBIter rz_interval_tree_first_at(RzIntervalTree *tree, ut64 start)
struct rz_interval_node_t RzIntervalNode
RZ_API void rz_interval_tree_fini(RzIntervalTree *tree)
bool(* RzIntervalIterCb)(RzIntervalNode *node, void *user)
#define rz_rbtree_iter_get(it, struc, rb)
ut64(WINAPI *w32_GetEnabledXStateFeatures)()