diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2011-05-21 11:49:00 -0400 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2011-05-21 21:12:29 -0400 |
commit | 74429964d8e29c0107fa6e9cdf35b8f33f57405d (patch) | |
tree | 8ffdb81449365e3b720e7bfea6ae2ba2b543dae1 /tools | |
parent | dd5f5fd1083601d9145168ce43a268a068add81a (diff) |
perf tools: Move evlist sample helpers to evlist area
These APIs should belong to evlist.c as they may not be
exclusively tied to the headers.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Stephane Eranian <eranian@google.com
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/evlist.c | 31 | ||||
-rw-r--r-- | tools/perf/util/evlist.h | 3 | ||||
-rw-r--r-- | tools/perf/util/header.c | 31 | ||||
-rw-r--r-- | tools/perf/util/header.h | 2 |
4 files changed, 34 insertions, 33 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 45da8d186b49..98cb1f30aa29 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c | |||
@@ -398,3 +398,34 @@ int perf_evlist__set_filters(struct perf_evlist *evlist) | |||
398 | 398 | ||
399 | return 0; | 399 | return 0; |
400 | } | 400 | } |
401 | |||
402 | u64 perf_evlist__sample_type(struct perf_evlist *evlist) | ||
403 | { | ||
404 | struct perf_evsel *pos; | ||
405 | u64 type = 0; | ||
406 | |||
407 | list_for_each_entry(pos, &evlist->entries, node) { | ||
408 | if (!type) | ||
409 | type = pos->attr.sample_type; | ||
410 | else if (type != pos->attr.sample_type) | ||
411 | die("non matching sample_type"); | ||
412 | } | ||
413 | |||
414 | return type; | ||
415 | } | ||
416 | |||
417 | bool perf_evlist__sample_id_all(const struct perf_evlist *evlist) | ||
418 | { | ||
419 | bool value = false, first = true; | ||
420 | struct perf_evsel *pos; | ||
421 | |||
422 | list_for_each_entry(pos, &evlist->entries, node) { | ||
423 | if (first) { | ||
424 | value = pos->attr.sample_id_all; | ||
425 | first = false; | ||
426 | } else if (value != pos->attr.sample_id_all) | ||
427 | die("non matching sample_id_all"); | ||
428 | } | ||
429 | |||
430 | return value; | ||
431 | } | ||
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index 8b1cb7a4c5f1..a8556b68c392 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h | |||
@@ -65,4 +65,7 @@ int perf_evlist__create_maps(struct perf_evlist *evlist, pid_t target_pid, | |||
65 | void perf_evlist__delete_maps(struct perf_evlist *evlist); | 65 | void perf_evlist__delete_maps(struct perf_evlist *evlist); |
66 | int perf_evlist__set_filters(struct perf_evlist *evlist); | 66 | int perf_evlist__set_filters(struct perf_evlist *evlist); |
67 | 67 | ||
68 | u64 perf_evlist__sample_type(struct perf_evlist *evlist); | ||
69 | bool perf_evlist__sample_id_all(const struct perf_evlist *evlist); | ||
70 | |||
68 | #endif /* __PERF_EVLIST_H */ | 71 | #endif /* __PERF_EVLIST_H */ |
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 93862a8027ea..0717bebc7649 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c | |||
@@ -934,37 +934,6 @@ out_delete_evlist: | |||
934 | return -ENOMEM; | 934 | return -ENOMEM; |
935 | } | 935 | } |
936 | 936 | ||
937 | u64 perf_evlist__sample_type(struct perf_evlist *evlist) | ||
938 | { | ||
939 | struct perf_evsel *pos; | ||
940 | u64 type = 0; | ||
941 | |||
942 | list_for_each_entry(pos, &evlist->entries, node) { | ||
943 | if (!type) | ||
944 | type = pos->attr.sample_type; | ||
945 | else if (type != pos->attr.sample_type) | ||
946 | die("non matching sample_type"); | ||
947 | } | ||
948 | |||
949 | return type; | ||
950 | } | ||
951 | |||
952 | bool perf_evlist__sample_id_all(const struct perf_evlist *evlist) | ||
953 | { | ||
954 | bool value = false, first = true; | ||
955 | struct perf_evsel *pos; | ||
956 | |||
957 | list_for_each_entry(pos, &evlist->entries, node) { | ||
958 | if (first) { | ||
959 | value = pos->attr.sample_id_all; | ||
960 | first = false; | ||
961 | } else if (value != pos->attr.sample_id_all) | ||
962 | die("non matching sample_id_all"); | ||
963 | } | ||
964 | |||
965 | return value; | ||
966 | } | ||
967 | |||
968 | int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id, | 937 | int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id, |
969 | perf_event__handler_t process, | 938 | perf_event__handler_t process, |
970 | struct perf_session *session) | 939 | struct perf_session *session) |
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index 456661d7f10e..1886256768a1 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h | |||
@@ -64,8 +64,6 @@ int perf_header__write_pipe(int fd); | |||
64 | int perf_header__push_event(u64 id, const char *name); | 64 | int perf_header__push_event(u64 id, const char *name); |
65 | char *perf_header__find_event(u64 id); | 65 | char *perf_header__find_event(u64 id); |
66 | 66 | ||
67 | u64 perf_evlist__sample_type(struct perf_evlist *evlist); | ||
68 | bool perf_evlist__sample_id_all(const struct perf_evlist *evlist); | ||
69 | void perf_header__set_feat(struct perf_header *header, int feat); | 67 | void perf_header__set_feat(struct perf_header *header, int feat); |
70 | void perf_header__clear_feat(struct perf_header *header, int feat); | 68 | void perf_header__clear_feat(struct perf_header *header, int feat); |
71 | bool perf_header__has_feat(const struct perf_header *header, int feat); | 69 | bool perf_header__has_feat(const struct perf_header *header, int feat); |