17f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt/* 27f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt * Common hostapd/wpa_supplicant command line interface functionality 37f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi> 47f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt * 57f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt * This software may be distributed under the terms of the BSD license. 67f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt * See README for more details. 77f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt */ 87f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 97f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt#ifndef CLI_H 107f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt#define CLI_H 117f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 127f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt#include "utils/list.h" 137f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 147f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtextern const char *const cli_license; 157f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtextern const char *const cli_full_license; 167f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 177f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtstruct cli_txt_entry { 187f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt struct dl_list list; 197f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt char *txt; 207f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt}; 217f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 227f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtvoid cli_txt_list_free(struct cli_txt_entry *e); 237f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtvoid cli_txt_list_flush(struct dl_list *list); 247f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 257f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtstruct cli_txt_entry * 267f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtcli_txt_list_get(struct dl_list *txt_list, const char *txt); 277f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 287f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtvoid cli_txt_list_del(struct dl_list *txt_list, const char *txt); 297f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtvoid cli_txt_list_del_addr(struct dl_list *txt_list, const char *txt); 307f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtvoid cli_txt_list_del_word(struct dl_list *txt_list, const char *txt, 317f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt int separator); 327f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 337f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint cli_txt_list_add(struct dl_list *txt_list, const char *txt); 347f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint cli_txt_list_add_addr(struct dl_list *txt_list, const char *txt); 357f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint cli_txt_list_add_word(struct dl_list *txt_list, const char *txt, 367f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt int separator); 377f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 387f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtchar ** cli_txt_list_array(struct dl_list *txt_list); 397f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 407f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint get_cmd_arg_num(const char *str, int pos); 417f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint write_cmd(char *buf, size_t buflen, const char *cmd, int argc, 427f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt char *argv[]); 437f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 447f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt#define max_args 10 457f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidtint tokenize_cmd(char *cmd, char *argv[]); 467f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt 477f2c753f60025528366b5f19b8b490a47bf5080bDmitry Shmidt#endif /* CLI_H */ 48