static sw_error_t cmd_parse_sw(char **cmd_str, a_uint32_t * arg_val) { char *tmp_str; a_uint32_t arg_index = 0; a_uint32_t api_id = arg_val[0]; tmp_str = cmd_str[arg_index]; while (tmp_str) { arg_index++; cmd_strtol(tmp_str, &arg_val[arg_index]); tmp_str = cmd_str[arg_index]; } /*args number check */ if ( (arg_index == 0 && ( api_id == SW_CMD_VLAN_SHOW || api_id == SW_CMD_FDB_SHOW || api_id == SW_CMD_RESV_FDB_SHOW || api_id == SW_CMD_HOST_SHOW || api_id == SW_CMD_NAT_SHOW || api_id == SW_CMD_NAPT_SHOW || api_id == SW_CMD_INTFMAC_SHOW || api_id == SW_CMD_PUBADDR_SHOW )) || ( arg_index == 1 && api_id == SW_CMD_SET_DEVID) ) return SW_OK; return SW_BAD_PARAM; }
static int cmd_wpas_parse_int(const char *value, int min, int max, int *dst) { int val; char *end; val = cmd_strtol(value, &end, 0); if (*end) { CMD_ERR("Invalid number '%s'", value); return -1; } if (val < min || val > max) { CMD_ERR("out of range value %d (%s), range is [%d, %d]\n", val, value, min, max); return -1; } *dst = val; return 0; }