Linux Audio

Check our new training course

Loading...
v3.1
 1/*
 2 * Builtin evlist command: Show the list of event selectors present
 3 * in a perf.data file.
 4 */
 5#include "builtin.h"
 6
 7#include "util/util.h"
 8
 9#include <linux/list.h>
10
11#include "perf.h"
12#include "util/evlist.h"
13#include "util/evsel.h"
14#include "util/parse-events.h"
15#include "util/parse-options.h"
16#include "util/session.h"
 
17
18static char const *input_name = "perf.data";
19
20static int __cmd_evlist(void)
21{
22	struct perf_session *session;
23	struct perf_evsel *pos;
 
 
 
 
24
25	session = perf_session__new(input_name, O_RDONLY, 0, false, NULL);
26	if (session == NULL)
27		return -ENOMEM;
28
29	list_for_each_entry(pos, &session->evlist->entries, node)
30		printf("%s\n", event_name(pos));
31
32	perf_session__delete(session);
33	return 0;
34}
35
36static const char * const evlist_usage[] = {
37	"perf evlist [<options>]",
38	NULL
39};
40
41static const struct option options[] = {
42	OPT_STRING('i', "input", &input_name, "file",
43		    "input file name"),
 
 
44	OPT_END()
45};
 
 
 
 
46
47int cmd_evlist(int argc, const char **argv, const char *prefix __used)
48{
49	argc = parse_options(argc, argv, options, evlist_usage, 0);
50	if (argc)
51		usage_with_options(evlist_usage, options);
52
53	return __cmd_evlist();
 
 
 
 
 
54}
v3.15
 1/*
 2 * Builtin evlist command: Show the list of event selectors present
 3 * in a perf.data file.
 4 */
 5#include "builtin.h"
 6
 7#include "util/util.h"
 8
 9#include <linux/list.h>
10
11#include "perf.h"
12#include "util/evlist.h"
13#include "util/evsel.h"
14#include "util/parse-events.h"
15#include "util/parse-options.h"
16#include "util/session.h"
17#include "util/data.h"
18
19static int __cmd_evlist(const char *file_name, struct perf_attr_details *details)
 
 
20{
21	struct perf_session *session;
22	struct perf_evsel *pos;
23	struct perf_data_file file = {
24		.path = file_name,
25		.mode = PERF_DATA_MODE_READ,
26	};
27
28	session = perf_session__new(&file, 0, NULL);
29	if (session == NULL)
30		return -ENOMEM;
31
32	evlist__for_each(session->evlist, pos)
33		perf_evsel__fprintf(pos, details, stdout);
34
35	perf_session__delete(session);
36	return 0;
37}
38
39int cmd_evlist(int argc, const char **argv, const char *prefix __maybe_unused)
40{
41	struct perf_attr_details details = { .verbose = false, };
42	const struct option options[] = {
43	OPT_STRING('i', "input", &input_name, "file", "Input file name"),
44	OPT_BOOLEAN('F', "freq", &details.freq, "Show the sample frequency"),
45	OPT_BOOLEAN('v', "verbose", &details.verbose,
46		    "Show all event attr details"),
47	OPT_BOOLEAN('g', "group", &details.event_group,
48		    "Show event group information"),
49	OPT_END()
50	};
51	const char * const evlist_usage[] = {
52		"perf evlist [<options>]",
53		NULL
54	};
55
 
 
56	argc = parse_options(argc, argv, options, evlist_usage, 0);
57	if (argc)
58		usage_with_options(evlist_usage, options);
59
60	if (details.event_group && (details.verbose || details.freq)) {
61		pr_err("--group option is not compatible with other options\n");
62		usage_with_options(evlist_usage, options);
63	}
64
65	return __cmd_evlist(input_name, &details);
66}