diff options
author | Wang Nan <wangnan0@huawei.com> | 2016-06-24 07:22:07 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-06-28 09:54:55 -0400 |
commit | 3275f68e50290acd04612c6af41173fe83fdf4b0 (patch) | |
tree | 400cc48e0a9cb697f90bbd2399045639c00fc5ec | |
parent | 069ee5c488d161f539bb897b1bc64b83f9773221 (diff) |
perf data ctf: Pass convert options through opts structure
Following commits will add new option to 'perf data convert'. All options
should be grouped into a structure and passed to low level converter
(currently there's only one converter).
Introduce data-convert.h and define 'struct perf_data_convert_opts' in
it. Pass 'force' through opts.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1466767332-114472-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/builtin-data.c | 9 | ||||
-rw-r--r-- | tools/perf/util/data-convert-bt.c | 5 | ||||
-rw-r--r-- | tools/perf/util/data-convert-bt.h | 4 | ||||
-rw-r--r-- | tools/perf/util/data-convert.h | 8 |
4 files changed, 20 insertions, 6 deletions
diff --git a/tools/perf/builtin-data.c b/tools/perf/builtin-data.c index b97bc1518b44..38111a97d900 100644 --- a/tools/perf/builtin-data.c +++ b/tools/perf/builtin-data.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #include "perf.h" | 3 | #include "perf.h" |
4 | #include "debug.h" | 4 | #include "debug.h" |
5 | #include <subcmd/parse-options.h> | 5 | #include <subcmd/parse-options.h> |
6 | #include "data-convert.h" | ||
6 | #include "data-convert-bt.h" | 7 | #include "data-convert-bt.h" |
7 | 8 | ||
8 | typedef int (*data_cmd_fn_t)(int argc, const char **argv, const char *prefix); | 9 | typedef int (*data_cmd_fn_t)(int argc, const char **argv, const char *prefix); |
@@ -53,14 +54,16 @@ static int cmd_data_convert(int argc, const char **argv, | |||
53 | const char *prefix __maybe_unused) | 54 | const char *prefix __maybe_unused) |
54 | { | 55 | { |
55 | const char *to_ctf = NULL; | 56 | const char *to_ctf = NULL; |
56 | bool force = false; | 57 | struct perf_data_convert_opts opts = { |
58 | .force = false, | ||
59 | }; | ||
57 | const struct option options[] = { | 60 | const struct option options[] = { |
58 | OPT_INCR('v', "verbose", &verbose, "be more verbose"), | 61 | OPT_INCR('v', "verbose", &verbose, "be more verbose"), |
59 | OPT_STRING('i', "input", &input_name, "file", "input file name"), | 62 | OPT_STRING('i', "input", &input_name, "file", "input file name"), |
60 | #ifdef HAVE_LIBBABELTRACE_SUPPORT | 63 | #ifdef HAVE_LIBBABELTRACE_SUPPORT |
61 | OPT_STRING(0, "to-ctf", &to_ctf, NULL, "Convert to CTF format"), | 64 | OPT_STRING(0, "to-ctf", &to_ctf, NULL, "Convert to CTF format"), |
62 | #endif | 65 | #endif |
63 | OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), | 66 | OPT_BOOLEAN('f', "force", &opts.force, "don't complain, do it"), |
64 | OPT_END() | 67 | OPT_END() |
65 | }; | 68 | }; |
66 | 69 | ||
@@ -78,7 +81,7 @@ static int cmd_data_convert(int argc, const char **argv, | |||
78 | 81 | ||
79 | if (to_ctf) { | 82 | if (to_ctf) { |
80 | #ifdef HAVE_LIBBABELTRACE_SUPPORT | 83 | #ifdef HAVE_LIBBABELTRACE_SUPPORT |
81 | return bt_convert__perf2ctf(input_name, to_ctf, force); | 84 | return bt_convert__perf2ctf(input_name, to_ctf, &opts); |
82 | #else | 85 | #else |
83 | pr_err("The libbabeltrace support is not compiled in.\n"); | 86 | pr_err("The libbabeltrace support is not compiled in.\n"); |
84 | return -1; | 87 | return -1; |
diff --git a/tools/perf/util/data-convert-bt.c b/tools/perf/util/data-convert-bt.c index 4b68e7b9ee0c..09571b39f58a 100644 --- a/tools/perf/util/data-convert-bt.c +++ b/tools/perf/util/data-convert-bt.c | |||
@@ -1304,13 +1304,14 @@ static int convert__config(const char *var, const char *value, void *cb) | |||
1304 | return 0; | 1304 | return 0; |
1305 | } | 1305 | } |
1306 | 1306 | ||
1307 | int bt_convert__perf2ctf(const char *input, const char *path, bool force) | 1307 | int bt_convert__perf2ctf(const char *input, const char *path, |
1308 | struct perf_data_convert_opts *opts) | ||
1308 | { | 1309 | { |
1309 | struct perf_session *session; | 1310 | struct perf_session *session; |
1310 | struct perf_data_file file = { | 1311 | struct perf_data_file file = { |
1311 | .path = input, | 1312 | .path = input, |
1312 | .mode = PERF_DATA_MODE_READ, | 1313 | .mode = PERF_DATA_MODE_READ, |
1313 | .force = force, | 1314 | .force = opts->force, |
1314 | }; | 1315 | }; |
1315 | struct convert c = { | 1316 | struct convert c = { |
1316 | .tool = { | 1317 | .tool = { |
diff --git a/tools/perf/util/data-convert-bt.h b/tools/perf/util/data-convert-bt.h index 4c204342a9d8..9a3b587f76c1 100644 --- a/tools/perf/util/data-convert-bt.h +++ b/tools/perf/util/data-convert-bt.h | |||
@@ -1,8 +1,10 @@ | |||
1 | #ifndef __DATA_CONVERT_BT_H | 1 | #ifndef __DATA_CONVERT_BT_H |
2 | #define __DATA_CONVERT_BT_H | 2 | #define __DATA_CONVERT_BT_H |
3 | #include "data-convert.h" | ||
3 | #ifdef HAVE_LIBBABELTRACE_SUPPORT | 4 | #ifdef HAVE_LIBBABELTRACE_SUPPORT |
4 | 5 | ||
5 | int bt_convert__perf2ctf(const char *input_name, const char *to_ctf, bool force); | 6 | int bt_convert__perf2ctf(const char *input_name, const char *to_ctf, |
7 | struct perf_data_convert_opts *opts); | ||
6 | 8 | ||
7 | #endif /* HAVE_LIBBABELTRACE_SUPPORT */ | 9 | #endif /* HAVE_LIBBABELTRACE_SUPPORT */ |
8 | #endif /* __DATA_CONVERT_BT_H */ | 10 | #endif /* __DATA_CONVERT_BT_H */ |
diff --git a/tools/perf/util/data-convert.h b/tools/perf/util/data-convert.h new file mode 100644 index 000000000000..97cfd36aab6f --- /dev/null +++ b/tools/perf/util/data-convert.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef __DATA_CONVERT_H | ||
2 | #define __DATA_CONVERT_H | ||
3 | |||
4 | struct perf_data_convert_opts { | ||
5 | bool force; | ||
6 | }; | ||
7 | |||
8 | #endif /* __DATA_CONVERT_H */ | ||