• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * cmdl.h	Framework for handling command line options.
3  *
4  *		This program is free software; you can redistribute it and/or
5  *		modify it under the terms of the GNU General Public License
6  *		as published by the Free Software Foundation; either version
7  *		2 of the License, or (at your option) any later version.
8  *
9  * Authors:	Richard Alpe <richard.alpe@ericsson.com>
10  */
11 
12 #ifndef _TIPC_CMDL_H
13 #define _TIPC_CMDL_H
14 
15 #include <libmnl/libmnl.h>
16 
17 extern int help_flag;
18 
19 struct cmdl {
20 	int optind;
21 	int argc;
22 	char **argv;
23 };
24 
25 struct cmd {
26 	const char *cmd;
27 	int (*func)(struct nlmsghdr *nlh, const struct cmd *cmd,
28 		    struct cmdl *cmdl, void *data);
29 	void (*help)(struct cmdl *cmdl);
30 };
31 
32 struct opt {
33 	const char *key;
34 	char *val;
35 };
36 
37 struct opt *get_opt(struct opt *opts, char *key);
38 int parse_opts(struct opt *opts, struct cmdl *cmdl);
39 char *shift_cmdl(struct cmdl *cmdl);
40 
41 int run_cmd(struct nlmsghdr *nlh, const struct cmd *caller,
42 	    const struct cmd *cmds, struct cmdl *cmdl, void *data);
43 
44 const struct cmd *find_cmd(const struct cmd *cmds, char *str);
45 
46 #endif
47