perf options: Type check all the remaining OPT_ variants
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 17 May 2010 19:22:41 +0000 (16:22 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 17 May 2010 19:22:41 +0000 (16:22 -0300)
OPT_SET_INT was renamed to OPT_SET_UINT since the only use in these
tools is to set something that has an enum type, that is builtin
compatible with unsigned int.

Several string constifications were done to make OPT_STRING require a
const char * type.

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>
12 files changed:
tools/perf/builtin-bench.c
tools/perf/builtin-help.c
tools/perf/builtin-kvm.c
tools/perf/builtin-report.c
tools/perf/builtin-sched.c
tools/perf/builtin-top.c
tools/perf/util/hist.c
tools/perf/util/parse-options.c
tools/perf/util/parse-options.h
tools/perf/util/sort.c
tools/perf/util/sort.h
tools/perf/util/symbol.h

index 46996774e55967dc1351f9bf731ebc2f0c36cc59..fcb96269852a3929d376c8560c79f2b2add9b943 100644 (file)
@@ -95,7 +95,7 @@ static void dump_suites(int subsys_index)
        return;
 }
 
-static char *bench_format_str;
+static const char *bench_format_str;
 int bench_format = BENCH_FORMAT_DEFAULT;
 
 static const struct option bench_options[] = {
@@ -126,7 +126,7 @@ static void print_usage(void)
        printf("\n");
 }
 
-static int bench_str2int(char *str)
+static int bench_str2int(const char *str)
 {
        if (!str)
                return BENCH_FORMAT_DEFAULT;
index 81e3ecc40fc7d91e9688f772483b8c9d7a8f9eab..6d5a8a7faf488454056f23eaab8c4f42af1819ee 100644 (file)
@@ -33,10 +33,10 @@ static bool show_all = false;
 static enum help_format help_format = HELP_FORMAT_MAN;
 static struct option builtin_help_options[] = {
        OPT_BOOLEAN('a', "all", &show_all, "print all available commands"),
-       OPT_SET_INT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),
-       OPT_SET_INT('w', "web", &help_format, "show manual in web browser",
+       OPT_SET_UINT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),
+       OPT_SET_UINT('w', "web", &help_format, "show manual in web browser",
                        HELP_FORMAT_WEB),
-       OPT_SET_INT('i', "info", &help_format, "show info page",
+       OPT_SET_UINT('i', "info", &help_format, "show info page",
                        HELP_FORMAT_INFO),
        OPT_END(),
 };
index b1c6b38567f0a1a769f3f5e328262bcfbc478b09..34d1e853829d3f9f2dbc129e1ab669a8c3e870a4 100644 (file)
@@ -19,7 +19,7 @@
 #include <pthread.h>
 #include <math.h>
 
-static char                    *file_name;
+static const char              *file_name;
 static char                    name_buffer[256];
 
 bool                           perf_host = 1;
index 68265120ee07f38c47a48bf0ce44fdd5900bc606..1d3c1003b43a2f083e94a0926a0000e159379352 100644 (file)
@@ -39,8 +39,8 @@ static bool           dont_use_callchains;
 static bool            show_threads;
 static struct perf_read_values show_threads_values;
 
-static char            default_pretty_printing_style[] = "normal";
-static char            *pretty_printing_style = default_pretty_printing_style;
+static const char      default_pretty_printing_style[] = "normal";
+static const char      *pretty_printing_style = default_pretty_printing_style;
 
 static char            callchain_default_opt[] = "fractal,0.5";
 
index c80acdf927a7eb1f581fa9cc05165ba7ebe550a9..f67bce2a83b4e090d86a0ecc2dd5a1240521db0a 100644 (file)
@@ -22,7 +22,7 @@
 static char                    const *input_name = "perf.data";
 
 static char                    default_sort_order[] = "avg, max, switch, runtime";
-static char                    *sort_order = default_sort_order;
+static const char              *sort_order = default_sort_order;
 
 static int                     profile_cpu = -1;
 
index 9f0cfa0108a63ca5f9e2203d1bd1dcb3059a85be..397290a0a76e8eef264a87db3ec9e926f379821b 100644 (file)
@@ -96,7 +96,7 @@ struct source_line {
        struct source_line      *next;
 };
 
-static char                    *sym_filter                     =   NULL;
+static const char              *sym_filter                     =   NULL;
 struct sym_entry               *sym_filter_entry               =   NULL;
 struct sym_entry               *sym_filter_entry_sched         =   NULL;
 static int                     sym_pcnt_filter                 =      5;
index f75c5f62401c3dda011c4b52f4356507efc78f1a..9a71c94f057ab47536070a6b3b386e7f68bf1982 100644 (file)
@@ -662,7 +662,7 @@ size_t hists__fprintf(struct hists *self, struct hists *pair,
        long displacement = 0;
        unsigned int width;
        const char *sep = symbol_conf.field_sep;
-       char *col_width = symbol_conf.col_width_list_str;
+       const char *col_width = symbol_conf.col_width_list_str;
 
        init_rem_hits();
 
index 36d955e49422862854917499c15c9c42a068e346..99d02aa57dbf19a8c0cb1a1a3a900486ef956b65 100644 (file)
@@ -51,7 +51,7 @@ static int get_value(struct parse_opt_ctx_t *p,
                case OPTION_BOOLEAN:
                case OPTION_INCR:
                case OPTION_BIT:
-               case OPTION_SET_INT:
+               case OPTION_SET_UINT:
                case OPTION_SET_PTR:
                        return opterror(opt, "takes no value", flags);
                case OPTION_END:
@@ -83,8 +83,8 @@ static int get_value(struct parse_opt_ctx_t *p,
                *(int *)opt->value = unset ? 0 : *(int *)opt->value + 1;
                return 0;
 
-       case OPTION_SET_INT:
-               *(int *)opt->value = unset ? 0 : opt->defval;
+       case OPTION_SET_UINT:
+               *(unsigned int *)opt->value = unset ? 0 : opt->defval;
                return 0;
 
        case OPTION_SET_PTR:
@@ -515,13 +515,13 @@ int usage_with_options_internal(const char * const *usagestr,
                                        pos += fprintf(stderr, " ...");
                        }
                        break;
-               default: /* OPTION_{BIT,BOOLEAN,SET_INT,SET_PTR} */
+               default: /* OPTION_{BIT,BOOLEAN,SET_UINT,SET_PTR} */
                case OPTION_END:
                case OPTION_GROUP:
                case OPTION_BIT:
                case OPTION_BOOLEAN:
                case OPTION_INCR:
-               case OPTION_SET_INT:
+               case OPTION_SET_UINT:
                case OPTION_SET_PTR:
                        break;
                }
index 5838e2d8bbc10efe1e3dc75ad23c558369ec8064..c7d72dce54b2cf7c3f46042bd6ce6a68c941b4d6 100644 (file)
@@ -13,7 +13,7 @@ enum parse_opt_type {
        OPTION_BIT,
        OPTION_BOOLEAN,
        OPTION_INCR,
-       OPTION_SET_INT,
+       OPTION_SET_UINT,
        OPTION_SET_PTR,
        /* options with arguments (usually) */
        OPTION_STRING,
@@ -79,7 +79,7 @@ typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
  *
  * `defval`::
  *   default value to fill (*->value) with for PARSE_OPT_OPTARG.
- *   OPTION_{BIT,SET_INT,SET_PTR} store the {mask,integer,pointer} to put in
+ *   OPTION_{BIT,SET_UINT,SET_PTR} store the {mask,integer,pointer} to put in
  *   the value when met.
  *   CALLBACKS can use it like they want.
  */
@@ -101,16 +101,16 @@ struct option {
 #define OPT_END()                   { .type = OPTION_END }
 #define OPT_ARGUMENT(l, h)          { .type = OPTION_ARGUMENT, .long_name = (l), .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 = check_vtype(v, int *), .help = (h), .defval = (b) }
 #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_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_INCR(s, l, v, h)        { .type = OPTION_INCR, .short_name = (s), .long_name = (l), .value = check_vtype(v, int *), .help = (h) }
+#define OPT_SET_UINT(s, l, v, h, i)  { .type = OPTION_SET_UINT, .short_name = (s), .long_name = (l), .value = check_vtype(v, unsigned int *), .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_INTEGER(s, l, v, h)     { .type = OPTION_INTEGER, .short_name = (s), .long_name = (l), .value = check_vtype(v, int *), .help = (h) }
 #define OPT_UINTEGER(s, l, v, h)    { .type = OPTION_UINTEGER, .short_name = (s), .long_name = (l), .value = check_vtype(v, unsigned int *), .help = (h) }
-#define OPT_LONG(s, l, v, h)        { .type = OPTION_LONG, .short_name = (s), .long_name = (l), .value = (v), .help = (h) }
-#define OPT_U64(s, l, v, h)         { .type = OPTION_U64, .short_name = (s), .long_name = (l), .value = (v), .help = (h) }
-#define OPT_STRING(s, l, v, a, h)   { .type = OPTION_STRING,  .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h) }
+#define OPT_LONG(s, l, v, h)        { .type = OPTION_LONG, .short_name = (s), .long_name = (l), .value = check_vtype(v, long *), .help = (h) }
+#define OPT_U64(s, l, v, h)         { .type = OPTION_U64, .short_name = (s), .long_name = (l), .value = check_vtype(v, u64 *), .help = (h) }
+#define OPT_STRING(s, l, v, a, h)   { .type = OPTION_STRING,  .short_name = (s), .long_name = (l), .value = check_vtype(v, const char **), (a), .help = (h) }
 #define OPT_DATE(s, l, v, h) \
        { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), .argh = "time", .help = (h), .callback = parse_opt_approxidate_cb }
 #define OPT_CALLBACK(s, l, v, a, h, f) \
index da30b305fba03bd82dcd3e5eca3bf5549bc824e4..2316cb5a41164d4d99fbb289118def977b74cf5e 100644 (file)
@@ -1,10 +1,10 @@
 #include "sort.h"
 
 regex_t                parent_regex;
-char           default_parent_pattern[] = "^sys_|^do_page_fault";
-char           *parent_pattern = default_parent_pattern;
-char           default_sort_order[] = "comm,dso,symbol";
-char           *sort_order = default_sort_order;
+const char     default_parent_pattern[] = "^sys_|^do_page_fault";
+const char     *parent_pattern = default_parent_pattern;
+const char     default_sort_order[] = "comm,dso,symbol";
+const char     *sort_order = default_sort_order;
 int            sort__need_collapse = 0;
 int            sort__has_parent = 0;
 
index eab2e0b3b74ec3dd965938012867fbab085ec1a0..0d61c4082f43849ddfe4ac1f6cb1cf9841009dd8 100644 (file)
 #include "sort.h"
 
 extern regex_t parent_regex;
-extern char *sort_order;
-extern char default_parent_pattern[];
-extern char *parent_pattern;
-extern char default_sort_order[];
+extern const char *sort_order;
+extern const char default_parent_pattern[];
+extern const char *parent_pattern;
+extern const char default_sort_order[];
 extern int sort__need_collapse;
 extern int sort__has_parent;
 extern char *field_sep;
index 6389d1acaf816b28be99eb781ae082f1e62a2834..032469e4187615fb25357fefa047854640a0e88a 100644 (file)
@@ -78,7 +78,7 @@ struct symbol_conf {
                        *default_guest_kallsyms,
                        *default_guest_modules;
        const char      *guestmount;
-       char            *dso_list_str,
+       const char      *dso_list_str,
                        *comm_list_str,
                        *sym_list_str,
                        *col_width_list_str;