diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2009-08-12 05:07:25 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2009-08-12 06:37:37 -0400 |
commit | 66e274f3b8d7fc89d38997e85b900e188f8d5cc0 (patch) | |
tree | 5a0de899b891b2ce8440d2a3275b4ae7cb88b6c3 /tools/perf/util/event.h | |
parent | 1fe2c1066ce6a30bda7b27785ee3d9b8e62ffbbd (diff) |
perf tools: Factorize the map helpers
Factorize the dso mapping helpers into a single purpose common file
"util/map.c"
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Brice Goglin <Brice.Goglin@inria.fr>
Diffstat (limited to 'tools/perf/util/event.h')
-rw-r--r-- | tools/perf/util/event.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index 91e2fe589f27..d26dc887ce52 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h | |||
@@ -1,4 +1,8 @@ | |||
1 | #ifndef __PERF_EVENT_H | ||
2 | #define __PERF_EVENT_H | ||
1 | #include "../perf.h" | 3 | #include "../perf.h" |
4 | #include "util.h" | ||
5 | #include <linux/list.h> | ||
2 | 6 | ||
3 | struct ip_event { | 7 | struct ip_event { |
4 | struct perf_event_header header; | 8 | struct perf_event_header header; |
@@ -52,3 +56,29 @@ typedef union event_union { | |||
52 | struct lost_event lost; | 56 | struct lost_event lost; |
53 | struct read_event read; | 57 | struct read_event read; |
54 | } event_t; | 58 | } event_t; |
59 | |||
60 | struct map { | ||
61 | struct list_head node; | ||
62 | u64 start; | ||
63 | u64 end; | ||
64 | u64 pgoff; | ||
65 | u64 (*map_ip)(struct map *, u64); | ||
66 | struct dso *dso; | ||
67 | }; | ||
68 | |||
69 | static inline u64 map__map_ip(struct map *map, u64 ip) | ||
70 | { | ||
71 | return ip - map->start + map->pgoff; | ||
72 | } | ||
73 | |||
74 | static inline u64 vdso__map_ip(struct map *map __used, u64 ip) | ||
75 | { | ||
76 | return ip; | ||
77 | } | ||
78 | |||
79 | struct map *map__new(struct mmap_event *event, char *cwd, int cwdlen); | ||
80 | struct map *map__clone(struct map *self); | ||
81 | int map__overlap(struct map *l, struct map *r); | ||
82 | size_t map__fprintf(struct map *self, FILE *fp); | ||
83 | |||
84 | #endif | ||