⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asock.h

📁 abstract rtos
💻 H
字号:
#ifdef __cplusplusextern "C"{#endif #ifndef __INC_ASOCK_H__#define __INC_ASOCK_H__#ifndef USE_OS_IP_STACK#include "ip/ip_pub.h" #include "socket/sock_pub.h"  #include "socket/sock_err.h"#else#if( CONFIG_OS_WINDOWS == TRUE )#include <winsock2.h>#ifndef MSG_DONTWAIT#define MSG_DONTWAIT 0x0  #endif#elif( CONFIG_OS_VXWORKS == TRUE )#endif#define FIOREAD         	0x4004667F      #define	EAGAIN		       -35		#define   EINVAL		      -116typedef struct fd_set FD_SET_S;typedef struct tagSOCKADDR{	U8   sa_ucLen;               	U8   sa_ucFamily;            	S8   sa_cData[14];           }SOCKADDR_S;typedef struct tagINADDR{	U32 s_ulAddr;}INADDR_S;typedef struct tagSOCKADDRIN{	U8	sin_chLen;	U8	sin_chFamily;	U16	sin_usPort;	INADDR_S sin_stAddr;	S8	          sin_chZero_a[8];}SOCKADDRIN_S;typedef struct tagTIME_VAL{	S32	tv_lSec;	S32	tv_lUsec;}TIME_VAL_S;typedef struct tagIOVEC {	S8	*iov_pBase;		S32	iov_nLen;	}IOVEC_S;typedef struct tagIP{#if CONDIF_LITTLE_ENDIAN == TRUE    U8   ip_chHLen:4;        	    U8   ip_chVer:4;         	#else    U8  ip_chVer:4;         	    U8  ip_chHLen:4;        	#endif    U8	ip_chTOS;			U16	ip_usLen;		#define    ip_sLen	ip_usLen	U16	ip_usId;				U16	ip_usOff;		#define    ip_sOff	ip_usOff#define	IP_DF 0x4000		#define	IP_MF 0x2000		#define	IP_OFFMASK 0x1fff		U8	ip_chTTL;			U8	ip_chPr;				U16	ip_usSum;			struct	tagINADDR ip_stSrc;    struct	tagINADDR ip_stDst;	}IP_S;#define TCP_SEQ  	U32typedef struct tagTCPHDR{	U16    usSrcPort;	U16    usDstPort;	TCP_SEQ  seqSeqNumber;	TCP_SEQ  seqAckNumber;#if CONDIF_LITTLE_ENDIAN == TRUE	U8   ucX2:4,	ucOffset:4;#else	U8   ucOffset:4,		ucX2:4;                       #endif	U8   ucFlags;    U16      usWnd;    U16      usCheckSum;    U16      usUrgentPoint;} TCPHDR_S;typedef struct tagIPOVLY{    S8    	*ih_pNext,*ih_pPrev;     U8   	ih_chXl;            	    U8   	ih_chPr;            	    S16   	ih_sLen;            	    INADDR_S ih_stSrc; 	    INADDR_S ih_stDst; 	}IPOVLY_S;typedef struct tagTCPIPHDR{	IPOVLY_S	ihOverlaidIP;	TCPHDR_S    thTCPHeader;} TCPIPHDR_S;typedef struct tagCMSGHDR{	S16		cmsg_nLen;	       	S16		cmsg_sLevel;		S16	       cmsg_sType;		S8		cmsg_cData[10]; }CMSGHDR_S;typedef struct tagMSGHDR{	S8		*msg_pName;			S16		msg_nNameLen;   	 	IOVEC_S	*msg_pIov;				S16		msg_nIovLen;			S8		*msg_pControl;			S16		msg_nControlLen;	S16		msg_sFlags;}MSGHDR_S;#ifndef SOCK_ALIAS#define SOCK_ALIAS#define socket		sys_socket#define bind		sys_bind#define listen      sys_listen#define accept      sys_accept#define connect     sys_connect#define sendto      sys_sendto#define send        sys_send#define sendmsg     sys_sendmsg#define recvfrom    sys_recvfrom#define recv        sys_recv#define recvmsg     sys_recvmsg#define setsockopt  sys_setsockopt#define getsockopt  sys_getsockopt#define getsockname sys_getsockname#define getpeername sys_getpeername#define copysocket( taskFrom, taskTo, iFd, iAlterFd ) (iFd)#define select      sys_select#define close       sys_close#define ioctl       sys_ioctl#undef FD_SET#define FD_SET(iFd,set)  sys_fd_set(iFd,set)#define gettcpstate(iFd) (0)#endifextern S32 sys_socket(S32 iFamily,S32 iType,S32 iProtocol);extern S32 sys_bind(S32 iFd, SOCKADDRIN_S *pSockAddr,S32 nAddrLen);extern S32 sys_listen(S32 iFd,S32 iBackLog);extern S32 sys_accept(S32 iFd,  SOCKADDRIN_S *pAddr,S32 *pAddrLen);extern S32 sys_connect(S32 iFd, SOCKADDRIN_S *pAddr,S32 nAddrLen);extern S32 sys_recv(S32 iFd,S8 *pBuf,S32 nLen,S32 iFlags);extern S32 sys_recvfrom(S32 iFd,S8 *pBuf,S32 nLen,S32 iFlags,            SOCKADDRIN_S *pFrom, S32 *pFromLen);extern S32 sys_recvmsg(S32 iFd, MSGHDR_S *pMsg,S32 iFlags);extern S32 sys_send(S32 iFd,S8 *pString,S32 nLen,S32 iFlags) ;extern S32 sys_sendto(S32 iFd,S8 *pString,S32 nLen,S32 iFlags,           SOCKADDRIN_S  *pAddr,S32 nAddrLen);extern S32 sys_sendmsg(S32 iFd, MSGHDR_S *pMsg,S32 iFlags);extern S32 sys_shutdown(S32 iFd,S32 iHow);extern S32 sys_setsockopt(S32 iFd,S32 iLevel,S32 iOptName,S8 *pOptVal,           S32 nOptLen);extern S32 sys_getsockopt(S32 iFd,S32 iLevel,S32 iOptName,S8 *pOptVal,           S32 *pOptLen);extern S32 sys_getsockname(S32 iFd,SOCKADDRIN_S  *pAddr,S32 *pAddrLen);extern S32 sys_getpeername(S32 iFd,SOCKADDRIN_S  *pAddr,S32 *pAddrLen);extern S32 sys_select(S32 iNd, FD_SET_S *pIn, FD_SET_S *pOut, FD_SET_S *pEx,           TIME_VAL_S *pTv0);extern S32 sys_close(S32 iFd);extern VOID sys_fd_set( S32 iFd, FD_SET_S *set );extern S32 sys_ioctl(S32 iFd,U32 ulReq,S8 *pVal);#endif#endif#ifdef __cplusplus}#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -