-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 182318 b: refs/heads/master c: 4a58e61 h: refs/heads/master v: v3
- Loading branch information
Arnaldo Carvalho de Melo
authored and
Ingo Molnar
committed
Dec 28, 2009
1 parent
58f6481
commit c38bddb
Showing
6 changed files
with
81 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 06aae590033d1ae3c35b2920ef950cfc603e2a2d | ||
refs/heads/master: 4a58e61161074776aa34187ea369414ce4852394 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#ifndef __PERF_MAP_H | ||
#define __PERF_MAP_H | ||
|
||
#include <linux/compiler.h> | ||
#include <linux/list.h> | ||
#include <linux/rbtree.h> | ||
#include <linux/types.h> | ||
|
||
enum map_type { | ||
MAP__FUNCTION = 0, | ||
MAP__VARIABLE, | ||
}; | ||
|
||
#define MAP__NR_TYPES (MAP__VARIABLE + 1) | ||
|
||
struct dso; | ||
|
||
struct map { | ||
union { | ||
struct rb_node rb_node; | ||
struct list_head node; | ||
}; | ||
u64 start; | ||
u64 end; | ||
enum map_type type; | ||
u64 pgoff; | ||
u64 (*map_ip)(struct map *, u64); | ||
u64 (*unmap_ip)(struct map *, u64); | ||
struct dso *dso; | ||
}; | ||
|
||
static inline u64 map__map_ip(struct map *map, u64 ip) | ||
{ | ||
return ip - map->start + map->pgoff; | ||
} | ||
|
||
static inline u64 map__unmap_ip(struct map *map, u64 ip) | ||
{ | ||
return ip + map->start - map->pgoff; | ||
} | ||
|
||
static inline u64 identity__map_ip(struct map *map __used, u64 ip) | ||
{ | ||
return ip; | ||
} | ||
|
||
struct symbol; | ||
struct mmap_event; | ||
|
||
typedef int (*symbol_filter_t)(struct map *map, struct symbol *sym); | ||
|
||
void map__init(struct map *self, enum map_type type, | ||
u64 start, u64 end, u64 pgoff, struct dso *dso); | ||
struct map *map__new(struct mmap_event *event, enum map_type, | ||
char *cwd, int cwdlen); | ||
void map__delete(struct map *self); | ||
struct map *map__clone(struct map *self); | ||
int map__overlap(struct map *l, struct map *r); | ||
size_t map__fprintf(struct map *self, FILE *fp); | ||
|
||
struct perf_session; | ||
|
||
int map__load(struct map *self, struct perf_session *session, | ||
symbol_filter_t filter); | ||
struct symbol *map__find_symbol(struct map *self, struct perf_session *session, | ||
u64 addr, symbol_filter_t filter); | ||
struct symbol *map__find_symbol_by_name(struct map *self, const char *name, | ||
struct perf_session *session, | ||
symbol_filter_t filter); | ||
void map__fixup_start(struct map *self); | ||
void map__fixup_end(struct map *self); | ||
|
||
#endif /* __PERF_MAP_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters