perf options: Type check OPT_BOOLEAN and fix the offenders

Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 1967936d
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
static char *file_name; static char *file_name;
static char name_buffer[256]; static char name_buffer[256];
int perf_host = 1; bool perf_host = 1;
int perf_guest; bool perf_guest;
static const char * const kvm_usage[] = { static const char * const kvm_usage[] = {
"perf kvm [<options>] {top|record|report|diff|buildid-list}", "perf kvm [<options>] {top|record|report|diff|buildid-list}",
......
...@@ -792,8 +792,7 @@ static void print_result(void) ...@@ -792,8 +792,7 @@ static void print_result(void)
print_bad_events(bad, total); print_bad_events(bad, total);
} }
static int info_threads; static bool info_threads, info_map;
static int info_map;
static void dump_threads(void) static void dump_threads(void)
{ {
......
...@@ -257,7 +257,7 @@ static const char * const test_usage[] = { ...@@ -257,7 +257,7 @@ static const char * const test_usage[] = {
}; };
static const struct option test_options[] = { static const struct option test_options[] = {
OPT_BOOLEAN('v', "verbose", &verbose, OPT_INTEGER('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"), "be more verbose (show symbol address, etc)"),
OPT_END() OPT_END()
}; };
......
...@@ -80,6 +80,7 @@ void get_term_dimensions(struct winsize *ws); ...@@ -80,6 +80,7 @@ void get_term_dimensions(struct winsize *ws);
#include "../../include/linux/perf_event.h" #include "../../include/linux/perf_event.h"
#include "util/types.h" #include "util/types.h"
#include <stdbool.h>
/* /*
* prctl(PR_TASK_PERF_EVENTS_DISABLE) will (cheaply) disable all * prctl(PR_TASK_PERF_EVENTS_DISABLE) will (cheaply) disable all
...@@ -131,6 +132,6 @@ struct ip_callchain { ...@@ -131,6 +132,6 @@ struct ip_callchain {
u64 ips[0]; u64 ips[0];
}; };
extern int perf_host, perf_guest; extern bool perf_host, perf_guest;
#endif #endif
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define __PERF_PARSE_OPTIONS_H #define __PERF_PARSE_OPTIONS_H
#include <linux/kernel.h> #include <linux/kernel.h>
#include <stdbool.h>
enum parse_opt_type { enum parse_opt_type {
/* special types */ /* special types */
...@@ -101,7 +102,7 @@ struct option { ...@@ -101,7 +102,7 @@ struct option {
#define OPT_ARGUMENT(l, h) { .type = OPTION_ARGUMENT, .long_name = (l), .help = (h) } #define OPT_ARGUMENT(l, h) { .type = OPTION_ARGUMENT, .long_name = (l), .help = (h) }
#define OPT_GROUP(h) { .type = OPTION_GROUP, .help = (h) } #define OPT_GROUP(h) { .type = OPTION_GROUP, .help = (h) }
#define OPT_BIT(s, l, v, h, b) { .type = OPTION_BIT, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (b) } #define OPT_BIT(s, l, v, h, b) { .type = OPTION_BIT, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (b) }
#define OPT_BOOLEAN(s, l, v, h) { .type = OPTION_BOOLEAN, .short_name = (s), .long_name = (l), .value = (v), .help = (h) } #define OPT_BOOLEAN(s, l, v, h) { .type = OPTION_BOOLEAN, .short_name = (s), .long_name = (l), .value = check_vtype(v, bool *), .help = (h) }
#define OPT_INCR(s, l, v, h) { .type = OPTION_INCR, .short_name = (s), .long_name = (l), .value = (v), .help = (h) } #define OPT_INCR(s, l, v, h) { .type = OPTION_INCR, .short_name = (s), .long_name = (l), .value = (v), .help = (h) }
#define OPT_SET_INT(s, l, v, h, i) { .type = OPTION_SET_INT, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (i) } #define OPT_SET_INT(s, l, v, h, i) { .type = OPTION_SET_INT, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (i) }
#define OPT_SET_PTR(s, l, v, h, p) { .type = OPTION_SET_PTR, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (p) } #define OPT_SET_PTR(s, l, v, h, p) { .type = OPTION_SET_PTR, .short_name = (s), .long_name = (l), .value = (v), .help = (h), .defval = (p) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册