diff options
author | Tony Lindgren <tony@atomide.com> | 2010-05-20 14:37:23 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-05-20 14:37:23 -0400 |
commit | f6304f5804f228b6c2fea9e3dfac25c5b2db9b38 (patch) | |
tree | 362b9b6a3bd32b868e5917a32d448ac75c5854df /tools/perf/util/trace-event-info.c | |
parent | 4fa73a1bf89ebea4eba8a9982b5f64d266d8b5e9 (diff) | |
parent | 6daa642d9b8ec762b3c5641cd5e5fa855a5405bf (diff) |
Merge branch 'omap4-i2c-init' into omap-for-linus
Diffstat (limited to 'tools/perf/util/trace-event-info.c')
-rw-r--r-- | tools/perf/util/trace-event-info.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index 5ea8973ad33..b1572601286 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c | |||
@@ -154,10 +154,17 @@ static void put_tracing_file(char *file) | |||
154 | free(file); | 154 | free(file); |
155 | } | 155 | } |
156 | 156 | ||
157 | static ssize_t calc_data_size; | ||
158 | |||
157 | static ssize_t write_or_die(const void *buf, size_t len) | 159 | static ssize_t write_or_die(const void *buf, size_t len) |
158 | { | 160 | { |
159 | int ret; | 161 | int ret; |
160 | 162 | ||
163 | if (calc_data_size) { | ||
164 | calc_data_size += len; | ||
165 | return len; | ||
166 | } | ||
167 | |||
161 | ret = write(output_fd, buf, len); | 168 | ret = write(output_fd, buf, len); |
162 | if (ret < 0) | 169 | if (ret < 0) |
163 | die("writing to '%s'", output_file); | 170 | die("writing to '%s'", output_file); |
@@ -480,6 +487,17 @@ get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events) | |||
480 | return nr_tracepoints > 0 ? path.next : NULL; | 487 | return nr_tracepoints > 0 ? path.next : NULL; |
481 | } | 488 | } |
482 | 489 | ||
490 | bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events) | ||
491 | { | ||
492 | int i; | ||
493 | |||
494 | for (i = 0; i < nb_events; i++) | ||
495 | if (pattrs[i].type == PERF_TYPE_TRACEPOINT) | ||
496 | return true; | ||
497 | |||
498 | return false; | ||
499 | } | ||
500 | |||
483 | int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events) | 501 | int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events) |
484 | { | 502 | { |
485 | char buf[BUFSIZ]; | 503 | char buf[BUFSIZ]; |
@@ -526,3 +544,20 @@ int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events) | |||
526 | 544 | ||
527 | return 0; | 545 | return 0; |
528 | } | 546 | } |
547 | |||
548 | ssize_t read_tracing_data_size(int fd, struct perf_event_attr *pattrs, | ||
549 | int nb_events) | ||
550 | { | ||
551 | ssize_t size; | ||
552 | int err = 0; | ||
553 | |||
554 | calc_data_size = 1; | ||
555 | err = read_tracing_data(fd, pattrs, nb_events); | ||
556 | size = calc_data_size - 1; | ||
557 | calc_data_size = 0; | ||
558 | |||
559 | if (err < 0) | ||
560 | return err; | ||
561 | |||
562 | return size; | ||
563 | } | ||