diff options
| -rw-r--r-- | tools/perf/util/parse-options.c | 17 | ||||
| -rw-r--r-- | tools/perf/util/parse-options.h | 2 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/tools/perf/util/parse-options.c b/tools/perf/util/parse-options.c index bf48092983c6..b6016101b40b 100644 --- a/tools/perf/util/parse-options.c +++ b/tools/perf/util/parse-options.c @@ -42,6 +42,8 @@ static int get_value(struct parse_opt_ctx_t *p,  		return opterror(opt, "takes no value", flags);  	if (unset && (opt->flags & PARSE_OPT_NONEG))  		return opterror(opt, "isn't available", flags); +	if (opt->flags & PARSE_OPT_DISABLED) +		return opterror(opt, "is not usable", flags);  	if (!(flags & OPT_SHORT) && p->opt) {  		switch (opt->type) { @@ -509,6 +511,8 @@ static void print_option_help(const struct option *opts, int full)  	}  	if (!full && (opts->flags & PARSE_OPT_HIDDEN))  		return; +	if (opts->flags & PARSE_OPT_DISABLED) +		return;  	pos = fprintf(stderr, "    ");  	if (opts->short_name) @@ -679,3 +683,16 @@ int parse_opt_verbosity_cb(const struct option *opt,  	}  	return 0;  } + +void set_option_flag(struct option *opts, int shortopt, const char *longopt, +		     int flag) +{ +	for (; opts->type != OPTION_END; opts++) { +		if ((shortopt && opts->short_name == shortopt) || +		    (opts->long_name && longopt && +		     !strcmp(opts->long_name, longopt))) { +			opts->flags |= flag; +			break; +		} +	} +} diff --git a/tools/perf/util/parse-options.h b/tools/perf/util/parse-options.h index b59ba858e73d..b7c80dbc7627 100644 --- a/tools/perf/util/parse-options.h +++ b/tools/perf/util/parse-options.h @@ -38,6 +38,7 @@ enum parse_opt_option_flags {  	PARSE_OPT_NONEG   = 4,  	PARSE_OPT_HIDDEN  = 8,  	PARSE_OPT_LASTARG_DEFAULT = 16, +	PARSE_OPT_DISABLED = 32,  };  struct option; @@ -211,4 +212,5 @@ extern int parse_opt_verbosity_cb(const struct option *, const char *, int);  extern const char *parse_options_fix_filename(const char *prefix, const char *file); +void set_option_flag(struct option *opts, int sopt, const char *lopt, int flag);  #endif /* __PERF_PARSE_OPTIONS_H */ | 
