Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | option |
struct | parse_opt_ctx_t |
Macros | |
#define | check_vtype(v, type) ( BUILD_BUG_ON_ZERO(!__builtin_types_compatible_p(typeof(v), type)) + v ) |
#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 = 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 = 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 = 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) { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f) } |
#define | OPT_CALLBACK_NOOPT(s, l, v, a, h, f) { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f), .flags = PARSE_OPT_NOARG } |
#define | OPT_CALLBACK_DEFAULT(s, l, v, a, h, f, d) { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f), .defval = (intptr_t)d, .flags = PARSE_OPT_LASTARG_DEFAULT } |
#define | OPT_CALLBACK_DEFAULT_NOOPT(s, l, v, a, h, f, d) |
#define | OPT__VERBOSE(var) OPT_BOOLEAN('v', "verbose", (var), "be verbose") |
#define | OPT__QUIET(var) OPT_BOOLEAN('q', "quiet", (var), "be quiet") |
#define | OPT__VERBOSITY(var) |
#define | OPT__DRY_RUN(var) OPT_BOOLEAN('n', "dry-run", (var), "dry run") |
#define | OPT__ABBREV(var) |
Typedefs | |
typedef int | parse_opt_cb (const struct option *, const char *arg, int unset) |
Enumerations | |
enum | parse_opt_type { OPTION_END, OPTION_ARGUMENT, OPTION_GROUP, OPTION_BIT, OPTION_BOOLEAN, OPTION_INCR, OPTION_SET_UINT, OPTION_SET_PTR, OPTION_STRING, OPTION_INTEGER, OPTION_LONG, OPTION_CALLBACK, OPTION_U64, OPTION_UINTEGER } |
enum | parse_opt_flags { PARSE_OPT_KEEP_DASHDASH = 1, PARSE_OPT_STOP_AT_NON_OPTION = 2, PARSE_OPT_KEEP_ARGV0 = 4, PARSE_OPT_KEEP_UNKNOWN = 8, PARSE_OPT_NO_INTERNAL_HELP = 16 } |
enum | parse_opt_option_flags { PARSE_OPT_OPTARG = 1, PARSE_OPT_NOARG = 2, PARSE_OPT_NONEG = 4, PARSE_OPT_HIDDEN = 8, PARSE_OPT_LASTARG_DEFAULT = 16 } |
enum | { PARSE_OPT_HELP = -1, PARSE_OPT_DONE, PARSE_OPT_LIST, PARSE_OPT_UNKNOWN } |
Functions | |
int | parse_options (int argc, const char **argv, const struct option *options, const char *const usagestr[], int flags) |
NORETURN void | usage_with_options (const char *const *usagestr, const struct option *options) |
int | parse_options_usage (const char *const *usagestr, const struct option *opts) |
void | parse_options_start (struct parse_opt_ctx_t *ctx, int argc, const char **argv, int flags) |
int | parse_options_step (struct parse_opt_ctx_t *ctx, const struct option *options, const char *const usagestr[]) |
int | parse_options_end (struct parse_opt_ctx_t *ctx) |
int | parse_opt_abbrev_cb (const struct option *, const char *, int) |
int | parse_opt_approxidate_cb (const struct option *, const char *, int) |
int | parse_opt_verbosity_cb (const struct option *, const char *, int) |
const char * | parse_options_fix_filename (const char *prefix, const char *file) |
#define check_vtype | ( | v, | |
type | |||
) | ( BUILD_BUG_ON_ZERO(!__builtin_types_compatible_p(typeof(v), type)) + v ) |
Definition at line 99 of file parse-options.h.
#define OPT__ABBREV | ( | var | ) |
Definition at line 186 of file parse-options.h.
#define OPT__DRY_RUN | ( | var | ) | OPT_BOOLEAN('n', "dry-run", (var), "dry run") |
Definition at line 185 of file parse-options.h.
#define OPT__QUIET | ( | var | ) | OPT_BOOLEAN('q', "quiet", (var), "be quiet") |
Definition at line 179 of file parse-options.h.
#define OPT__VERBOSE | ( | var | ) | OPT_BOOLEAN('v', "verbose", (var), "be verbose") |
Definition at line 178 of file parse-options.h.
#define OPT__VERBOSITY | ( | var | ) |
Definition at line 180 of file parse-options.h.
Definition at line 102 of file parse-options.h.
#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) } |
Definition at line 104 of file parse-options.h.
#define OPT_BOOLEAN | ( | s, | |
l, | |||
v, | |||
h | |||
) | { .type = OPTION_BOOLEAN, .short_name = (s), .long_name = (l), .value = check_vtype(v, bool *), .help = (h) } |
Definition at line 105 of file parse-options.h.
#define OPT_CALLBACK | ( | s, | |
l, | |||
v, | |||
a, | |||
h, | |||
f | |||
) | { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f) } |
Definition at line 116 of file parse-options.h.
#define OPT_CALLBACK_DEFAULT | ( | s, | |
l, | |||
v, | |||
a, | |||
h, | |||
f, | |||
d | |||
) | { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f), .defval = (intptr_t)d, .flags = PARSE_OPT_LASTARG_DEFAULT } |
Definition at line 120 of file parse-options.h.
Definition at line 122 of file parse-options.h.
#define OPT_CALLBACK_NOOPT | ( | s, | |
l, | |||
v, | |||
a, | |||
h, | |||
f | |||
) | { .type = OPTION_CALLBACK, .short_name = (s), .long_name = (l), .value = (v), (a), .help = (h), .callback = (f), .flags = PARSE_OPT_NOARG } |
Definition at line 118 of file parse-options.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 } |
Definition at line 114 of file parse-options.h.
#define OPT_END | ( | ) | { .type = OPTION_END } |
Definition at line 101 of file parse-options.h.
#define OPT_GROUP | ( | h | ) | { .type = OPTION_GROUP, .help = (h) } |
Definition at line 103 of file parse-options.h.
#define OPT_INCR | ( | s, | |
l, | |||
v, | |||
h | |||
) | { .type = OPTION_INCR, .short_name = (s), .long_name = (l), .value = check_vtype(v, int *), .help = (h) } |
Definition at line 106 of file parse-options.h.
#define OPT_INTEGER | ( | s, | |
l, | |||
v, | |||
h | |||
) | { .type = OPTION_INTEGER, .short_name = (s), .long_name = (l), .value = check_vtype(v, int *), .help = (h) } |
Definition at line 109 of file parse-options.h.
#define OPT_LONG | ( | s, | |
l, | |||
v, | |||
h | |||
) | { .type = OPTION_LONG, .short_name = (s), .long_name = (l), .value = check_vtype(v, long *), .help = (h) } |
Definition at line 111 of file parse-options.h.
#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) } |
Definition at line 108 of file parse-options.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) } |
Definition at line 107 of file parse-options.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) } |
Definition at line 113 of file parse-options.h.
#define OPT_U64 | ( | s, | |
l, | |||
v, | |||
h | |||
) | { .type = OPTION_U64, .short_name = (s), .long_name = (l), .value = check_vtype(v, u64 *), .help = (h) } |
Definition at line 112 of file parse-options.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) } |
Definition at line 110 of file parse-options.h.
Definition at line 44 of file parse-options.h.
anonymous enum |
Definition at line 140 of file parse-options.h.
enum parse_opt_flags |
PARSE_OPT_KEEP_DASHDASH | |
PARSE_OPT_STOP_AT_NON_OPTION | |
PARSE_OPT_KEEP_ARGV0 | |
PARSE_OPT_KEEP_UNKNOWN | |
PARSE_OPT_NO_INTERNAL_HELP |
Definition at line 27 of file parse-options.h.
PARSE_OPT_OPTARG | |
PARSE_OPT_NOARG | |
PARSE_OPT_NONEG | |
PARSE_OPT_HIDDEN | |
PARSE_OPT_LASTARG_DEFAULT |
Definition at line 35 of file parse-options.h.
enum parse_opt_type |
OPTION_END | |
OPTION_ARGUMENT | |
OPTION_GROUP | |
OPTION_BIT | |
OPTION_BOOLEAN | |
OPTION_INCR | |
OPTION_SET_UINT | |
OPTION_SET_PTR | |
OPTION_STRING | |
OPTION_INTEGER | |
OPTION_LONG | |
OPTION_CALLBACK | |
OPTION_U64 | |
OPTION_UINTEGER |
Definition at line 7 of file parse-options.h.
int parse_options | ( | int | argc, |
const char ** | argv, | ||
const struct option * | options, | ||
const char *const | usagestr[], | ||
int | flags | ||
) |
Definition at line 414 of file parse-options.c.
int parse_options_end | ( | struct parse_opt_ctx_t * | ctx | ) |
Definition at line 407 of file parse-options.c.
Definition at line 303 of file parse-options.c.
int parse_options_step | ( | struct parse_opt_ctx_t * | ctx, |
const struct option * | options, | ||
const char *const | usagestr[] | ||
) |
Definition at line 320 of file parse-options.c.
Definition at line 561 of file parse-options.c.