aboutsummaryrefslogtreecommitdiffstats
path: root/tools
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
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')
-rw-r--r--tools/perf/Makefile1
-rw-r--r--tools/perf/builtin-annotate.c66
-rw-r--r--tools/perf/builtin-record.c20
-rw-r--r--tools/perf/builtin-report.c84
-rw-r--r--tools/perf/builtin-stat.c62
-rw-r--r--tools/perf/builtin-top.c24
-rw-r--r--tools/perf/perf.h7
-rw-r--r--tools/perf/types.h17
-rw-r--r--tools/perf/util/parse-events.c10
-rw-r--r--tools/perf/util/string.c2
-rw-r--r--tools/perf/util/string.h4
-rw-r--r--tools/perf/util/symbol.c20
-rw-r--r--tools/perf/util/symbol.h15
13 files changed, 176 insertions, 156 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 672c5f069c6..36d7eef4991 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -290,6 +290,7 @@ LIB_FILE=libperf.a
290 290
291LIB_H += ../../include/linux/perf_counter.h 291LIB_H += ../../include/linux/perf_counter.h
292LIB_H += perf.h 292LIB_H += perf.h
293LIB_H += types.h
293LIB_H += util/list.h 294LIB_H += util/list.h
294LIB_H += util/rbtree.h 295LIB_H += util/rbtree.h
295LIB_H += util/levenshtein.h 296LIB_H += util/levenshtein.h
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 94cea678fd7..7e58e3ad150 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -50,35 +50,35 @@ static unsigned long mmap_window = 32;
50 50
51struct ip_event { 51struct ip_event {
52 struct perf_event_header header; 52 struct perf_event_header header;
53 __u64 ip; 53 u64 ip;
54 __u32 pid, tid; 54 u32 pid, tid;
55}; 55};
56 56
57struct mmap_event { 57struct mmap_event {
58 struct perf_event_header header; 58 struct perf_event_header header;
59 __u32 pid, tid; 59 u32 pid, tid;
60 __u64 start; 60 u64 start;
61 __u64 len; 61 u64 len;
62 __u64 pgoff; 62 u64 pgoff;
63 char filename[PATH_MAX]; 63 char filename[PATH_MAX];
64}; 64};
65 65
66struct comm_event { 66struct comm_event {
67 struct perf_event_header header; 67 struct perf_event_header header;
68 __u32 pid, tid; 68 u32 pid, tid;
69 char comm[16]; 69 char comm[16];
70}; 70};
71 71
72struct fork_event { 72struct fork_event {
73 struct perf_event_header header; 73 struct perf_event_header header;
74 __u32 pid, ppid; 74 u32 pid, ppid;
75}; 75};
76 76
77struct period_event { 77struct period_event {
78 struct perf_event_header header; 78 struct perf_event_header header;
79 __u64 time; 79 u64 time;
80 __u64 id; 80 u64 id;
81 __u64 sample_period; 81 u64 sample_period;
82}; 82};
83 83
84typedef union event_union { 84typedef union event_union {
@@ -158,7 +158,7 @@ static void dsos__fprintf(FILE *fp)
158 dso__fprintf(pos, fp); 158 dso__fprintf(pos, fp);
159} 159}
160 160
161static struct symbol *vdso__find_symbol(struct dso *dso, __u64 ip) 161static struct symbol *vdso__find_symbol(struct dso *dso, u64 ip)
162{ 162{
163 return dso__find_symbol(kernel_dso, ip); 163 return dso__find_symbol(kernel_dso, ip);
164} 164}
@@ -191,19 +191,19 @@ static int load_kernel(void)
191 191
192struct map { 192struct map {
193 struct list_head node; 193 struct list_head node;
194 __u64 start; 194 u64 start;
195 __u64 end; 195 u64 end;
196 __u64 pgoff; 196 u64 pgoff;
197 __u64 (*map_ip)(struct map *, __u64); 197 u64 (*map_ip)(struct map *, u64);
198 struct dso *dso; 198 struct dso *dso;
199}; 199};
200 200
201static __u64 map__map_ip(struct map *map, __u64 ip) 201static u64 map__map_ip(struct map *map, u64 ip)
202{ 202{
203 return ip - map->start + map->pgoff; 203 return ip - map->start + map->pgoff;
204} 204}
205 205
206static __u64 vdso__map_ip(struct map *map, __u64 ip) 206static u64 vdso__map_ip(struct map *map, u64 ip)
207{ 207{
208 return ip; 208 return ip;
209} 209}
@@ -386,7 +386,7 @@ static int thread__fork(struct thread *self, struct thread *parent)
386 return 0; 386 return 0;
387} 387}
388 388
389static struct map *thread__find_map(struct thread *self, __u64 ip) 389static struct map *thread__find_map(struct thread *self, u64 ip)
390{ 390{
391 struct map *pos; 391 struct map *pos;
392 392
@@ -427,7 +427,7 @@ struct hist_entry {
427 struct map *map; 427 struct map *map;
428 struct dso *dso; 428 struct dso *dso;
429 struct symbol *sym; 429 struct symbol *sym;
430 __u64 ip; 430 u64 ip;
431 char level; 431 char level;
432 432
433 uint32_t count; 433 uint32_t count;
@@ -532,7 +532,7 @@ sort__dso_print(FILE *fp, struct hist_entry *self)
532 if (self->dso) 532 if (self->dso)
533 return fprintf(fp, "%-25s", self->dso->name); 533 return fprintf(fp, "%-25s", self->dso->name);
534 534
535 return fprintf(fp, "%016llx ", (__u64)self->ip); 535 return fprintf(fp, "%016llx ", (u64)self->ip);
536} 536}
537 537
538static struct sort_entry sort_dso = { 538static struct sort_entry sort_dso = {
@@ -546,7 +546,7 @@ static struct sort_entry sort_dso = {
546static int64_t 546static int64_t
547sort__sym_cmp(struct hist_entry *left, struct hist_entry *right) 547sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
548{ 548{
549 __u64 ip_l, ip_r; 549 u64 ip_l, ip_r;
550 550
551 if (left->sym == right->sym) 551 if (left->sym == right->sym)
552 return 0; 552 return 0;
@@ -563,13 +563,13 @@ sort__sym_print(FILE *fp, struct hist_entry *self)
563 size_t ret = 0; 563 size_t ret = 0;
564 564
565 if (verbose) 565 if (verbose)
566 ret += fprintf(fp, "%#018llx ", (__u64)self->ip); 566 ret += fprintf(fp, "%#018llx ", (u64)self->ip);
567 567
568 if (self->sym) { 568 if (self->sym) {
569 ret += fprintf(fp, "[%c] %s", 569 ret += fprintf(fp, "[%c] %s",
570 self->dso == kernel_dso ? 'k' : '.', self->sym->name); 570 self->dso == kernel_dso ? 'k' : '.', self->sym->name);
571 } else { 571 } else {
572 ret += fprintf(fp, "%#016llx", (__u64)self->ip); 572 ret += fprintf(fp, "%#016llx", (u64)self->ip);
573 } 573 }
574 574
575 return ret; 575 return ret;
@@ -660,7 +660,7 @@ hist_entry__collapse(struct hist_entry *left, struct hist_entry *right)
660/* 660/*
661 * collect histogram counts 661 * collect histogram counts
662 */ 662 */
663static void hist_hit(struct hist_entry *he, __u64 ip) 663static void hist_hit(struct hist_entry *he, u64 ip)
664{ 664{
665 unsigned int sym_size, offset; 665 unsigned int sym_size, offset;
666 struct symbol *sym = he->sym; 666 struct symbol *sym = he->sym;
@@ -689,7 +689,7 @@ static void hist_hit(struct hist_entry *he, __u64 ip)
689 689
690static int 690static int
691hist_entry__add(struct thread *thread, struct map *map, struct dso *dso, 691hist_entry__add(struct thread *thread, struct map *map, struct dso *dso,
692 struct symbol *sym, __u64 ip, char level) 692 struct symbol *sym, u64 ip, char level)
693{ 693{
694 struct rb_node **p = &hist.rb_node; 694 struct rb_node **p = &hist.rb_node;
695 struct rb_node *parent = NULL; 695 struct rb_node *parent = NULL;
@@ -861,7 +861,7 @@ process_overflow_event(event_t *event, unsigned long offset, unsigned long head)
861 int show = 0; 861 int show = 0;
862 struct dso *dso = NULL; 862 struct dso *dso = NULL;
863 struct thread *thread = threads__findnew(event->ip.pid); 863 struct thread *thread = threads__findnew(event->ip.pid);
864 __u64 ip = event->ip.ip; 864 u64 ip = event->ip.ip;
865 struct map *map = NULL; 865 struct map *map = NULL;
866 866
867 dprintf("%p [%p]: PERF_EVENT (IP, %d): %d: %p\n", 867 dprintf("%p [%p]: PERF_EVENT (IP, %d): %d: %p\n",
@@ -1062,14 +1062,14 @@ static char *get_color(double percent)
1062} 1062}
1063 1063
1064static int 1064static int
1065parse_line(FILE *file, struct symbol *sym, __u64 start, __u64 len) 1065parse_line(FILE *file, struct symbol *sym, u64 start, u64 len)
1066{ 1066{
1067 char *line = NULL, *tmp, *tmp2; 1067 char *line = NULL, *tmp, *tmp2;
1068 static const char *prev_line; 1068 static const char *prev_line;
1069 static const char *prev_color; 1069 static const char *prev_color;
1070 unsigned int offset; 1070 unsigned int offset;
1071 size_t line_len; 1071 size_t line_len;
1072 __u64 line_ip; 1072 u64 line_ip;
1073 int ret; 1073 int ret;
1074 char *c; 1074 char *c;
1075 1075
@@ -1191,7 +1191,7 @@ static void free_source_line(struct symbol *sym, int len)
1191 1191
1192/* Get the filename:line for the colored entries */ 1192/* Get the filename:line for the colored entries */
1193static void 1193static void
1194get_source_line(struct symbol *sym, __u64 start, int len, char *filename) 1194get_source_line(struct symbol *sym, u64 start, int len, char *filename)
1195{ 1195{
1196 int i; 1196 int i;
1197 char cmd[PATH_MAX * 2]; 1197 char cmd[PATH_MAX * 2];
@@ -1209,7 +1209,7 @@ get_source_line(struct symbol *sym, __u64 start, int len, char *filename)
1209 for (i = 0; i < len; i++) { 1209 for (i = 0; i < len; i++) {
1210 char *path = NULL; 1210 char *path = NULL;
1211 size_t line_len; 1211 size_t line_len;
1212 __u64 offset; 1212 u64 offset;
1213 FILE *fp; 1213 FILE *fp;
1214 1214
1215 sym_ext[i].percent = 100.0 * sym->hist[i] / sym->hist_sum; 1215 sym_ext[i].percent = 100.0 * sym->hist[i] / sym->hist_sum;
@@ -1269,7 +1269,7 @@ static void print_summary(char *filename)
1269static void annotate_sym(struct dso *dso, struct symbol *sym) 1269static void annotate_sym(struct dso *dso, struct symbol *sym)
1270{ 1270{
1271 char *filename = dso->name; 1271 char *filename = dso->name;
1272 __u64 start, end, len; 1272 u64 start, end, len;
1273 char command[PATH_MAX*2]; 1273 char command[PATH_MAX*2];
1274 FILE *file; 1274 FILE *file;
1275 1275
@@ -1297,7 +1297,7 @@ static void annotate_sym(struct dso *dso, struct symbol *sym)
1297 if (verbose >= 2) 1297 if (verbose >= 2)
1298 printf("annotating [%p] %30s : [%p] %30s\n", dso, dso->name, sym, sym->name); 1298 printf("annotating [%p] %30s : [%p] %30s\n", dso, dso->name, sym, sym->name);
1299 1299
1300 sprintf(command, "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS %s", (__u64)start, (__u64)end, filename); 1300 sprintf(command, "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS %s", (u64)start, (u64)end, filename);
1301 1301
1302 if (verbose >= 3) 1302 if (verbose >= 3)
1303 printf("doing: %s\n", command); 1303 printf("doing: %s\n", command);
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 28304677c73..e2cebc053bd 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -44,7 +44,7 @@ static long samples;
44static struct timeval last_read; 44static struct timeval last_read;
45static struct timeval this_read; 45static struct timeval this_read;
46 46
47static __u64 bytes_written; 47static u64 bytes_written;
48 48
49static struct pollfd event_array[MAX_NR_CPUS * MAX_COUNTERS]; 49static struct pollfd event_array[MAX_NR_CPUS * MAX_COUNTERS];
50 50
@@ -56,18 +56,18 @@ static struct perf_file_header file_header;
56 56
57struct mmap_event { 57struct mmap_event {
58 struct perf_event_header header; 58 struct perf_event_header header;
59 __u32 pid; 59 u32 pid;
60 __u32 tid; 60 u32 tid;
61 __u64 start; 61 u64 start;
62 __u64 len; 62 u64 len;
63 __u64 pgoff; 63 u64 pgoff;
64 char filename[PATH_MAX]; 64 char filename[PATH_MAX];
65}; 65};
66 66
67struct comm_event { 67struct comm_event {
68 struct perf_event_header header; 68 struct perf_event_header header;
69 __u32 pid; 69 u32 pid;
70 __u32 tid; 70 u32 tid;
71 char comm[16]; 71 char comm[16];
72}; 72};
73 73
@@ -238,7 +238,7 @@ static void pid_synthesize_comm_event(pid_t pid, int full)
238 238
239 comm_ev.pid = pid; 239 comm_ev.pid = pid;
240 comm_ev.header.type = PERF_EVENT_COMM; 240 comm_ev.header.type = PERF_EVENT_COMM;
241 size = ALIGN(size, sizeof(__u64)); 241 size = ALIGN(size, sizeof(u64));
242 comm_ev.header.size = sizeof(comm_ev) - (sizeof(comm_ev.comm) - size); 242 comm_ev.header.size = sizeof(comm_ev) - (sizeof(comm_ev.comm) - size);
243 243
244 if (!full) { 244 if (!full) {
@@ -315,7 +315,7 @@ static void pid_synthesize_mmap_samples(pid_t pid)
315 size = strlen(execname); 315 size = strlen(execname);
316 execname[size - 1] = '\0'; /* Remove \n */ 316 execname[size - 1] = '\0'; /* Remove \n */
317 memcpy(mmap_ev.filename, execname, size); 317 memcpy(mmap_ev.filename, execname, size);
318 size = ALIGN(size, sizeof(__u64)); 318 size = ALIGN(size, sizeof(u64));
319 mmap_ev.len -= mmap_ev.start; 319 mmap_ev.len -= mmap_ev.start;
320 mmap_ev.header.size = (sizeof(mmap_ev) - 320 mmap_ev.header.size = (sizeof(mmap_ev) -
321 (sizeof(mmap_ev.filename) - size)); 321 (sizeof(mmap_ev.filename) - size));
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 37b26ecb0d0..de1b97845e9 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -54,47 +54,47 @@ static int exclude_other = 1;
54 54
55struct ip_event { 55struct ip_event {
56 struct perf_event_header header; 56 struct perf_event_header header;
57 __u64 ip; 57 u64 ip;
58 __u32 pid, tid; 58 u32 pid, tid;
59 unsigned char __more_data[]; 59 unsigned char __more_data[];
60}; 60};
61 61
62struct ip_callchain { 62struct ip_callchain {
63 __u64 nr; 63 u64 nr;
64 __u64 ips[0]; 64 u64 ips[0];
65}; 65};
66 66
67struct mmap_event { 67struct mmap_event {
68 struct perf_event_header header; 68 struct perf_event_header header;
69 __u32 pid, tid; 69 u32 pid, tid;
70 __u64 start; 70 u64 start;
71 __u64 len; 71 u64 len;
72 __u64 pgoff; 72 u64 pgoff;
73 char filename[PATH_MAX]; 73 char filename[PATH_MAX];
74}; 74};
75 75
76struct comm_event { 76struct comm_event {
77 struct perf_event_header header; 77 struct perf_event_header header;
78 __u32 pid, tid; 78 u32 pid, tid;
79 char comm[16]; 79 char comm[16];
80}; 80};
81 81
82struct fork_event { 82struct fork_event {
83 struct perf_event_header header; 83 struct perf_event_header header;
84 __u32 pid, ppid; 84 u32 pid, ppid;
85}; 85};
86 86
87struct period_event { 87struct period_event {
88 struct perf_event_header header; 88 struct perf_event_header header;
89 __u64 time; 89 u64 time;
90 __u64 id; 90 u64 id;
91 __u64 sample_period; 91 u64 sample_period;
92}; 92};
93 93
94struct lost_event { 94struct lost_event {
95 struct perf_event_header header; 95 struct perf_event_header header;
96 __u64 id; 96 u64 id;
97 __u64 lost; 97 u64 lost;
98}; 98};
99 99
100typedef union event_union { 100typedef union event_union {
@@ -163,7 +163,7 @@ static void dsos__fprintf(FILE *fp)
163 dso__fprintf(pos, fp); 163 dso__fprintf(pos, fp);
164} 164}
165 165
166static struct symbol *vdso__find_symbol(struct dso *dso, __u64 ip) 166static struct symbol *vdso__find_symbol(struct dso *dso, u64 ip)
167{ 167{
168 return dso__find_symbol(kernel_dso, ip); 168 return dso__find_symbol(kernel_dso, ip);
169} 169}
@@ -210,19 +210,19 @@ static int strcommon(const char *pathname)
210 210
211struct map { 211struct map {
212 struct list_head node; 212 struct list_head node;
213 __u64 start; 213 u64 start;
214 __u64 end; 214 u64 end;
215 __u64 pgoff; 215 u64 pgoff;
216 __u64 (*map_ip)(struct map *, __u64); 216 u64 (*map_ip)(struct map *, u64);
217 struct dso *dso; 217 struct dso *dso;
218}; 218};
219 219
220static __u64 map__map_ip(struct map *map, __u64 ip) 220static u64 map__map_ip(struct map *map, u64 ip)
221{ 221{
222 return ip - map->start + map->pgoff; 222 return ip - map->start + map->pgoff;
223} 223}
224 224
225static __u64 vdso__map_ip(struct map *map, __u64 ip) 225static u64 vdso__map_ip(struct map *map, u64 ip)
226{ 226{
227 return ip; 227 return ip;
228} 228}
@@ -429,7 +429,7 @@ static int thread__fork(struct thread *self, struct thread *parent)
429 return 0; 429 return 0;
430} 430}
431 431
432static struct map *thread__find_map(struct thread *self, __u64 ip) 432static struct map *thread__find_map(struct thread *self, u64 ip)
433{ 433{
434 struct map *pos; 434 struct map *pos;
435 435
@@ -471,10 +471,10 @@ struct hist_entry {
471 struct dso *dso; 471 struct dso *dso;
472 struct symbol *sym; 472 struct symbol *sym;
473 struct symbol *parent; 473 struct symbol *parent;
474 __u64 ip; 474 u64 ip;
475 char level; 475 char level;
476 476
477 __u64 count; 477 u64 count;
478}; 478};
479 479
480/* 480/*
@@ -574,7 +574,7 @@ sort__dso_print(FILE *fp, struct hist_entry *self)
574 if (self->dso) 574 if (self->dso)
575 return fprintf(fp, "%-25s", self->dso->name); 575 return fprintf(fp, "%-25s", self->dso->name);
576 576
577 return fprintf(fp, "%016llx ", (__u64)self->ip); 577 return fprintf(fp, "%016llx ", (u64)self->ip);
578} 578}
579 579
580static struct sort_entry sort_dso = { 580static struct sort_entry sort_dso = {
@@ -588,7 +588,7 @@ static struct sort_entry sort_dso = {
588static int64_t 588static int64_t
589sort__sym_cmp(struct hist_entry *left, struct hist_entry *right) 589sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
590{ 590{
591 __u64 ip_l, ip_r; 591 u64 ip_l, ip_r;
592 592
593 if (left->sym == right->sym) 593 if (left->sym == right->sym)
594 return 0; 594 return 0;
@@ -605,13 +605,13 @@ sort__sym_print(FILE *fp, struct hist_entry *self)
605 size_t ret = 0; 605 size_t ret = 0;
606 606
607 if (verbose) 607 if (verbose)
608 ret += fprintf(fp, "%#018llx ", (__u64)self->ip); 608 ret += fprintf(fp, "%#018llx ", (u64)self->ip);
609 609
610 if (self->sym) { 610 if (self->sym) {
611 ret += fprintf(fp, "[%c] %s", 611 ret += fprintf(fp, "[%c] %s",
612 self->dso == kernel_dso ? 'k' : '.', self->sym->name); 612 self->dso == kernel_dso ? 'k' : '.', self->sym->name);
613 } else { 613 } else {
614 ret += fprintf(fp, "%#016llx", (__u64)self->ip); 614 ret += fprintf(fp, "%#016llx", (u64)self->ip);
615 } 615 }
616 616
617 return ret; 617 return ret;
@@ -745,7 +745,7 @@ hist_entry__collapse(struct hist_entry *left, struct hist_entry *right)
745} 745}
746 746
747static size_t 747static size_t
748hist_entry__fprintf(FILE *fp, struct hist_entry *self, __u64 total_samples) 748hist_entry__fprintf(FILE *fp, struct hist_entry *self, u64 total_samples)
749{ 749{
750 struct sort_entry *se; 750 struct sort_entry *se;
751 size_t ret; 751 size_t ret;
@@ -793,7 +793,7 @@ hist_entry__fprintf(FILE *fp, struct hist_entry *self, __u64 total_samples)
793 793
794static struct symbol * 794static struct symbol *
795resolve_symbol(struct thread *thread, struct map **mapp, 795resolve_symbol(struct thread *thread, struct map **mapp,
796 struct dso **dsop, __u64 *ipp) 796 struct dso **dsop, u64 *ipp)
797{ 797{
798 struct dso *dso = dsop ? *dsop : NULL; 798 struct dso *dso = dsop ? *dsop : NULL;
799 struct map *map = mapp ? *mapp : NULL; 799 struct map *map = mapp ? *mapp : NULL;
@@ -852,8 +852,8 @@ static int call__match(struct symbol *sym)
852 852
853static int 853static int
854hist_entry__add(struct thread *thread, struct map *map, struct dso *dso, 854hist_entry__add(struct thread *thread, struct map *map, struct dso *dso,
855 struct symbol *sym, __u64 ip, struct ip_callchain *chain, 855 struct symbol *sym, u64 ip, struct ip_callchain *chain,
856 char level, __u64 count) 856 char level, u64 count)
857{ 857{
858 struct rb_node **p = &hist.rb_node; 858 struct rb_node **p = &hist.rb_node;
859 struct rb_node *parent = NULL; 859 struct rb_node *parent = NULL;
@@ -871,11 +871,11 @@ hist_entry__add(struct thread *thread, struct map *map, struct dso *dso,
871 int cmp; 871 int cmp;
872 872
873 if (sort__has_parent && chain) { 873 if (sort__has_parent && chain) {
874 __u64 context = PERF_CONTEXT_MAX; 874 u64 context = PERF_CONTEXT_MAX;
875 int i; 875 int i;
876 876
877 for (i = 0; i < chain->nr; i++) { 877 for (i = 0; i < chain->nr; i++) {
878 __u64 ip = chain->ips[i]; 878 u64 ip = chain->ips[i];
879 struct dso *dso = NULL; 879 struct dso *dso = NULL;
880 struct symbol *sym; 880 struct symbol *sym;
881 881
@@ -1032,7 +1032,7 @@ static void output__resort(void)
1032 } 1032 }
1033} 1033}
1034 1034
1035static size_t output__fprintf(FILE *fp, __u64 total_samples) 1035static size_t output__fprintf(FILE *fp, u64 total_samples)
1036{ 1036{
1037 struct hist_entry *pos; 1037 struct hist_entry *pos;
1038 struct sort_entry *se; 1038 struct sort_entry *se;
@@ -1041,7 +1041,7 @@ static size_t output__fprintf(FILE *fp, __u64 total_samples)
1041 1041
1042 fprintf(fp, "\n"); 1042 fprintf(fp, "\n");
1043 fprintf(fp, "#\n"); 1043 fprintf(fp, "#\n");
1044 fprintf(fp, "# (%Ld samples)\n", (__u64)total_samples); 1044 fprintf(fp, "# (%Ld samples)\n", (u64)total_samples);
1045 fprintf(fp, "#\n"); 1045 fprintf(fp, "#\n");
1046 1046
1047 fprintf(fp, "# Overhead"); 1047 fprintf(fp, "# Overhead");
@@ -1108,7 +1108,7 @@ static int validate_chain(struct ip_callchain *chain, event_t *event)
1108 chain_size = event->header.size; 1108 chain_size = event->header.size;
1109 chain_size -= (unsigned long)&event->ip.__more_data - (unsigned long)event; 1109 chain_size -= (unsigned long)&event->ip.__more_data - (unsigned long)event;
1110 1110
1111 if (chain->nr*sizeof(__u64) > chain_size) 1111 if (chain->nr*sizeof(u64) > chain_size)
1112 return -1; 1112 return -1;
1113 1113
1114 return 0; 1114 return 0;
@@ -1121,15 +1121,15 @@ process_overflow_event(event_t *event, unsigned long offset, unsigned long head)
1121 int show = 0; 1121 int show = 0;
1122 struct dso *dso = NULL; 1122 struct dso *dso = NULL;
1123 struct thread *thread = threads__findnew(event->ip.pid); 1123 struct thread *thread = threads__findnew(event->ip.pid);
1124 __u64 ip = event->ip.ip; 1124 u64 ip = event->ip.ip;
1125 __u64 period = 1; 1125 u64 period = 1;
1126 struct map *map = NULL; 1126 struct map *map = NULL;
1127 void *more_data = event->ip.__more_data; 1127 void *more_data = event->ip.__more_data;
1128 struct ip_callchain *chain = NULL; 1128 struct ip_callchain *chain = NULL;
1129 1129
1130 if (event->header.type & PERF_SAMPLE_PERIOD) { 1130 if (event->header.type & PERF_SAMPLE_PERIOD) {
1131 period = *(__u64 *)more_data; 1131 period = *(u64 *)more_data;
1132 more_data += sizeof(__u64); 1132 more_data += sizeof(u64);
1133 } 1133 }
1134 1134
1135 dprintf("%p [%p]: PERF_EVENT (IP, %d): %d: %p period: %Ld\n", 1135 dprintf("%p [%p]: PERF_EVENT (IP, %d): %d: %p period: %Ld\n",
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index e5b3c0ff03a..6d3eeac1ea2 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -85,29 +85,29 @@ static const unsigned int default_count[] = {
85static int run_count = 1; 85static int run_count = 1;
86static int run_idx = 0; 86static int run_idx = 0;
87 87
88static __u64 event_res[MAX_RUN][MAX_COUNTERS][3]; 88static u64 event_res[MAX_RUN][MAX_COUNTERS][3];
89static __u64 event_scaled[MAX_RUN][MAX_COUNTERS]; 89static u64 event_scaled[MAX_RUN][MAX_COUNTERS];
90 90
91//static __u64 event_hist[MAX_RUN][MAX_COUNTERS][3]; 91//static u64 event_hist[MAX_RUN][MAX_COUNTERS][3];
92 92
93 93
94static __u64 runtime_nsecs[MAX_RUN]; 94static u64 runtime_nsecs[MAX_RUN];
95static __u64 walltime_nsecs[MAX_RUN]; 95static u64 walltime_nsecs[MAX_RUN];
96static __u64 runtime_cycles[MAX_RUN]; 96static u64 runtime_cycles[MAX_RUN];
97 97
98static __u64 event_res_avg[MAX_COUNTERS][3]; 98static u64 event_res_avg[MAX_COUNTERS][3];
99static __u64 event_res_noise[MAX_COUNTERS][3]; 99static u64 event_res_noise[MAX_COUNTERS][3];
100 100
101static __u64 event_scaled_avg[MAX_COUNTERS]; 101static u64 event_scaled_avg[MAX_COUNTERS];
102 102
103static __u64 runtime_nsecs_avg; 103static u64 runtime_nsecs_avg;
104static __u64 runtime_nsecs_noise; 104static u64 runtime_nsecs_noise;
105 105
106static __u64 walltime_nsecs_avg; 106static u64 walltime_nsecs_avg;
107static __u64 walltime_nsecs_noise; 107static u64 walltime_nsecs_noise;
108 108
109static __u64 runtime_cycles_avg; 109static u64 runtime_cycles_avg;
110static __u64 runtime_cycles_noise; 110static u64 runtime_cycles_noise;
111 111
112static void create_perf_stat_counter(int counter) 112static void create_perf_stat_counter(int counter)
113{ 113{
@@ -158,7 +158,7 @@ static inline int nsec_counter(int counter)
158 */ 158 */
159static void read_counter(int counter) 159static void read_counter(int counter)
160{ 160{
161 __u64 *count, single_count[3]; 161 u64 *count, single_count[3];
162 ssize_t res; 162 ssize_t res;
163 int cpu, nv; 163 int cpu, nv;
164 int scaled; 164 int scaled;
@@ -172,8 +172,8 @@ static void read_counter(int counter)
172 if (fd[cpu][counter] < 0) 172 if (fd[cpu][counter] < 0)
173 continue; 173 continue;
174 174
175 res = read(fd[cpu][counter], single_count, nv * sizeof(__u64)); 175 res = read(fd[cpu][counter], single_count, nv * sizeof(u64));
176 assert(res == nv * sizeof(__u64)); 176 assert(res == nv * sizeof(u64));
177 close(fd[cpu][counter]); 177 close(fd[cpu][counter]);
178 fd[cpu][counter] = -1; 178 fd[cpu][counter] = -1;
179 179
@@ -251,14 +251,14 @@ static int run_perf_stat(int argc, const char **argv)
251 return WEXITSTATUS(status); 251 return WEXITSTATUS(status);
252} 252}
253 253
254static void print_noise(__u64 *count, __u64 *noise) 254static void print_noise(u64 *count, u64 *noise)
255{ 255{
256 if (run_count > 1) 256 if (run_count > 1)
257 fprintf(stderr, " ( +- %7.3f%% )", 257 fprintf(stderr, " ( +- %7.3f%% )",
258 (double)noise[0]/(count[0]+1)*100.0); 258 (double)noise[0]/(count[0]+1)*100.0);
259} 259}
260 260
261static void nsec_printout(int counter, __u64 *count, __u64 *noise) 261static void nsec_printout(int counter, u64 *count, u64 *noise)
262{ 262{
263 double msecs = (double)count[0] / 1000000; 263 double msecs = (double)count[0] / 1000000;
264 264
@@ -274,7 +274,7 @@ static void nsec_printout(int counter, __u64 *count, __u64 *noise)
274 print_noise(count, noise); 274 print_noise(count, noise);
275} 275}
276 276
277static void abs_printout(int counter, __u64 *count, __u64 *noise) 277static void abs_printout(int counter, u64 *count, u64 *noise)
278{ 278{
279 fprintf(stderr, " %14Ld %-20s", count[0], event_name(counter)); 279 fprintf(stderr, " %14Ld %-20s", count[0], event_name(counter));
280 280
@@ -298,7 +298,7 @@ static void abs_printout(int counter, __u64 *count, __u64 *noise)
298 */ 298 */
299static void print_counter(int counter) 299static void print_counter(int counter)
300{ 300{
301 __u64 *count, *noise; 301 u64 *count, *noise;
302 int scaled; 302 int scaled;
303 303
304 count = event_res_avg[counter]; 304 count = event_res_avg[counter];
@@ -326,16 +326,16 @@ static void print_counter(int counter)
326/* 326/*
327 * normalize_noise noise values down to stddev: 327 * normalize_noise noise values down to stddev:
328 */ 328 */
329static void normalize_noise(__u64 *val) 329static void normalize_noise(u64 *val)
330{ 330{
331 double res; 331 double res;
332 332
333 res = (double)*val / (run_count * sqrt((double)run_count)); 333 res = (double)*val / (run_count * sqrt((double)run_count));
334 334
335 *val = (__u64)res; 335 *val = (u64)res;
336} 336}
337 337
338static void update_avg(const char *name, int idx, __u64 *avg, __u64 *val) 338static void update_avg(const char *name, int idx, u64 *avg, u64 *val)
339{ 339{
340 *avg += *val; 340 *avg += *val;
341 341
@@ -380,19 +380,19 @@ static void calc_avg(void)
380 380
381 for (i = 0; i < run_count; i++) { 381 for (i = 0; i < run_count; i++) {
382 runtime_nsecs_noise += 382 runtime_nsecs_noise +=
383 abs((__s64)(runtime_nsecs[i] - runtime_nsecs_avg)); 383 abs((s64)(runtime_nsecs[i] - runtime_nsecs_avg));
384 walltime_nsecs_noise += 384 walltime_nsecs_noise +=
385 abs((__s64)(walltime_nsecs[i] - walltime_nsecs_avg)); 385 abs((s64)(walltime_nsecs[i] - walltime_nsecs_avg));
386 runtime_cycles_noise += 386 runtime_cycles_noise +=
387 abs((__s64)(runtime_cycles[i] - runtime_cycles_avg)); 387 abs((s64)(runtime_cycles[i] - runtime_cycles_avg));
388 388
389 for (j = 0; j < nr_counters; j++) { 389 for (j = 0; j < nr_counters; j++) {
390 event_res_noise[j][0] += 390 event_res_noise[j][0] +=
391 abs((__s64)(event_res[i][j][0] - event_res_avg[j][0])); 391 abs((s64)(event_res[i][j][0] - event_res_avg[j][0]));
392 event_res_noise[j][1] += 392 event_res_noise[j][1] +=
393 abs((__s64)(event_res[i][j][1] - event_res_avg[j][1])); 393 abs((s64)(event_res[i][j][1] - event_res_avg[j][1]));
394 event_res_noise[j][2] += 394 event_res_noise[j][2] +=
395 abs((__s64)(event_res[i][j][2] - event_res_avg[j][2])); 395 abs((s64)(event_res[i][j][2] - event_res_avg[j][2]));
396 } 396 }
397 } 397 }
398 398
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index fe338d3c5d7..5352b5e352e 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -54,7 +54,7 @@ static int system_wide = 0;
54 54
55static int default_interval = 100000; 55static int default_interval = 100000;
56 56
57static __u64 count_filter = 5; 57static u64 count_filter = 5;
58static int print_entries = 15; 58static int print_entries = 15;
59 59
60static int target_pid = -1; 60static int target_pid = -1;
@@ -79,8 +79,8 @@ static int dump_symtab;
79 * Symbols 79 * Symbols
80 */ 80 */
81 81
82static __u64 min_ip; 82static u64 min_ip;
83static __u64 max_ip = -1ll; 83static u64 max_ip = -1ll;
84 84
85struct sym_entry { 85struct sym_entry {
86 struct rb_node rb_node; 86 struct rb_node rb_node;
@@ -194,7 +194,7 @@ static void print_sym_table(void)
194 100.0 - (100.0*((samples_per_sec-ksamples_per_sec)/samples_per_sec))); 194 100.0 - (100.0*((samples_per_sec-ksamples_per_sec)/samples_per_sec)));
195 195
196 if (nr_counters == 1) { 196 if (nr_counters == 1) {
197 printf("%Ld", attrs[0].sample_period); 197 printf("%Ld", (u64)attrs[0].sample_period);
198 if (freq) 198 if (freq)
199 printf("Hz "); 199 printf("Hz ");
200 else 200 else
@@ -372,7 +372,7 @@ out_delete_dso:
372/* 372/*
373 * Binary search in the histogram table and record the hit: 373 * Binary search in the histogram table and record the hit:
374 */ 374 */
375static void record_ip(__u64 ip, int counter) 375static void record_ip(u64 ip, int counter)
376{ 376{
377 struct symbol *sym = dso__find_symbol(kernel_dso, ip); 377 struct symbol *sym = dso__find_symbol(kernel_dso, ip);
378 378
@@ -392,7 +392,7 @@ static void record_ip(__u64 ip, int counter)
392 samples--; 392 samples--;
393} 393}
394 394
395static void process_event(__u64 ip, int counter) 395static void process_event(u64 ip, int counter)
396{ 396{
397 samples++; 397 samples++;
398 398
@@ -463,15 +463,15 @@ static void mmap_read_counter(struct mmap_data *md)
463 for (; old != head;) { 463 for (; old != head;) {
464 struct ip_event { 464 struct ip_event {
465 struct perf_event_header header; 465 struct perf_event_header header;
466 __u64 ip; 466 u64 ip;
467 __u32 pid, target_pid; 467 u32 pid, target_pid;
468 }; 468 };
469 struct mmap_event { 469 struct mmap_event {
470 struct perf_event_header header; 470 struct perf_event_header header;
471 __u32 pid, target_pid; 471 u32 pid, target_pid;
472 __u64 start; 472 u64 start;
473 __u64 len; 473 u64 len;
474 __u64 pgoff; 474 u64 pgoff;
475 char filename[PATH_MAX]; 475 char filename[PATH_MAX];
476 }; 476 };
477 477
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 55c62f4b990..bccb529dac0 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -19,6 +19,7 @@
19#include <sys/syscall.h> 19#include <sys/syscall.h>
20 20
21#include "../../include/linux/perf_counter.h" 21#include "../../include/linux/perf_counter.h"
22#include "types.h"
22 23
23/* 24/*
24 * prctl(PR_TASK_PERF_COUNTERS_DISABLE) will (cheaply) disable all 25 * prctl(PR_TASK_PERF_COUNTERS_DISABLE) will (cheaply) disable all
@@ -66,9 +67,9 @@ sys_perf_counter_open(struct perf_counter_attr *attr,
66#define MAX_NR_CPUS 256 67#define MAX_NR_CPUS 256
67 68
68struct perf_file_header { 69struct perf_file_header {
69 __u64 version; 70 u64 version;
70 __u64 sample_type; 71 u64 sample_type;
71 __u64 data_size; 72 u64 data_size;
72}; 73};
73 74
74#endif 75#endif
diff --git a/tools/perf/types.h b/tools/perf/types.h
new file mode 100644
index 00000000000..5e75f900594
--- /dev/null
+++ b/tools/perf/types.h
@@ -0,0 +1,17 @@
1#ifndef _PERF_TYPES_H
2#define _PERF_TYPES_H
3
4/*
5 * We define u64 as unsigned long long for every architecture
6 * so that we can print it with %Lx without getting warnings.
7 */
8typedef unsigned long long u64;
9typedef signed long long s64;
10typedef unsigned int u32;
11typedef signed int s32;
12typedef unsigned short u16;
13typedef signed short s16;
14typedef unsigned char u8;
15typedef signed char s8;
16
17#endif /* _PERF_TYPES_H */
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index f0c9f2627fe..35d04da38d6 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -13,8 +13,8 @@ int nr_counters;
13struct perf_counter_attr attrs[MAX_COUNTERS]; 13struct perf_counter_attr attrs[MAX_COUNTERS];
14 14
15struct event_symbol { 15struct event_symbol {
16 __u8 type; 16 u8 type;
17 __u64 config; 17 u64 config;
18 char *symbol; 18 char *symbol;
19}; 19};
20 20
@@ -96,7 +96,7 @@ static char *hw_cache_result [][MAX_ALIASES] = {
96 96
97char *event_name(int counter) 97char *event_name(int counter)
98{ 98{
99 __u64 config = attrs[counter].config; 99 u64 config = attrs[counter].config;
100 int type = attrs[counter].type; 100 int type = attrs[counter].type;
101 static char buf[32]; 101 static char buf[32];
102 102
@@ -112,7 +112,7 @@ char *event_name(int counter)
112 return "unknown-hardware"; 112 return "unknown-hardware";
113 113
114 case PERF_TYPE_HW_CACHE: { 114 case PERF_TYPE_HW_CACHE: {
115 __u8 cache_type, cache_op, cache_result; 115 u8 cache_type, cache_op, cache_result;
116 static char name[100]; 116 static char name[100];
117 117
118 cache_type = (config >> 0) & 0xff; 118 cache_type = (config >> 0) & 0xff;
@@ -202,7 +202,7 @@ static int parse_generic_hw_symbols(const char *str, struct perf_counter_attr *a
202 */ 202 */
203static int parse_event_symbols(const char *str, struct perf_counter_attr *attr) 203static int parse_event_symbols(const char *str, struct perf_counter_attr *attr)
204{ 204{
205 __u64 config, id; 205 u64 config, id;
206 int type; 206 int type;
207 unsigned int i; 207 unsigned int i;
208 const char *sep, *pstr; 208 const char *sep, *pstr;
diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c
index ec33c0c7f4e..c93eca9a7be 100644
--- a/tools/perf/util/string.c
+++ b/tools/perf/util/string.c
@@ -15,7 +15,7 @@ static int hex(char ch)
15 * While we find nice hex chars, build a long_val. 15 * While we find nice hex chars, build a long_val.
16 * Return number of chars processed. 16 * Return number of chars processed.
17 */ 17 */
18int hex2u64(const char *ptr, __u64 *long_val) 18int hex2u64(const char *ptr, u64 *long_val)
19{ 19{
20 const char *p = ptr; 20 const char *p = ptr;
21 *long_val = 0; 21 *long_val = 0;
diff --git a/tools/perf/util/string.h b/tools/perf/util/string.h
index 72812c1c9a7..37b03255b42 100644
--- a/tools/perf/util/string.h
+++ b/tools/perf/util/string.h
@@ -1,8 +1,8 @@
1#ifndef _PERF_STRING_H_ 1#ifndef _PERF_STRING_H_
2#define _PERF_STRING_H_ 2#define _PERF_STRING_H_
3 3
4#include <linux/types.h> 4#include "../types.h"
5 5
6int hex2u64(const char *ptr, __u64 *val); 6int hex2u64(const char *ptr, u64 *val);
7 7
8#endif 8#endif
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 49a55f81371..86e14375e74 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;
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
index 5ad9b06c3f6..ea332e56e45 100644
--- a/tools/perf/util/symbol.h
+++ b/tools/perf/util/symbol.h
@@ -2,16 +2,17 @@
2#define _PERF_SYMBOL_ 1 2#define _PERF_SYMBOL_ 1
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include "../types.h"
5#include "list.h" 6#include "list.h"
6#include "rbtree.h" 7#include "rbtree.h"
7 8
8struct symbol { 9struct symbol {
9 struct rb_node rb_node; 10 struct rb_node rb_node;
10 __u64 start; 11 u64 start;
11 __u64 end; 12 u64 end;
12 __u64 obj_start; 13 u64 obj_start;
13 __u64 hist_sum; 14 u64 hist_sum;
14 __u64 *hist; 15 u64 *hist;
15 void *priv; 16 void *priv;
16 char name[0]; 17 char name[0];
17}; 18};
@@ -20,7 +21,7 @@ struct dso {
20 struct list_head node; 21 struct list_head node;
21 struct rb_root syms; 22 struct rb_root syms;
22 unsigned int sym_priv_size; 23 unsigned int sym_priv_size;
23 struct symbol *(*find_symbol)(struct dso *, __u64 ip); 24 struct symbol *(*find_symbol)(struct dso *, u64 ip);
24 char name[0]; 25 char name[0];
25}; 26};
26 27
@@ -36,7 +37,7 @@ static inline void *dso__sym_priv(struct dso *self, struct symbol *sym)
36 return ((void *)sym) - self->sym_priv_size; 37 return ((void *)sym) - self->sym_priv_size;
37} 38}
38 39
39struct symbol *dso__find_symbol(struct dso *self, __u64 ip); 40struct symbol *dso__find_symbol(struct dso *self, u64 ip);
40 41
41int dso__load_kernel(struct dso *self, const char *vmlinux, 42int dso__load_kernel(struct dso *self, const char *vmlinux,
42 symbol_filter_t filter, int verbose); 43 symbol_filter_t filter, int verbose);