diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 14:18:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 14:18:53 +0000 |
commit | a0e0018c9a7ef5ce7f6d2c3ae16aecbbd16a8f67 (patch) | |
tree | 8feaf1a1932871b139b3b30be4c09c66489918be /tipc/cmdl.h | |
parent | Initial commit. (diff) | |
download | iproute2-upstream.tar.xz iproute2-upstream.zip |
Adding upstream version 6.1.0.upstream/6.1.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | tipc/cmdl.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tipc/cmdl.h b/tipc/cmdl.h new file mode 100644 index 0000000..dcade36 --- /dev/null +++ b/tipc/cmdl.h @@ -0,0 +1,58 @@ +/* + * cmdl.h Framework for handling command line options. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * Authors: Richard Alpe <richard.alpe@ericsson.com> + */ + +#ifndef _TIPC_CMDL_H +#define _TIPC_CMDL_H + +#include <libmnl/libmnl.h> + +extern int help_flag; + +enum { + OPT_KEY = (1 << 0), + OPT_KEYVAL = (1 << 1), +}; + +struct cmdl { + int optind; + int argc; + char **argv; +}; + +struct tipc_sup_media { + char *media; + char *identifier; + void (*help)(struct cmdl *cmdl, char *media); +}; + +struct cmd { + const char *cmd; + int (*func)(struct nlmsghdr *nlh, const struct cmd *cmd, + struct cmdl *cmdl, void *data); + void (*help)(struct cmdl *cmdl); +}; + +struct opt { + const char *key; + uint16_t flag; + char *val; +}; + +struct opt *find_opt(struct opt *opts, char *str); +struct opt *get_opt(struct opt *opts, char *key); +bool has_opt(struct opt *opts, char *key); +int parse_opts(struct opt *opts, struct cmdl *cmdl); +char *shift_cmdl(struct cmdl *cmdl); + +int run_cmd(struct nlmsghdr *nlh, const struct cmd *caller, + const struct cmd *cmds, struct cmdl *cmdl, void *data); + +#endif |