Lines Matching refs:cursor

445 fill_node(struct callchain_node *node, struct callchain_cursor *cursor)  in fill_node()  argument
449 node->val_nr = cursor->nr - cursor->pos; in fill_node()
453 cursor_node = callchain_cursor_current(cursor); in fill_node()
468 callchain_cursor_advance(cursor); in fill_node()
469 cursor_node = callchain_cursor_current(cursor); in fill_node()
475 struct callchain_cursor *cursor, in add_child() argument
481 fill_node(new, cursor); in add_child()
507 struct callchain_cursor *cursor, in split_add_child() argument
534 if (idx_total < cursor->nr) { in split_add_child()
543 node = callchain_cursor_current(cursor); in split_add_child()
544 new = add_child(parent, cursor, period); in split_add_child()
569 struct callchain_cursor *cursor,
574 struct callchain_cursor *cursor, in append_chain_children() argument
582 node = callchain_cursor_current(cursor); in append_chain_children()
594 ret = append_chain(rnode, cursor, period); in append_chain_children()
604 rnode = add_child(root, cursor, period); in append_chain_children()
614 struct callchain_cursor *cursor, in append_chain() argument
618 u64 start = cursor->pos; in append_chain()
632 node = callchain_cursor_current(cursor); in append_chain()
642 callchain_cursor_advance(cursor); in append_chain()
651 matches = cursor->pos - start; in append_chain()
655 split_add_child(root, cursor, cnode, start, matches, period); in append_chain()
660 if (matches == root->val_nr && cursor->pos == cursor->nr) { in append_chain()
666 append_chain_children(root, cursor, period); in append_chain()
672 struct callchain_cursor *cursor, in callchain_append() argument
675 if (!cursor->nr) in callchain_append()
678 callchain_cursor_commit(cursor); in callchain_append()
680 append_chain_children(&root->node, cursor, period); in callchain_append()
682 if (cursor->nr > root->max_depth) in callchain_append()
683 root->max_depth = cursor->nr; in callchain_append()
689 merge_chain_branch(struct callchain_cursor *cursor, in merge_chain_branch() argument
692 struct callchain_cursor_node **old_last = cursor->last; in merge_chain_branch()
696 int old_pos = cursor->nr; in merge_chain_branch()
700 callchain_cursor_append(cursor, list->ip, in merge_chain_branch()
707 callchain_cursor_commit(cursor); in merge_chain_branch()
708 append_chain_children(dst, cursor, src->hit); in merge_chain_branch()
717 err = merge_chain_branch(cursor, dst, child); in merge_chain_branch()
724 cursor->nr = old_pos; in merge_chain_branch()
725 cursor->last = old_last; in merge_chain_branch()
730 int callchain_merge(struct callchain_cursor *cursor, in callchain_merge() argument
733 return merge_chain_branch(cursor, &dst->node, &src->node); in callchain_merge()
736 int callchain_cursor_append(struct callchain_cursor *cursor, in callchain_cursor_append() argument
739 struct callchain_cursor_node *node = *cursor->last; in callchain_cursor_append()
746 *cursor->last = node; in callchain_cursor_append()
753 cursor->nr++; in callchain_cursor_append()
755 cursor->last = &node->next; in callchain_cursor_append()