Lines Matching refs:cursor
583 fill_node(struct callchain_node *node, struct callchain_cursor *cursor) in fill_node() argument
587 node->val_nr = cursor->nr - cursor->pos; in fill_node()
591 cursor_node = callchain_cursor_current(cursor); in fill_node()
648 callchain_cursor_advance(cursor); in fill_node()
649 cursor_node = callchain_cursor_current(cursor); in fill_node()
656 struct callchain_cursor *cursor, in add_child() argument
665 if (fill_node(new, cursor) < 0) { in add_child()
824 struct callchain_cursor *cursor, in split_add_child() argument
856 if (idx_total < cursor->nr) { in split_add_child()
867 node = callchain_cursor_current(cursor); in split_add_child()
868 new = add_child(parent, cursor, period); in split_add_child()
897 struct callchain_cursor *cursor,
902 struct callchain_cursor *cursor, in append_chain_children() argument
910 node = callchain_cursor_current(cursor); in append_chain_children()
922 ret = append_chain(rnode, cursor, period); in append_chain_children()
934 rnode = add_child(root, cursor, period); in append_chain_children()
949 struct callchain_cursor *cursor, in append_chain() argument
953 u64 start = cursor->pos; in append_chain()
967 node = callchain_cursor_current(cursor); in append_chain()
977 callchain_cursor_advance(cursor); in append_chain()
986 matches = cursor->pos - start; in append_chain()
990 if (split_add_child(root, cursor, cnode, start, matches, in append_chain()
998 if (matches == root->val_nr && cursor->pos == cursor->nr) { in append_chain()
1005 if (append_chain_children(root, cursor, period) < 0) in append_chain()
1012 struct callchain_cursor *cursor, in callchain_append() argument
1015 if (cursor == NULL) in callchain_append()
1018 if (!cursor->nr) in callchain_append()
1021 callchain_cursor_commit(cursor); in callchain_append()
1023 if (append_chain_children(&root->node, cursor, period) < 0) in callchain_append()
1026 if (cursor->nr > root->max_depth) in callchain_append()
1027 root->max_depth = cursor->nr; in callchain_append()
1033 merge_chain_branch(struct callchain_cursor *cursor, in merge_chain_branch() argument
1036 struct callchain_cursor_node **old_last = cursor->last; in merge_chain_branch()
1040 int old_pos = cursor->nr; in merge_chain_branch()
1048 callchain_cursor_append(cursor, list->ip, &ms, false, NULL, 0, 0, 0, list->srcline); in merge_chain_branch()
1057 callchain_cursor_commit(cursor); in merge_chain_branch()
1058 if (append_chain_children(dst, cursor, src->hit) < 0) in merge_chain_branch()
1068 err = merge_chain_branch(cursor, dst, child); in merge_chain_branch()
1075 cursor->nr = old_pos; in merge_chain_branch()
1076 cursor->last = old_last; in merge_chain_branch()
1081 int callchain_merge(struct callchain_cursor *cursor, in callchain_merge() argument
1084 return merge_chain_branch(cursor, &dst->node, &src->node); in callchain_merge()
1087 int callchain_cursor_append(struct callchain_cursor *cursor, in callchain_cursor_append() argument
1093 struct callchain_cursor_node *node = *cursor->last; in callchain_cursor_append()
1100 *cursor->last = node; in callchain_cursor_append()
1116 cursor->nr++; in callchain_cursor_append()
1118 cursor->last = &node->next; in callchain_cursor_append()
1124 struct callchain_cursor *cursor, struct symbol **parent, in sample__resolve_callchain() argument
1133 return thread__resolve_callchain(al->thread, cursor, evsel, sample, in sample__resolve_callchain()
1603 struct callchain_cursor *cursor = vcursor; in callchain_cursor__delete() local
1606 callchain_cursor_reset(cursor); in callchain_cursor__delete()
1607 for (node = cursor->first; node != NULL; node = next) { in callchain_cursor__delete()
1611 free(cursor); in callchain_cursor__delete()
1625 struct callchain_cursor *cursor; in get_tls_callchain_cursor() local
1628 cursor = pthread_getspecific(callchain_cursor); in get_tls_callchain_cursor()
1629 if (!cursor) { in get_tls_callchain_cursor()
1630 cursor = zalloc(sizeof(*cursor)); in get_tls_callchain_cursor()
1631 if (!cursor) in get_tls_callchain_cursor()
1633 pthread_setspecific(callchain_cursor, cursor); in get_tls_callchain_cursor()
1635 return cursor; in get_tls_callchain_cursor()
1671 void callchain_cursor_reset(struct callchain_cursor *cursor) in callchain_cursor_reset() argument
1675 cursor->nr = 0; in callchain_cursor_reset()
1676 cursor->last = &cursor->first; in callchain_cursor_reset()
1678 for (node = cursor->first; node != NULL; node = node->next) in callchain_cursor_reset()
1811 struct callchain_cursor *cursor = get_tls_callchain_cursor(); in sample__for_each_callchain_node() local
1814 if (!cursor) in sample__for_each_callchain_node()
1818 ret = __thread__resolve_callchain(thread, cursor, evsel, sample, in sample__for_each_callchain_node()
1825 callchain_cursor_commit(cursor); in sample__for_each_callchain_node()
1828 struct callchain_cursor_node *node = callchain_cursor_current(cursor); in sample__for_each_callchain_node()
1837 callchain_cursor_advance(cursor); in sample__for_each_callchain_node()