Lines Matching refs:ui
305 static int read_unwind_spec_eh_frame(struct dso *dso, struct unwind_info *ui,
314 fd = dso__data_get_fd(dso, ui->machine);
328 maps__for_each_entry(thread__maps(ui->thread), map_node) {
338 ret = unwind_spec_ehframe(dso, ui->machine, dso->data.eh_frame_hdr_offset,
416 static struct map *find_map(unw_word_t ip, struct unwind_info *ui)
422 thread__find_map(ui->thread, PERF_RECORD_MISC_USER, ip, &al);
432 struct unwind_info *ui = arg;
439 map = find_map(ip, ui);
452 if (!read_unwind_spec_eh_frame(dso, ui, &table_data, &segbase, &fde_count)) {
468 !read_unwind_spec_debug_frame(dso, ui->machine, &segbase)) {
469 int fd = dso__data_get_fd(dso, ui->machine);
525 static int access_dso_mem(struct unwind_info *ui, unw_word_t addr,
532 map = find_map(addr, ui);
545 size = dso__data_read_addr(dso, map, ui->machine,
555 struct unwind_info *ui = arg;
556 const char *arch = perf_env__arch(ui->machine->env);
557 struct stack_dump *stack = &ui->sample->user_stack;
563 if (__write || !stack || !ui->sample->user_regs.regs) {
568 ret = perf_reg_value(&start, &ui->sample->user_regs,
580 ret = access_dso_mem(ui, addr, valp);
602 struct unwind_info *ui = arg;
612 if (!ui->sample->user_regs.regs) {
621 ret = perf_reg_value(&val, &ui->sample->user_regs, id);
623 if (!ui->best_effort)
715 static int get_entries(struct unwind_info *ui, unwind_entry_cb_t cb,
718 const char *arch = perf_env__arch(ui->machine->env);
725 ret = perf_reg_value(&val, &ui->sample->user_regs,
737 WARN_ONCE(!ui->thread, "WARNING: ui->thread is NULL");
738 addr_space = maps__addr_space(thread__maps(ui->thread));
743 ret = unw_init_remote(&c, addr_space, ui);
744 if (ret && !ui->best_effort)
774 ret = ips[j] ? entry(ips[j], ui->thread, cb, arg) : 0;
785 struct unwind_info ui = {
798 return get_entries(&ui, cb, arg, max_stack);