Lines Matching refs:stree

77 void __print_stree(struct stree *stree)  in __print_stree()  argument
82 sm_msg("dumping stree [%ld states]", stree_count(stree)); in __print_stree()
83 FOR_EACH_SM(stree, sm) { in __print_stree()
520 struct sm_state *get_sm_state_stree(struct stree *stree, int owner, const char *name, in get_sm_state_stree() argument
533 return avl_lookup(stree, (struct sm_state *)&tracker); in get_sm_state_stree()
536 struct smatch_state *get_state_stree(struct stree *stree, in get_state_stree() argument
542 sm = get_sm_state_stree(stree, owner, name, sym); in get_state_stree()
549 void overwrite_sm_state_stree(struct stree **stree, struct sm_state *new) in overwrite_sm_state_stree() argument
551 avl_insert(stree, new); in overwrite_sm_state_stree()
557 struct stree *stree; in overwrite_sm_state_stree_stack() local
559 stree = pop_stree(stack); in overwrite_sm_state_stree_stack()
560 overwrite_sm_state_stree(&stree, sm); in overwrite_sm_state_stree_stack()
561 push_stree(stack, stree); in overwrite_sm_state_stree_stack()
564 struct sm_state *set_state_stree(struct stree **stree, int owner, const char *name, in set_state_stree() argument
569 avl_insert(stree, new); in set_state_stree()
573 void set_state_stree_perm(struct stree **stree, int owner, const char *name, in set_state_stree_perm() argument
586 overwrite_sm_state_stree(stree, sm); in set_state_stree_perm()
589 void delete_state_stree(struct stree **stree, int owner, const char *name, in delete_state_stree() argument
598 avl_remove(stree, (struct sm_state *)&tracker); in delete_state_stree()
604 struct stree *stree; in delete_state_stree_stack() local
606 stree = pop_stree(stack); in delete_state_stree_stack()
607 delete_state_stree(&stree, owner, name, sym); in delete_state_stree_stack()
608 push_stree(stack, stree); in delete_state_stree_stack()
611 void push_stree(struct stree_stack **stack, struct stree *stree) in push_stree() argument
613 add_ptr_list(stack, stree); in push_stree()
616 struct stree *pop_stree(struct stree_stack **stack) in pop_stree()
618 struct stree *stree; in pop_stree() local
620 stree = last_ptr_list((struct ptr_list *)*stack); in pop_stree()
622 return stree; in pop_stree()
625 struct stree *top_stree(struct stree_stack *stack) in top_stree()
642 struct stree *stree; in free_stack_and_strees() local
644 FOR_EACH_PTR(*stree_stack, stree) { in free_stack_and_strees()
645 free_stree(&stree); in free_stack_and_strees()
646 } END_FOR_EACH_PTR(stree); in free_stack_and_strees()
653 struct stree *stree; in set_state_stree_stack() local
656 stree = pop_stree(stack); in set_state_stree_stack()
657 sm = set_state_stree(&stree, owner, name, sym, state); in set_state_stree_stack()
658 push_stree(stack, stree); in set_state_stree_stack()
670 struct stree *stree; in get_sm_state_stree_stack() local
673 stree = pop_stree(&stack); in get_sm_state_stree_stack()
674 ret = get_sm_state_stree(stree, owner, name, sym); in get_sm_state_stree_stack()
675 push_stree(&stack, stree); in get_sm_state_stree_stack()
691 static void match_states_stree(struct stree **one, struct stree **two) in match_states_stree()
748 static void call_pre_merge_hooks(struct stree **one, struct stree **two) in call_pre_merge_hooks()
751 struct stree *new; in call_pre_merge_hooks()
784 static void clone_pool_havers_stree(struct stree **stree) in clone_pool_havers_stree() argument
789 FOR_EACH_SM(*stree, sm) { in clone_pool_havers_stree()
797 avl_insert(stree, sm); in clone_pool_havers_stree()
809 static void __merge_stree(struct stree **to, struct stree *stree, int add_pool) in __merge_stree() argument
811 struct stree *results = NULL; in __merge_stree()
812 struct stree *implied_one = NULL; in __merge_stree()
813 struct stree *implied_two = NULL; in __merge_stree()
822 if (!stree) in __merge_stree()
824 if (*to == stree) in __merge_stree()
828 *to = clone_stree(stree); in __merge_stree()
833 implied_two = clone_stree(stree); in __merge_stree()
889 void merge_stree(struct stree **to, struct stree *stree) in merge_stree() argument
891 __merge_stree(to, stree, 1); in merge_stree()
894 void merge_stree_no_pools(struct stree **to, struct stree *stree) in merge_stree_no_pools() argument
896 __merge_stree(to, stree, 0); in merge_stree_no_pools()
906 void merge_fake_stree(struct stree **to, struct stree *stree) in merge_fake_stree() argument
908 struct stree *one = *to; in merge_fake_stree()
909 struct stree *two = stree; in merge_fake_stree()
916 if (!stree) in merge_fake_stree()
918 if (*to == stree) in merge_fake_stree()
921 *to = clone_stree(stree); in merge_fake_stree()
978 void filter_stree(struct stree **stree, struct stree *filter) in filter_stree() argument
980 struct stree *results = NULL; in filter_stree()
984 avl_iter_begin(&one_iter, *stree, FORWARD); in filter_stree()
1005 free_stree(stree); in filter_stree()
1006 *stree = results; in filter_stree()
1017 struct stree *right_stree = pop_stree(stack); in and_stree_stack()
1034 struct stree *cur_stree, in or_stree_stack()
1037 struct stree *new; in or_stree_stack()
1038 struct stree *old; in or_stree_stack()
1039 struct stree *pre_stree; in or_stree_stack()
1040 struct stree *res; in or_stree_stack()
1041 struct stree *tmp_stree; in or_stree_stack()
1068 struct stree **get_named_stree(struct named_stree_stack *stack, in get_named_stree()
1077 return &tmp->stree; in get_named_stree()
1083 void overwrite_stree(struct stree *from, struct stree **to) in overwrite_stree()