📄 net_sock.h
字号:
/*$PAGE*/
/*
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*/
NET_SOCK_EXT NET_SOCK NetSock_Tbl[NET_SOCK_CFG_NBR_SOCK];
NET_SOCK_EXT NET_SOCK *NetSock_PoolPtr; /* Ptr to pool of free socks. */
NET_SOCK_EXT NET_STAT_POOL NetSock_PoolStat;
NET_SOCK_EXT NET_PORT_NBR NetSock_RandomPortNbrQ[NET_SOCK_PORT_NBR_RANDOM_NBR];
NET_SOCK_EXT NET_PORT_NBR NetSock_RandomPortNbrQ_HeadIx; /* Random port FIFO Q head ix. */
NET_SOCK_EXT NET_PORT_NBR NetSock_RandomPortNbrQ_TailIx; /* Random port FIFO Q tail ix. */
NET_SOCK_EXT NET_PORT_NBR_QTY NetSock_RandomPortNbrQ_NbrUsed; /* Random port FIFO Q nbr used. */
#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED) /* -------------- NET SOCK STATS -------------- */
NET_SOCK_EXT NET_CTR NetSock_StatRxPktCtr; /* Nbr rx'd pkts. */
NET_SOCK_EXT NET_CTR NetSock_StatRxPktProcessedCtr; /* Nbr rx'd pkts delivered to apps. */
#endif
#if (NET_CTR_CFG_ERR_EN == DEF_ENABLED) /* -------------- NET SOCK ERRS --------------- */
NET_SOCK_EXT NET_CTR NetSock_ErrNullPtrCtr; /* Nbr null sock ptr accesses. */
NET_SOCK_EXT NET_CTR NetSock_ErrNullSizeCtr;
NET_SOCK_EXT NET_CTR NetSock_ErrNoneAvailCtr; /* Nbr socks unavail. */
NET_SOCK_EXT NET_CTR NetSock_ErrNotUsedCtr; /* Nbr unused sock accesses. */
NET_SOCK_EXT NET_CTR NetSock_ErrCloseCtr; /* Nbr sock closes. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidFamilyCtr; /* Nbr socks with invalid sock family. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidProtocolCtr; /* Nbr socks with invalid sock protocol. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidSockTypeCtr; /* Nbr socks with invalid sock type. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidSockCtr; /* Nbr socks with invalid sock params. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidFlagsCtr; /* Nbr socks with invalid flags. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidOpCtr; /* Nbr socks with invalid op. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidStateCtr; /* Nbr socks with invalid state. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidAddrCtr; /* Nbr socks with invalid addr. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidAddrLenCtr; /* Nbr socks with invalid addr len. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidAddrInUseCtr; /* Nbr socks with addr already in use. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidPortNbrCtr; /* Nbr socks with invalid port nbr. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidConnInUseCtr; /* Nbr socks with conn already in use. */
#if (NET_SOCK_CFG_TYPE_STREAM_EN == DEF_ENABLED)
NET_SOCK_EXT NET_CTR NetSock_ErrConnAcceptQ_NoneAvailCtr; /* Nbr accept Q conns unavail. */
#endif
NET_SOCK_EXT NET_CTR NetSock_ErrRandomPortNbrNoneAvailCtr; /* Nbr random port nbrs unavail. */
NET_SOCK_EXT NET_CTR NetSock_ErrRxDestCtr; /* Nbr rx'd pkts for unavail dest. */
NET_SOCK_EXT NET_CTR NetSock_ErrRxPktDiscardedCtr; /* Nbr rx'd pkts discarded. */
#if (NET_ERR_CFG_ARG_CHK_EXT_EN == DEF_ENABLED)
NET_SOCK_EXT NET_CTR NetSock_ErrTxInvalidSizeCtr;
#endif
#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidTypeCtr; /* Nbr socks with invalid type. */
NET_SOCK_EXT NET_CTR NetSock_ErrInvalidConnCtr;
NET_SOCK_EXT NET_CTR NetSock_ErrRxInvalidBufIxCtr; /* Nbr rx pkts with invalid buf ix. */
#if (NET_SOCK_CFG_TYPE_STREAM_EN == DEF_ENABLED)
NET_SOCK_EXT NET_CTR NetSock_ErrConnAcceptQ_MaxCtr;
#endif
NET_SOCK_EXT NET_CTR NetSock_ErrRandomPortNbrQ_UsedCtr;
NET_SOCK_EXT NET_CTR NetSock_ErrRandomPortNbrQ_NbrInQ_Ctr;
#endif
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void NetSock_Init (NET_ERR *perr);
/* ----------- RX FNCTS ----------- */
void NetSock_Rx (NET_BUF *pbuf,
NET_ERR *perr);
/* ----------- TX FNCTS ----------- */
/* -------- SOCK API FNCTS -------- */
NET_SOCK_ID NetSock_Open (CPU_INT16S protocol_family,
CPU_INT16S sock_type,
CPU_INT16S protocol,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_Close (NET_SOCK_ID sock_id,
NET_ERR *perr);
void NetSock_CloseFromConn (NET_SOCK_ID sock_id,
NET_CONN_ID conn_id);
void NetSock_FreeConnFromSock (NET_SOCK_ID sock_id,
NET_CONN_ID conn_id);
NET_SOCK_RTN_CODE NetSock_Bind (NET_SOCK_ID sock_id,
NET_SOCK_ADDR *paddr_local,
NET_SOCK_ADDR_LEN addr_len,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_Conn (NET_SOCK_ID sock_id,
NET_SOCK_ADDR *paddr_remote,
NET_SOCK_ADDR_LEN addr_len,
NET_ERR *perr);
#if (NET_SOCK_CFG_TYPE_STREAM_EN == DEF_ENABLED)
void NetSock_ConnSignalReq (NET_SOCK_ID sock_id,
NET_ERR *perr);
void NetSock_ConnSignalAccept (NET_SOCK_ID sock_id,
NET_CONN_ID conn_id,
NET_ERR *perr);
void NetSock_ConnSignalClose (NET_SOCK_ID sock_id,
CPU_BOOLEAN data_avail,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_Listen (NET_SOCK_ID sock_id,
NET_SOCK_Q_SIZE sock_q_size,
NET_ERR *perr);
CPU_BOOLEAN NetSock_ListenQ_IsAvail (NET_SOCK_ID sock_id,
NET_ERR *perr);
NET_SOCK_ID NetSock_Accept (NET_SOCK_ID sock_id,
NET_SOCK_ADDR *paddr_remote,
NET_SOCK_ADDR_LEN *paddr_len,
NET_ERR *perr);
#endif
/*$PAGE*/
NET_SOCK_RTN_CODE NetSock_RxDataFrom (NET_SOCK_ID sock_id,
void *pdata_buf,
CPU_INT16S data_buf_len,
CPU_INT16S flags,
NET_SOCK_ADDR *paddr_remote,
NET_SOCK_ADDR_LEN *paddr_len,
void *pip_opts_buf,
CPU_INT08U ip_opts_buf_len,
CPU_INT08U *pip_opts_len,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_RxData (NET_SOCK_ID sock_id,
void *pdata_buf,
CPU_INT16S data_buf_len,
CPU_INT16S flags,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_TxDataTo (NET_SOCK_ID sock_id,
void *p_data,
CPU_INT16S data_len,
CPU_INT16S flags,
NET_SOCK_ADDR *paddr_remote,
NET_SOCK_ADDR_LEN addr_len,
NET_ERR *perr);
NET_SOCK_RTN_CODE NetSock_TxData (NET_SOCK_ID sock_id,
void *p_data,
CPU_INT16S data_len,
CPU_INT16S flags,
NET_ERR *perr);
/* ------ SOCK STATUS FNCTS ------- */
CPU_BOOLEAN NetSock_IsUsed (NET_SOCK_ID sock_id);
CPU_BOOLEAN NetSock_IsConn (NET_SOCK_ID sock_id);
NET_STAT_POOL NetSock_PoolStatGet (void);
void NetSock_PoolStatResetMaxUsed (void);
/*$PAGE*/
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
* DEFINED IN OS'S net_os.c
*********************************************************************************************************
*/
void NetOS_Sock_Init (NET_ERR *perr); /* Create sock objs. */
/* Clr sock rx Q signal(s). */
void NetOS_Sock_RxQ_Clr (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Wait for sock rx Q signal. */
void NetOS_Sock_RxQ_Wait (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Signal sock rx Q. */
void NetOS_Sock_RxQ_Signal (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Set sock rx Q timeout. */
void NetOS_Sock_RxQ_TimeoutSet (NET_SOCK_ID sock_id,
CPU_INT32U timeout_ms,
NET_ERR *perr);
/* Get sock rx Q timeout. */
CPU_INT32U NetOS_Sock_RxQ_TimeoutGet_ms (NET_SOCK_ID sock_id,
NET_ERR *perr);
#if (NET_SOCK_CFG_TYPE_STREAM_EN == DEF_ENABLED) /* Clr sock conn signal(s). */
void NetOS_Sock_ConnReqClr (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Wait for sock conn signal. */
void NetOS_Sock_ConnReqWait (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Signal sock conn. */
void NetOS_Sock_ConnReqSignal (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Abort sock conn. */
void NetOS_Sock_ConnReqAbort (NET_SOCK_ID sock_id,
NET_ERR *perr);
/* Set sock conn timeout. */
void NetOS_Sock_ConnReqTimeoutSet (NET_SOCK_ID sock_id,
CPU_INT32U timeout_ms,
NET_ERR *perr);
/* Get sock conn timeout. */
CPU_INT32U NetOS_Sock_ConnReqTimeoutGet_ms (NET_SOCK_ID sock_id,
NET_ERR *perr);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -