#ifndef _RET_ERRNO_H #define _RET_ERRNO_H #include "config_manager.h" /* error no, 32位,前16位为模块ID,后16位为模块错误码 */ typedef unsigned int ret_code; /*0x00000000 ~ 0x0000ffff 为系统预留错误码,用于一般性系统错误, 例如内存不够,输入错误等*/ /*ret code 0x00000000 ~ 0x0000ffff*/ #define RET_OK 0 #define RET_ERR 1 #define RET_UNKNOWN 2 #define RET_SYSERR 3 #define RET_NOTFOUND 4 #define RET_TIMEOUT 5 #define RET_NULLP 6 #define RET_NOMEM 7 #define RET_CHKERR 8 #define RET_NOTSUPPORT 9 #define RET_INPUTERR 10 #define RET_EXIST 11 #define RET_FULL 12 #define RET_SENDERR 13 #define RET_NOCMID 14 #define RET_SRCERR 15 #define RET_JSONERR 16 /* NETCONFIG_MODULE 0x00010000 ~ 0x0001ffff*/ #define RET_IPINVALID (unsigned int)((unsigned int)NETCONFIG_MODULE<<16|1) #define RET_BRNAMEERR (unsigned int)((unsigned int)NETCONFIG_MODULE<<16|2) #define RET_NETMASKERR (unsigned int)((unsigned int)NETCONFIG_MODULE<<16|3) /* VLANCONFIG_MODULE 0x00050000 ~ 0x0005ffff*/ #define RET_VIDNUM_INVALID (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|1) #define RET_VID_INVALID (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|2) #define RET_VID_EXIST (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|3) #define RET_VID_NOT_EXIST (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|4) #define RET_INTERFACE_NOT_EXIST (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|5) #define RET_ATTR_INVALID (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|6) #define RET_OPTYPE_ERR (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|7) #define RET_SYS_VCONFIG_ERR (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|8) #define RET_SYS_IFCONFIG_ERR (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|9) #define RET_SYS_FILEOP_ERR (unsigned int)((unsigned int)VLAN_CONFIG_MODULE<<16|10) /* STATIC_ROUTING_MODULE 0x00090000 ~ 0x0009ffff*/ #define RET_OPEN_FILE_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|1) #define RET_EXEC_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|2) #define RET_METRIC_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|3) #define RET_NETMASK_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|4) #define RET_EMPTY_STRING (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|5) #define RET_WRONG_TYPE (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|6) #define RET_VERSION_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|7) #define RET_DESTIP_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|8) #define RET_GATEWAY_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|9) #define RET_GW_DEV_ERR (unsigned int)((unsigned int)STATIC_ROUTING_CONFIG_MODULE<<16|10) /* LTE_CONFIG_MODULE 0x00070000 ~ 0x0007ffff*/ #define RET_EXEC_SHELL_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|1) #define RET_NULL_INPUT_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|2) #define RET_LTE_NO_MATCH_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|3) #define RET_NO_LTE_MODULE_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|4) #define RET_ALREADY_START_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|5) #define RET_ALREADY_STOP_ERR (unsigned int)((unsigned int)LTE_CONFIG_MODULE<<16|6) #define ERR_STR_LEN 64 /* 错误码描述 */ #define RET_ERROR_DISC \ { \ { RET_OK, "OK" }, \ { RET_ERR, "Error" },\ { RET_UNKNOWN, "Unkown" },\ { RET_SYSERR, "SystemError" },\ { RET_NOTFOUND, "NotFound" }, \ { RET_TIMEOUT, "Timeout" }, \ { RET_NULLP, "NullPointer" } ,\ { RET_NOMEM, "NotEnoughMemory"},\ { RET_CHKERR, "CheckError"},\ { RET_NOTSUPPORT, "NotSupport"},\ { RET_INPUTERR, "InputError"},\ { RET_EXIST, "AlreadyExist"},\ { RET_FULL, "Full"},\ { RET_SENDERR, "SendErr"},\ { RET_NOCMID, "CanNotFindConfig"},\ { RET_SRCERR, "ConfigSourceErr"},\ { RET_JSONERR, "JsonFormatErr"},\ \ { RET_IPINVALID, "IpInvalid"},\ { RET_BRNAMEERR, "BrNameInvalid"},\ { RET_NETMASKERR, "NetMaskInvalid"},\ \ { RET_VIDNUM_INVALID, "VidNumInvalid"},\ { RET_VID_INVALID, "VidValueInvalid"},\ { RET_VID_EXIST, "VidHasExist"},\ { RET_VID_NOT_EXIST, "VidHasNotExist"},\ { RET_INTERFACE_NOT_EXIST, "InterfaceHasNotExist"},\ { RET_ATTR_INVALID, "AttrInvalid"},\ { RET_OPTYPE_ERR, "OperationTypeError"},\ { RET_SYS_VCONFIG_ERR, "SystemVconfigError"},\ { RET_SYS_IFCONFIG_ERR, "SystemIfconfigError"},\ { RET_SYS_FILEOP_ERR, "SystemFileOperationError"},\ \ { RET_OPEN_FILE_ERR, "CanNotOpenConfigFile"},\ { RET_EXEC_ERR, "CanNotExecuateShell"},\ { RET_METRIC_ERR, "InvalidMetric"},\ { RET_NETMASK_ERR, "InvalidNetmask"},\ { RET_EMPTY_STRING, "InputEmpty"},\ { RET_WRONG_TYPE, "WrongType"},\ { RET_VERSION_ERR, "InvalidProtocol"},\ { RET_DESTIP_ERR, "InvalidDestIP"},\ { RET_GATEWAY_ERR, "InvalidGateway"},\ { RET_GW_DEV_ERR, "Gateway&DevEmpty"},\ \ { RET_EXEC_SHELL_ERR, "CantExecShell"},\ { RET_NULL_INPUT_ERR, "EmptyInput"},\ { RET_LTE_NO_MATCH_ERR, "LTENoMatch"},\ { RET_NO_LTE_MODULE_ERR, "NoLTEModule"},\ { RET_ALREADY_START_ERR, "AlreadyStart"},\ { RET_ALREADY_STOP_ERR, "AlreadyStop"}\ } struct err_disc { int code; const char *name; } ; static inline char* ret_code_format(ret_code code, char* str) { struct err_disc ret_err[] = RET_ERROR_DISC; int len = sizeof(ret_err) / sizeof(struct err_disc); int i; for(i = 0; i < len; i++){ if(code == ret_err[i].code){ strcpy(str, ret_err[i].name); return str; } } return str; } #endif