aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/symbol.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2009-06-19 08:21:42 -0400
committerIngo Molnar <mingo@elte.hu>2009-06-19 12:25:47 -0400
commit9cffa8d53335d891cc0ecb3824a67118b3ee4b2f (patch)
tree420e0f96198f0e78aedd006280826b8cf0839820 /tools/perf/util/symbol.c
parentb49a9e7e72103ea91946453c19703a4dfa1994fe (diff)
perf_counter tools: Define and use our own u64, s64 etc. definitions
On 64-bit powerpc, __u64 is defined to be unsigned long rather than unsigned long long. This causes compiler warnings every time we print a __u64 value with %Lx. Rather than changing __u64, we define our own u64 to be unsigned long long on all architectures, and similarly s64 as signed long long. For consistency we also define u32, s32, u16, s16, u8 and s8. These definitions are put in a new header, types.h, because these definitions are needed in util/string.h and util/symbol.h. The main change here is the mechanical change of __[us]{64,32,16,8} to remove the "__". The other changes are: * Create types.h * Include types.h in perf.h, util/string.h and util/symbol.h * Add types.h to the LIB_H definition in Makefile * Added (u64) casts in process_overflow_event() and print_sym_table() to kill two remaining warnings. Signed-off-by: Paul Mackerras <paulus@samba.org> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: benh@kernel.crashing.org LKML-Reference: <19003.33494.495844.956580@cargo.ozlabs.ibm.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/symbol.c')
-rw-r--r--tools/perf/util/symbol.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 49a55f813712..86e14375e74e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -9,9 +9,9 @@
9 9
10const char *sym_hist_filter; 10const char *sym_hist_filter;
11 11
12static struct symbol *symbol__new(__u64 start, __u64 len, 12static struct symbol *symbol__new(u64 start, u64 len,
13 const char *name, unsigned int priv_size, 13 const char *name, unsigned int priv_size,
14 __u64 obj_start, int verbose) 14 u64 obj_start, int verbose)
15{ 15{
16 size_t namelen = strlen(name) + 1; 16 size_t namelen = strlen(name) + 1;
17 struct symbol *self = calloc(1, priv_size + sizeof(*self) + namelen); 17 struct symbol *self = calloc(1, priv_size + sizeof(*self) + namelen);
@@ -21,14 +21,14 @@ static struct symbol *symbol__new(__u64 start, __u64 len,
21 21
22 if (verbose >= 2) 22 if (verbose >= 2)
23 printf("new symbol: %016Lx [%08lx]: %s, hist: %p, obj_start: %p\n", 23 printf("new symbol: %016Lx [%08lx]: %s, hist: %p, obj_start: %p\n",
24 (__u64)start, (unsigned long)len, name, self->hist, (void *)(unsigned long)obj_start); 24 (u64)start, (unsigned long)len, name, self->hist, (void *)(unsigned long)obj_start);
25 25
26 self->obj_start= obj_start; 26 self->obj_start= obj_start;
27 self->hist = NULL; 27 self->hist = NULL;
28 self->hist_sum = 0; 28 self->hist_sum = 0;
29 29
30 if (sym_hist_filter && !strcmp(name, sym_hist_filter)) 30 if (sym_hist_filter && !strcmp(name, sym_hist_filter))
31 self->hist = calloc(sizeof(__u64), len); 31 self->hist = calloc(sizeof(u64), len);
32 32
33 if (priv_size) { 33 if (priv_size) {
34 memset(self, 0, priv_size); 34 memset(self, 0, priv_size);
@@ -89,7 +89,7 @@ static void dso__insert_symbol(struct dso *self, struct symbol *sym)
89{ 89{
90 struct rb_node **p = &self->syms.rb_node; 90 struct rb_node **p = &self->syms.rb_node;
91 struct rb_node *parent = NULL; 91 struct rb_node *parent = NULL;
92 const __u64 ip = sym->start; 92 const u64 ip = sym->start;
93 struct symbol *s; 93 struct symbol *s;
94 94
95 while (*p != NULL) { 95 while (*p != NULL) {
@@ -104,7 +104,7 @@ static void dso__insert_symbol(struct dso *self, struct symbol *sym)
104 rb_insert_color(&sym->rb_node, &self->syms); 104 rb_insert_color(&sym->rb_node, &self->syms);
105} 105}
106 106
107struct symbol *dso__find_symbol(struct dso *self, __u64 ip) 107struct symbol *dso__find_symbol(struct dso *self, u64 ip)
108{ 108{
109 struct rb_node *n; 109 struct rb_node *n;
110 110
@@ -151,7 +151,7 @@ static int dso__load_kallsyms(struct dso *self, symbol_filter_t filter, int verb
151 goto out_failure; 151 goto out_failure;
152 152
153 while (!feof(file)) { 153 while (!feof(file)) {
154 __u64 start; 154 u64 start;
155 struct symbol *sym; 155 struct symbol *sym;
156 int line_len, len; 156 int line_len, len;
157 char symbol_type; 157 char symbol_type;
@@ -232,7 +232,7 @@ static int dso__load_perf_map(struct dso *self, symbol_filter_t filter, int verb
232 goto out_failure; 232 goto out_failure;
233 233
234 while (!feof(file)) { 234 while (!feof(file)) {
235 __u64 start, size; 235 u64 start, size;
236 struct symbol *sym; 236 struct symbol *sym;
237 int line_len, len; 237 int line_len, len;
238 238
@@ -353,7 +353,7 @@ static int dso__synthesize_plt_symbols(struct dso *self, Elf *elf,
353{ 353{
354 uint32_t nr_rel_entries, idx; 354 uint32_t nr_rel_entries, idx;
355 GElf_Sym sym; 355 GElf_Sym sym;
356 __u64 plt_offset; 356 u64 plt_offset;
357 GElf_Shdr shdr_plt; 357 GElf_Shdr shdr_plt;
358 struct symbol *f; 358 struct symbol *f;
359 GElf_Shdr shdr_rel_plt; 359 GElf_Shdr shdr_rel_plt;
@@ -523,7 +523,7 @@ static int dso__load_sym(struct dso *self, int fd, const char *name,
523 523
524 elf_symtab__for_each_symbol(syms, nr_syms, index, sym) { 524 elf_symtab__for_each_symbol(syms, nr_syms, index, sym) {
525 struct symbol *f; 525 struct symbol *f;
526 __u64 obj_start; 526 u64 obj_start;
527 527
528 if (!elf_sym__is_function(&sym)) 528 if (!elf_sym__is_function(&sym))
529 continue; 529 continue;