event->mmap.start = map__start(map);
event->mmap.len = map__size(map);
- event->mmap.pgoff = map->pgoff;
+ event->mmap.pgoff = map__pgoff(map);
event->mmap.pid = machine->pid;
strlcpy(event->mmap.filename, kmap->name, PATH_MAX);
prot & PROT_WRITE ? 'w' : '-',
prot & PROT_EXEC ? 'x' : '-',
map__flags(map) ? 's' : 'p',
- map->pgoff,
+ map__pgoff(map),
dso->id.ino, dso->name);
}
}
pr_info("WARN: %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as",
- map__start(map), map__end(map), map->pgoff, dso->name);
+ map__start(map), map__end(map), map__pgoff(map), dso->name);
if (mem_end != map__end(pair))
pr_info(":\nWARN: *%" PRIx64 "-%" PRIx64 " %" PRIx64,
- map__start(pair), map__end(pair), pair->pgoff);
+ map__start(pair), map__end(pair), map__pgoff(pair));
pr_info(" %s\n", dso->name);
pair->priv = 1;
}
if (!kmap || !is_entry_trampoline(kmap->name))
continue;
- dest_map = maps__find(kmaps, map->pgoff);
+ dest_map = maps__find(kmaps, map__pgoff(map));
if (dest_map != map)
- map->pgoff = map__map_ip(dest_map, map->pgoff);
+ map->pgoff = map__map_ip(dest_map, map__pgoff(map));
found = true;
}
if (found || machine->trampolines_mapped)
const struct dso *dso = map__dso(map);
return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n",
- map__start(map), map__end(map), map->pgoff, dso->name);
+ map__start(map), map__end(map), map__pgoff(map), dso->name);
}
size_t map__fprintf_dsoname(struct map *map, FILE *fp)
return rip;
if (dso->rel)
- return rip - map->pgoff;
+ return rip - map__pgoff(map);
/*
* kernel modules also have DSO_TYPE_USER in dso->kernel,
if (dso->kernel == DSO_SPACE__USER)
return rip + dso->text_offset;
- return map__unmap_ip(map, rip) - map->reloc;
+ return map__unmap_ip(map, rip) - map__reloc(map);
}
/**
return map__unmap_ip(map, ip);
if (dso->rel)
- return map__unmap_ip(map, ip + map->pgoff);
+ return map__unmap_ip(map, ip + map__pgoff(map));
/*
* kernel modules also have DSO_TYPE_USER in dso->kernel,
if (dso->kernel == DSO_SPACE__USER)
return map__unmap_ip(map, ip - dso->text_offset);
- return ip + map->reloc;
+ return ip + map__reloc(map);
}
bool map__contains_symbol(const struct map *map, const struct symbol *sym)
u64 map__dso_map_ip(const struct map *map, u64 ip)
{
- return ip - map__start(map) + map->pgoff;
+ return ip - map__start(map) + map__pgoff(map);
}
u64 map__dso_unmap_ip(const struct map *map, u64 ip)
{
- return ip + map__start(map) - map->pgoff;
+ return ip + map__start(map) - map__pgoff(map);
}
u64 identity__map_ip(const struct map *map __maybe_unused, u64 ip)
return map->end;
}
+static inline u64 map__pgoff(const struct map *map)
+{
+ return map->pgoff;
+}
+
+static inline u64 map__reloc(const struct map *map)
+{
+ return map->reloc;
+}
+
static inline u32 map__flags(const struct map *map)
{
return map->flags;
/* ref_reloc_sym is just a label. Need a special fix*/
reloc_sym = kernel_get_ref_reloc_sym(&map);
if (reloc_sym && strcmp(name, reloc_sym->name) == 0)
- *addr = (!map->reloc || reloc) ? reloc_sym->addr :
+ *addr = (!map__reloc(map) || reloc) ? reloc_sym->addr :
reloc_sym->unrelocated_addr;
else {
sym = machine__find_kernel_symbol_by_name(host_machine, name, &map);
if (!sym)
return -ENOENT;
*addr = map__unmap_ip(map, sym->start) -
- ((reloc) ? 0 : map->reloc) -
+ ((reloc) ? 0 : map__reloc(map)) -
((reladdr) ? map__start(map) : 0);
}
return 0;
"Consider identifying the final function used at run time and set the probe directly on that.\n",
pp->function);
} else
- address = map__unmap_ip(map, sym->start) - map->reloc;
+ address = map__unmap_ip(map, sym->start) - map__reloc(map);
break;
}
if (!address) {
free(tevs[i].point.symbol);
tevs[i].point.symbol = tmp;
tevs[i].point.offset = tevs[i].point.address -
- (map->reloc ? reloc_sym->unrelocated_addr :
+ (map__reloc(map) ? reloc_sym->unrelocated_addr :
reloc_sym->addr);
}
return skipped;
continue;
}
curr_map_dso = map__dso(curr_map);
- pos->start -= map__start(curr_map) - curr_map->pgoff;
+ pos->start -= map__start(curr_map) - map__pgoff(curr_map);
if (pos->end > map__end(curr_map))
pos->end = map__end(curr_map);
if (pos->end)
- pos->end -= map__start(curr_map) - curr_map->pgoff;
+ pos->end -= map__start(curr_map) - map__pgoff(curr_map);
symbols__insert(&curr_map_dso->symbols, pos);
++count;
}
if (new_map == replacement_map) {
map->start = map__start(new_map);
map->end = map__end(new_map);
- map->pgoff = new_map->pgoff;
+ map->pgoff = map__pgoff(new_map);
map->map_ip = new_map->map_ip;
map->unmap_ip = new_map->unmap_ip;
/* Ensure maps are correctly ordered */
Dwarf_Addr s;
dwfl_module_info(mod, NULL, &s, NULL, NULL, NULL, NULL, NULL);
- if (s != map__start(al->map) - al->map->pgoff)
+ if (s != map__start(al->map) - map__pgoff(al->map))
mod = 0;
}
if (!mod)
mod = dwfl_report_elf(ui->dwfl, dso->short_name, dso->long_name, -1,
- map__start(al->map) - al->map->pgoff, false);
+ map__start(al->map) - map__pgoff(al->map), false);
if (!mod) {
char filename[PATH_MAX];
if (dso__build_id_filename(dso, filename, sizeof(filename), false))
mod = dwfl_report_elf(ui->dwfl, dso->short_name, filename, -1,
- map__start(al->map) - al->map->pgoff, false);
+ map__start(al->map) - map__pgoff(al->map), false);
}
if (mod) {