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: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
1967936d68
commit
8035458fbb
5 changed files with 8 additions and 7 deletions
|
@ -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)
|
||||||
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[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
#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 {
|
||||||
u64 ips[0];
|
u64 ips[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int perf_host, perf_guest;
|
extern bool perf_host, perf_guest;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -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 {
|
||||||
#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) }
|
||||||
|
|
Loading…
Reference in a new issue