/* * Store all entries within entries array, * we will process it after we finish unwind. */ static int entry(u64 ip, struct unwind_info *ui) { struct unwind_entry *e = &ui->entries[ui->idx++]; struct addr_location al; if (__report_module(&al, ip, ui)) return -1; e->ip = al.addr; e->map = al.map; e->sym = al.sym; pr_debug("unwind: %s:ip = 0x%" PRIx64 " (0x%" PRIx64 ")\n", al.sym ? al.sym->name : "''", ip, al.map ? al.map->map_ip(al.map, ip) : (u64) 0); return 0; }
static int entry(u64 ip, struct unwind_info *ui) { struct unwind_entry e; struct addr_location al; if (__report_module(&al, ip, ui)) return -1; e.ip = ip; e.map = al.map; e.sym = al.sym; pr_debug("unwind: %s:ip = 0x%" PRIx64 " (0x%" PRIx64 ")\n", al.sym ? al.sym->name : "''", ip, al.map ? al.map->map_ip(al.map, ip) : (u64) 0); return ui->cb(&e, ui->arg); }
static int report_module(u64 ip, struct unwind_info *ui) { struct addr_location al; return __report_module(&al, ip, ui); }