1/* 2 * Copyright (c) 2013, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17#ifndef _SHELL_CONFIG_H_ 18#define _SHELL_CONFIG_H_ 19 20#ifdef __cplusplus 21extern "C" { 22#endif 23 24#include "sw.h" 25#include "sw_ioctl.h" 26#include "sw_api.h" 27 28#define SW_CMD_SET_DEVID (SW_API_MAX + 1) 29#define SW_CMD_VLAN_SHOW (SW_API_MAX + 2) 30#define SW_CMD_FDB_SHOW (SW_API_MAX + 3) 31#define SW_CMD_RESV_FDB_SHOW (SW_API_MAX + 4) 32#define SW_CMD_HOST_SHOW (SW_API_MAX + 5) 33#define SW_CMD_NAT_SHOW (SW_API_MAX + 6) 34#define SW_CMD_NAPT_SHOW (SW_API_MAX + 7) 35#define SW_CMD_INTFMAC_SHOW (SW_API_MAX + 8) 36#define SW_CMD_PUBADDR_SHOW (SW_API_MAX + 9) 37#define SW_CMD_FLOW_SHOW (SW_API_MAX + 10) 38#define SW_CMD_MAX (SW_API_MAX + 11) 39 40#define MAX_SUB_CMD_DES_NUM 80 41 42 struct sub_cmd_des_t 43 { 44 char *sub_name; 45 char *sub_act; 46 char *sub_memo; 47 char *sub_usage; 48 int sub_api; 49 sw_error_t (*sub_func) (); 50 }; 51 struct cmd_des_t 52 { 53 char *name; 54 char *memo; 55 struct sub_cmd_des_t sub_cmd_des[MAX_SUB_CMD_DES_NUM]; 56 }; 57 extern struct cmd_des_t gcmd_des[]; 58 59#define GCMD_DES gcmd_des 60 61#define GCMD_NAME(cmd_nr) GCMD_DES[cmd_nr].name 62#define GCMD_MEMO(cmd_nr) GCMD_DES[cmd_nr].memo 63 64#define GCMD_SUB_NAME(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_name 65#define GCMD_SUB_ACT(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_act 66#define GCMD_SUB_MEMO(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_memo 67#define GCMD_SUB_USAGE(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_usage 68#define GCMD_SUB_API(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_api 69#define GCMD_SUB_FUNC(cmd_nr, sub_cmd_nr) GCMD_DES[cmd_nr].sub_cmd_des[sub_cmd_nr].sub_func 70 71#define GCMD_DESC_VALID(cmd_nr) GCMD_NAME(cmd_nr) 72#define GCMD_SUB_DESC_VALID(cmd_nr, sub_cmd_nr) GCMD_SUB_API(cmd_nr, sub_cmd_nr) 73 74 75#define GCMD_DESC_NO_MATCH 0xffffffff 76 77#ifdef __cplusplus 78} 79#endif /* __cplusplus */ 80 81#endif /* _SHELL_CONFIG_H_ */ 82