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

📄 net_sock.h

📁 ucos的tcpip协议占
💻 H
📖 第 1 页 / 共 4 页
字号:

/*$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 + -