Lines Matching refs:cursor
573 fill_node(struct callchain_node *node, struct callchain_cursor *cursor) in fill_node() argument
577 node->val_nr = cursor->nr - cursor->pos; in fill_node()
581 cursor_node = callchain_cursor_current(cursor); in fill_node()
631 callchain_cursor_advance(cursor); in fill_node()
632 cursor_node = callchain_cursor_current(cursor); in fill_node()
639 struct callchain_cursor *cursor, in add_child() argument
648 if (fill_node(new, cursor) < 0) { in add_child()
799 struct callchain_cursor *cursor, in split_add_child() argument
831 if (idx_total < cursor->nr) { in split_add_child()
842 node = callchain_cursor_current(cursor); in split_add_child()
843 new = add_child(parent, cursor, period); in split_add_child()
872 struct callchain_cursor *cursor,
877 struct callchain_cursor *cursor, in append_chain_children() argument
885 node = callchain_cursor_current(cursor); in append_chain_children()
897 ret = append_chain(rnode, cursor, period); in append_chain_children()
909 rnode = add_child(root, cursor, period); in append_chain_children()
924 struct callchain_cursor *cursor, in append_chain() argument
928 u64 start = cursor->pos; in append_chain()
942 node = callchain_cursor_current(cursor); in append_chain()
952 callchain_cursor_advance(cursor); in append_chain()
961 matches = cursor->pos - start; in append_chain()
965 if (split_add_child(root, cursor, cnode, start, matches, in append_chain()
973 if (matches == root->val_nr && cursor->pos == cursor->nr) { in append_chain()
980 if (append_chain_children(root, cursor, period) < 0) in append_chain()
987 struct callchain_cursor *cursor, in callchain_append() argument
990 if (cursor == NULL) in callchain_append()
993 if (!cursor->nr) in callchain_append()
996 callchain_cursor_commit(cursor); in callchain_append()
998 if (append_chain_children(&root->node, cursor, period) < 0) in callchain_append()
1001 if (cursor->nr > root->max_depth) in callchain_append()
1002 root->max_depth = cursor->nr; in callchain_append()
1008 merge_chain_branch(struct callchain_cursor *cursor, in merge_chain_branch() argument
1011 struct callchain_cursor_node **old_last = cursor->last; in merge_chain_branch()
1015 int old_pos = cursor->nr; in merge_chain_branch()
1023 callchain_cursor_append(cursor, list->ip, &ms, false, NULL, 0, 0, 0, list->srcline); in merge_chain_branch()
1033 callchain_cursor_commit(cursor); in merge_chain_branch()
1034 if (append_chain_children(dst, cursor, src->hit) < 0) in merge_chain_branch()
1044 err = merge_chain_branch(cursor, dst, child); in merge_chain_branch()
1051 cursor->nr = old_pos; in merge_chain_branch()
1052 cursor->last = old_last; in merge_chain_branch()
1057 int callchain_merge(struct callchain_cursor *cursor, in callchain_merge() argument
1060 return merge_chain_branch(cursor, &dst->node, &src->node); in callchain_merge()
1063 int callchain_cursor_append(struct callchain_cursor *cursor, in callchain_cursor_append() argument
1069 struct callchain_cursor_node *node = *cursor->last; in callchain_cursor_append()
1076 *cursor->last = node; in callchain_cursor_append()
1095 cursor->nr++; in callchain_cursor_append()
1097 cursor->last = &node->next; in callchain_cursor_append()
1103 struct callchain_cursor *cursor, struct symbol **parent, in sample__resolve_callchain() argument
1112 return thread__resolve_callchain(al->thread, cursor, evsel, sample, in sample__resolve_callchain()
1579 struct callchain_cursor *cursor = vcursor; in callchain_cursor__delete() local
1582 callchain_cursor_reset(cursor); in callchain_cursor__delete()
1583 for (node = cursor->first; node != NULL; node = next) { in callchain_cursor__delete()
1587 free(cursor); in callchain_cursor__delete()
1601 struct callchain_cursor *cursor; in get_tls_callchain_cursor() local
1604 cursor = pthread_getspecific(callchain_cursor); in get_tls_callchain_cursor()
1605 if (!cursor) { in get_tls_callchain_cursor()
1606 cursor = zalloc(sizeof(*cursor)); in get_tls_callchain_cursor()
1607 if (!cursor) in get_tls_callchain_cursor()
1609 pthread_setspecific(callchain_cursor, cursor); in get_tls_callchain_cursor()
1611 return cursor; in get_tls_callchain_cursor()
1647 void callchain_cursor_reset(struct callchain_cursor *cursor) in callchain_cursor_reset() argument
1651 cursor->nr = 0; in callchain_cursor_reset()
1652 cursor->last = &cursor->first; in callchain_cursor_reset()
1654 for (node = cursor->first; node != NULL; node = node->next) { in callchain_cursor_reset()