diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:14:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:14:35 +0000 |
commit | 9b8a97db9ec4b795e29e72289005fbc58484ebeb (patch) | |
tree | e24ca2d68215e57b4759fe5c032629821eabb250 /tipc/cmdl.h | |
parent | Initial commit. (diff) | |
download | iproute2-9b8a97db9ec4b795e29e72289005fbc58484ebeb.tar.xz iproute2-9b8a97db9ec4b795e29e72289005fbc58484ebeb.zip |
Adding upstream version 6.8.0.upstream/6.8.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | tipc/cmdl.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tipc/cmdl.h b/tipc/cmdl.h new file mode 100644 index 0000000..18fe51b --- /dev/null +++ b/tipc/cmdl.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * cmdl.h Framework for handling command line options. + * + * 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 |