Lines Matching refs:cursor
433 fill_node(struct callchain_node *node, struct callchain_cursor *cursor) in fill_node() argument
437 node->val_nr = cursor->nr - cursor->pos; in fill_node()
441 cursor_node = callchain_cursor_current(cursor); in fill_node()
456 callchain_cursor_advance(cursor); in fill_node()
457 cursor_node = callchain_cursor_current(cursor); in fill_node()
463 struct callchain_cursor *cursor, in add_child() argument
469 fill_node(new, cursor); in add_child()
495 struct callchain_cursor *cursor, in split_add_child() argument
522 if (idx_total < cursor->nr) { in split_add_child()
531 node = callchain_cursor_current(cursor); in split_add_child()
532 new = add_child(parent, cursor, period); in split_add_child()
557 struct callchain_cursor *cursor,
562 struct callchain_cursor *cursor, in append_chain_children() argument
570 node = callchain_cursor_current(cursor); in append_chain_children()
582 ret = append_chain(rnode, cursor, period); in append_chain_children()
592 rnode = add_child(root, cursor, period); in append_chain_children()
602 struct callchain_cursor *cursor, in append_chain() argument
606 u64 start = cursor->pos; in append_chain()
620 node = callchain_cursor_current(cursor); in append_chain()
630 callchain_cursor_advance(cursor); in append_chain()
639 matches = cursor->pos - start; in append_chain()
643 split_add_child(root, cursor, cnode, start, matches, period); in append_chain()
648 if (matches == root->val_nr && cursor->pos == cursor->nr) { in append_chain()
654 append_chain_children(root, cursor, period); in append_chain()
660 struct callchain_cursor *cursor, in callchain_append() argument
663 if (!cursor->nr) in callchain_append()
666 callchain_cursor_commit(cursor); in callchain_append()
668 append_chain_children(&root->node, cursor, period); in callchain_append()
670 if (cursor->nr > root->max_depth) in callchain_append()
671 root->max_depth = cursor->nr; in callchain_append()
677 merge_chain_branch(struct callchain_cursor *cursor, in merge_chain_branch() argument
680 struct callchain_cursor_node **old_last = cursor->last; in merge_chain_branch()
684 int old_pos = cursor->nr; in merge_chain_branch()
688 callchain_cursor_append(cursor, list->ip, in merge_chain_branch()
695 callchain_cursor_commit(cursor); in merge_chain_branch()
696 append_chain_children(dst, cursor, src->hit); in merge_chain_branch()
705 err = merge_chain_branch(cursor, dst, child); in merge_chain_branch()
712 cursor->nr = old_pos; in merge_chain_branch()
713 cursor->last = old_last; in merge_chain_branch()
718 int callchain_merge(struct callchain_cursor *cursor, in callchain_merge() argument
721 return merge_chain_branch(cursor, &dst->node, &src->node); in callchain_merge()
724 int callchain_cursor_append(struct callchain_cursor *cursor, in callchain_cursor_append() argument
727 struct callchain_cursor_node *node = *cursor->last; in callchain_cursor_append()
734 *cursor->last = node; in callchain_cursor_append()
741 cursor->nr++; in callchain_cursor_append()
743 cursor->last = &node->next; in callchain_cursor_append()