38 GF[i].alloc = m_alloc;
204 #define MAX_UWI_STR MAX_INTERVAL_STR+MAX_RECIPE_STR+4 213 sprintf(str,
"(%s %s)", intervalstr, recipestr);
void *(* mem_alloc)(size_t size)
static __thread bitree_uwi_t * _lf_uwi_tree[NUM_UNWINDERS]
bitree_uwi_t * bitree_uwi_rebalance(bitree_uwi_t *tree, int count)
static void(* uwi_t_tostr[NUM_UNWINDERS])(void *uwip, char str[])
void mcs_lock(mcs_lock_t *l, mcs_node_t *me)
bitree_uwi_t * bitree_uwi_rightsubtree(bitree_uwi_t *tree)
uwi_t * bitree_uwi_rootval(bitree_uwi_t *tree)
int interval_t_cmp(void *lhs, void *rhs)
int interval_t_inrange(void *lhs, void *val)
static int uwi_t_cmp(void *lhs, void *rhs)
void uw_recipe_tostr(void *uwr, char str[], unwinder_t uw)
bitree_uwi_t * bitree_uwi_inrange(bitree_uwi_t *tree, uintptr_t address)
static void uwi_t_any_tostr(void *uwip, char str[], unwinder_t uw)
void * binarytree_rootval(binarytree_t *tree)
bool mcs_trylock(mcs_lock_t *l, mcs_node_t *me)
void mcs_unlock(mcs_lock_t *l, mcs_node_t *me)
bitree_uwi_t * bitree_uwi_malloc(unwinder_t uw, size_t recipe_size)
binarytree_t * binarytree_list_to_tree(binarytree_t **head, int count)
binarytree_t * binarytree_find(binarytree_t *root, val_cmp matches, void *val)
static void uwi_t_native_tostr(void *uwip, char str[])
binarytree_t * binarytree_listify(binarytree_t *root)
uw_recipe_t * bitree_uwi_recipe(bitree_uwi_t *tree)
struct bitree_uwi_s bitree_uwi_t
static int uwi_t_inrange(void *lhs, void *address)
void bitree_uwi_init(mem_alloc m_alloc)
void bitree_uwi_free(unwinder_t uw, bitree_uwi_t *tree)
void interval_t_tostr(void *ptrinterval, char result[])
interval_t * bitree_uwi_interval(bitree_uwi_t *tree)
void binarytree_set_rightsubtree(binarytree_t *tree, binarytree_t *subtree)
void binarytree_tostring_indent(binarytree_t *root, val_tostr tostr, char valstr[], char *indents, char result[])
enum unwinder_e unwinder_t
binarytree_t * binarytree_leftsubtree(binarytree_t *tree)
void bitree_uwi_set_leftsubtree(bitree_uwi_t *tree, bitree_uwi_t *subtree)
struct recipe_s uw_recipe_t
static struct @16 GF[NUM_UNWINDERS]
void binarytree_set_leftsubtree(binarytree_t *tree, binarytree_t *subtree)
binarytree_t * binarytree_rightsubtree(binarytree_t *tree)
bitree_uwi_t * bitree_uwi_leftsubtree(bitree_uwi_t *tree)
static void mcs_init(mcs_lock_t *l)
binarytree_t * binarytree_listalloc(size_t elt_size, int num_elts, mem_alloc m_alloc)
bitree_uwi_t * bitree_uwi_find(bitree_uwi_t *tree, uwi_t *val)
static void uwi_t_dwarf_tostr(void *uwip, char str[])
void bitree_uwi_set_rightsubtree(bitree_uwi_t *tree, bitree_uwi_t *subtree)
bitree_uwi_t * bitree_uwi_flatten(bitree_uwi_t *tree)
void bitree_uwi_tostring_indent(bitree_uwi_t *tree, char *indents, char treestr[], unwinder_t uw)