/*************************************************************************************************** 文件名: eth2sys.h ---------------------------------------------------------------------------- 描述 : eth2sys.c的头文件 ---------------------------------------------------------------------------- 修改日志 : 日期 姓名 操作 ---------------------------------------------------------------------------- 2020-11-25 陈云洲 创建 ***************************************************************************************************/ #ifndef _ETH2SYS_H_ #define _ETH2SYS_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include #define ETH2_YES (1) #define ETH2_NO (0) #define ETH2_OK (0) #define ETH2_ERR (-1) #define ETH2_MAC_HEAD_SIZE (14) #define ETH2_IP_HEAD_SIZE (20) #define ETH2_TCP_HEAD_SIZE (20) #define ETH2_UDP_HEAD_SIZE (8) //最大的以太网报文长度,字节 #define ETH2_MAX_ETHPKT_SIZE (1514) //最大的IP数据报长度,字节 #define ETH2_MAX_IPPKT_SIZE (ETH2_MAX_ETHPKT_SIZE - ETH2_MAC_HEAD_SIZE) //最大的TCP数据长度,字节 #define ETH2_MAX_TCPDATA_SIZE (ETH2_MAX_IPPKT_SIZE - ETH2_IP_HEAD_SIZE - ETH2_TCP_HEAD_SIZE) //最大的UDP数据长度,字节 #define ETH2_MAX_UDPDATA_SIZE (ETH2_MAX_IPPKT_SIZE - ETH2_IP_HEAD_SIZE - ETH2_UDP_HEAD_SIZE) #define ETH2_SIZE_1K (1024) #define ETH2_SIZE_2K (2*ETH2_SIZE_1K) #define ETH2_SIZE_4K (4*ETH2_SIZE_1K) //最大的IP字符串("192.168.200.113")长度,字节 #define ETH2_IP_STRING_SIZE (20) //最大的IP缓冲区[192,168,200,113]长度,字节 #define ETH2_IP_BUF_SIZE (4) //最大的MAC字符串("00-11-22-AA-BB-CC")长度,字节 #define ETH2_MAC_STRING_SIZE (30) //最大的MAC缓冲区[00,11,22,AA,BB,CC]长度,字节 #define ETH2_MAC_BUF_SIZE (6) #define ETH2_FORMAT_TIME_SIZE (32) #define ETH2_TIME_SIZE ETH2_FORMAT_TIME_SIZE typedef void VOID; typedef uint8_t U8; typedef uint16_t U16; typedef uint32_t U32; typedef char CHAR ; typedef unsigned char UCHAR ; typedef int INT; typedef unsigned int UINT; #define CONST const #ifdef linux #define ETH2_OS_LINUX (1) #else #define ETH2_OS_WINDOWS (1) #endif #ifdef ETH2_OS_LINUX #include #include #include #include #include #include #include #include #include #include typedef struct stat STAT_S; #define ETH2_STAT(path, pstStat) stat(path, pstStat) #define ETH2_WARNING()\ {\ printf("\n++++++++++++++++++++++++++++ WARNING ++++++++++++++++++++++++++++");\ printf("\nFILE : [ %s ]; FUNCTION : [ %s ]; LINE : [ %d ];",__FILE__,__FUNCTION__,__LINE__);\ printf("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");\ } #define ETH2_TRACE(fmt,args...)\ {\ printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");\ printf("\nfile : [ %s ]; function : [ %s ]; line : [ %d ];",__FILE__,__FUNCTION__,__LINE__);\ printf(fmt,##args);\ printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");\ } #define ETH2_SPRINTF(fmt,args...) sprintf(fmt,##args) #define ETH2_SSCANF(fmt,args...) sscanf(fmt,##args) #define ETH2_LOG(fmt,args...) printf("\n");printf(fmt,##args) #define ETH2_SIZEOF(x) sizeof(x) //延迟函数,毫秒 #define ETH2_SLEEP(msec) usleep(msec*1000) //延迟函数,微秒 #define ETH2_USLEEP(usec) usleep(usec) INT eth2_file_exist(CONST CHAR*pcPath); VOID eth2_print_memory(CONST VOID * const pucAddr, U32 ulSize); VOID eth2_mac_str2buf(U8 * pucMac, CONST CHAR * pcStrMac); VOID eth2_ip_str2buf(U8 * pucIp, CONST CHAR * pcStrIp); U32 eth2_str2u32(CONST CHAR * pcIPorMask); VOID eth2_get_cur_time(CHAR * pcTimeBuf); #endif #ifdef __cplusplus } #endif #endif