Skip to content

Commit

Permalink
perf tools: Move evlist sample helpers to evlist area
Browse files Browse the repository at this point in the history
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
  • Loading branch information
fweisbec committed May 22, 2011
1 parent dd5f5fd commit 7442996
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 33 deletions.
31 changes: 31 additions & 0 deletions tools/perf/util/evlist.c
Original file line number Diff line number Diff line change
Expand Up @@ -398,3 +398,34 @@ int perf_evlist__set_filters(struct perf_evlist *evlist)

return 0;
}

u64 perf_evlist__sample_type(struct perf_evlist *evlist)
{
struct perf_evsel *pos;
u64 type = 0;

list_for_each_entry(pos, &evlist->entries, node) {
if (!type)
type = pos->attr.sample_type;
else if (type != pos->attr.sample_type)
die("non matching sample_type");
}

return type;
}

bool perf_evlist__sample_id_all(const struct perf_evlist *evlist)
{
bool value = false, first = true;
struct perf_evsel *pos;

list_for_each_entry(pos, &evlist->entries, node) {
if (first) {
value = pos->attr.sample_id_all;
first = false;
} else if (value != pos->attr.sample_id_all)
die("non matching sample_id_all");
}

return value;
}
3 changes: 3 additions & 0 deletions tools/perf/util/evlist.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,7 @@ int perf_evlist__create_maps(struct perf_evlist *evlist, pid_t target_pid,
void perf_evlist__delete_maps(struct perf_evlist *evlist);
int perf_evlist__set_filters(struct perf_evlist *evlist);

u64 perf_evlist__sample_type(struct perf_evlist *evlist);
bool perf_evlist__sample_id_all(const struct perf_evlist *evlist);

#endif /* __PERF_EVLIST_H */
31 changes: 0 additions & 31 deletions tools/perf/util/header.c
Original file line number Diff line number Diff line change
Expand Up @@ -934,37 +934,6 @@ int perf_session__read_header(struct perf_session *session, int fd)
return -ENOMEM;
}

u64 perf_evlist__sample_type(struct perf_evlist *evlist)
{
struct perf_evsel *pos;
u64 type = 0;

list_for_each_entry(pos, &evlist->entries, node) {
if (!type)
type = pos->attr.sample_type;
else if (type != pos->attr.sample_type)
die("non matching sample_type");
}

return type;
}

bool perf_evlist__sample_id_all(const struct perf_evlist *evlist)
{
bool value = false, first = true;
struct perf_evsel *pos;

list_for_each_entry(pos, &evlist->entries, node) {
if (first) {
value = pos->attr.sample_id_all;
first = false;
} else if (value != pos->attr.sample_id_all)
die("non matching sample_id_all");
}

return value;
}

int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id,
perf_event__handler_t process,
struct perf_session *session)
Expand Down
2 changes: 0 additions & 2 deletions tools/perf/util/header.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,6 @@ int perf_header__write_pipe(int fd);
int perf_header__push_event(u64 id, const char *name);
char *perf_header__find_event(u64 id);

u64 perf_evlist__sample_type(struct perf_evlist *evlist);
bool perf_evlist__sample_id_all(const struct perf_evlist *evlist);
void perf_header__set_feat(struct perf_header *header, int feat);
void perf_header__clear_feat(struct perf_header *header, int feat);
bool perf_header__has_feat(const struct perf_header *header, int feat);
Expand Down

0 comments on commit 7442996

Please sign in to comment.