2025-04-30 16:24:29 +08:00

141 lines
4.1 KiB
C

/***************************************************************************************************
文件名: eth2sys.h
----------------------------------------------------------------------------
描述 : eth2sys.c的头文件
----------------------------------------------------------------------------
修改日志 :
日期 姓名 操作
----------------------------------------------------------------------------
2020-11-25 陈云洲 创建
***************************************************************************************************/
#ifndef _ETH2SYS_H_
#define _ETH2SYS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#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 <getopt.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/spi/spidev.h>
#include <string.h>
#include <signal.h>
#include <linux/in.h>
#include <sys/time.h>
#include <sys/stat.h>
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