perf_counter tools: Adjust symbols in ET_EXEC files too
[cascardo/linux.git] / tools / perf / util / symbol.h
index 0d1292b..7918cff 100644 (file)
@@ -2,24 +2,29 @@
 #define _PERF_SYMBOL_ 1
 
 #include <linux/types.h>
-#include "list.h"
-#include "rbtree.h"
+#include "types.h"
+#include <linux/list.h>
+#include <linux/rbtree.h>
+#include "module.h"
 
 struct symbol {
        struct rb_node  rb_node;
-       __u64           start;
-       __u64           end;
-       __u64           obj_start;
-       __u64           hist_sum;
-       __u64           *hist;
+       u64             start;
+       u64             end;
+       u64             obj_start;
+       u64             hist_sum;
+       u64             *hist;
+       struct module   *module;
+       void            *priv;
        char            name[0];
 };
 
 struct dso {
        struct list_head node;
        struct rb_root   syms;
+       struct symbol    *(*find_symbol)(struct dso *, u64 ip);
        unsigned int     sym_priv_size;
-       struct symbol    *(*find_symbol)(struct dso *, __u64 ip);
+       unsigned char    adjust_symbols;
        char             name[0];
 };
 
@@ -35,10 +40,11 @@ static inline void *dso__sym_priv(struct dso *self, struct symbol *sym)
        return ((void *)sym) - self->sym_priv_size;
 }
 
-struct symbol *dso__find_symbol(struct dso *self, __u64 ip);
+struct symbol *dso__find_symbol(struct dso *self, u64 ip);
 
 int dso__load_kernel(struct dso *self, const char *vmlinux,
-                    symbol_filter_t filter, int verbose);
+                    symbol_filter_t filter, int verbose, int modules);
+int dso__load_modules(struct dso *self, symbol_filter_t filter, int verbose);
 int dso__load(struct dso *self, symbol_filter_t filter, int verbose);
 
 size_t dso__fprintf(struct dso *self, FILE *fp);