xref: /netbsd-src/external/bsd/wpa/dist/src/common/cli.h (revision 36ebd06e5ab61115eab7acca17a2350fc8222071)
1*36ebd06eSchristos /*
2*36ebd06eSchristos  * Common hostapd/wpa_supplicant command line interface functionality
3*36ebd06eSchristos  * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
4*36ebd06eSchristos  *
5*36ebd06eSchristos  * This software may be distributed under the terms of the BSD license.
6*36ebd06eSchristos  * See README for more details.
7*36ebd06eSchristos  */
8*36ebd06eSchristos 
9*36ebd06eSchristos #ifndef CLI_H
10*36ebd06eSchristos #define CLI_H
11*36ebd06eSchristos 
12*36ebd06eSchristos #include "utils/list.h"
13*36ebd06eSchristos 
14*36ebd06eSchristos extern const char *const cli_license;
15*36ebd06eSchristos extern const char *const cli_full_license;
16*36ebd06eSchristos 
17*36ebd06eSchristos struct cli_txt_entry {
18*36ebd06eSchristos 	struct dl_list list;
19*36ebd06eSchristos 	char *txt;
20*36ebd06eSchristos };
21*36ebd06eSchristos 
22*36ebd06eSchristos void cli_txt_list_free(struct cli_txt_entry *e);
23*36ebd06eSchristos void cli_txt_list_flush(struct dl_list *list);
24*36ebd06eSchristos 
25*36ebd06eSchristos struct cli_txt_entry *
26*36ebd06eSchristos cli_txt_list_get(struct dl_list *txt_list, const char *txt);
27*36ebd06eSchristos 
28*36ebd06eSchristos void cli_txt_list_del(struct dl_list *txt_list, const char *txt);
29*36ebd06eSchristos void cli_txt_list_del_addr(struct dl_list *txt_list, const char *txt);
30*36ebd06eSchristos void cli_txt_list_del_word(struct dl_list *txt_list, const char *txt,
31*36ebd06eSchristos 			   int separator);
32*36ebd06eSchristos 
33*36ebd06eSchristos int cli_txt_list_add(struct dl_list *txt_list, const char *txt);
34*36ebd06eSchristos int cli_txt_list_add_addr(struct dl_list *txt_list, const char *txt);
35*36ebd06eSchristos int cli_txt_list_add_word(struct dl_list *txt_list, const char *txt,
36*36ebd06eSchristos 			  int separator);
37*36ebd06eSchristos 
38*36ebd06eSchristos char ** cli_txt_list_array(struct dl_list *txt_list);
39*36ebd06eSchristos 
40*36ebd06eSchristos int get_cmd_arg_num(const char *str, int pos);
41*36ebd06eSchristos int write_cmd(char *buf, size_t buflen, const char *cmd, int argc,
42*36ebd06eSchristos 	      char *argv[]);
43*36ebd06eSchristos 
44*36ebd06eSchristos #define max_args 10
45*36ebd06eSchristos int tokenize_cmd(char *cmd, char *argv[]);
46*36ebd06eSchristos 
47*36ebd06eSchristos #endif /* CLI_H */
48