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

📄 net_conn.h

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

typedef  CPU_INT16U  NET_CONN_QTY;                              /* Defines max qty of conns      to support.            */


/*
*********************************************************************************************************
*                             NETWORK CONNECTION LIST QUANTITY DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT08U  NET_CONN_LIST_QTY;                         /* Defines max qty of conn lists to support.            */


/*
*********************************************************************************************************
*                               NETWORK CONNECTION LIST TYPE DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT08U  NET_CONN_LIST_TYPE;


/*
*********************************************************************************************************
*                               NETWORK CONNECTION LIST INDEX DATA TYPE
*
* Note(s) : (1) NET_CONN_LIST_IX_NONE  SHOULD be globally #define'd AFTER 'NET_CONN_LIST_IX' data type declared.
*********************************************************************************************************
*/

typedef  CPU_INT08U  NET_CONN_LIST_IX;

#define  NET_CONN_LIST_IX_NONE          DEF_INT_08U_MAX_VAL     /* Define as max unsigned val (see Note #1).            */


/*
*********************************************************************************************************
*                                 NETWORK CONNECTION FAMILY DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT08U  NET_CONN_FAMILY;


/*
*********************************************************************************************************
*                             NETWORK CONNECTION IDENTIFICATION DATA TYPE
*
* Note(s) : (1) The following Network Connection Module data type MUST be pre-#define'd in 'net_type.h' 
*               PRIOR to other network modules/layers that reference this data type (see 'net_type.h
*               NETWORK CONNECTION MANAGEMENT DATA TYPES  Note #1') :
*
*                   typedef     CPU_INT16S      NET_CONN_ID
*
*           (2) (a) NET_CONN_NBR_MAX  SHOULD be globally #define'd AFTER 'NET_CONN_ID' data type declared.
*
*               (b) Since connection handle identifiers are data-typed as 16-bit signed integers, the 
*                   maximum number of valid connection identifiers (i.e. non-negative) is the total 
*                   number of positive values that 16-bit signed integers support.
*********************************************************************************************************
*/


#define  NET_CONN_NBR_MAX               DEF_INT_16S_MAX_VAL     /* See Note #2.                                         */


/*
*********************************************************************************************************
*                             NETWORK CONNECTION ADDRESS LENGTH DATA TYPE
*********************************************************************************************************
*/

typedef  CPU_INT16U  NET_CONN_ADDR_LEN;


/*$PAGE*/
/*
*********************************************************************************************************
*                                    NETWORK CONNECTION DATA TYPE
*
*                                             NET_CONN
*                                          |-------------|
*                                          |  Conn Type  |
*                            Previous      |-------------|
*                           Connection <----------O      |
*                              Link        |-------------|        Next
*                                          |      O----------> Connection
*                            Previous      |-------------|        Link
*                           Connection <----------O      |
*                                          |-------------|        Next
*                                          |      O----------> Connection
*                                          |-------------|            
*                                          |      O----------> Connection
*                                          |-------------|        List
*                                          | Connection  |
*                                          |   Family    |
*                                          |  Protocol   |
*                                          |    Type     |
*                                          |-------------|
*                                          |  Conn IDs   |
*                                          |-------------|
*                                          |    Local    |
*                                          |   Address   |
*                                          |-------------|
*                                          |   Remote    |
*                                          |   Address   |
*                                          |-------------|
*                                          |  Accessed   |
*                                          |  Counters   |
*                                          |-------------|
*                                          |    Flags    |
*                                          |-------------|
*
*
* Note(s) : (1) Forced word-alignment at start of connection NOT required since first data member 'Type'
*               is declared as 'CPU_INT32U'.
*
*           (2) 'PrevChainPtr'/'NextChainPtr'/'PrevConnPtr'/'NextConnPtr'/'ConnList' ideally declared as
*               'NET_CONN' pointers; declared as 'void' pointers because 'NET_CONN' NOT fully defined at 
*               time of declaration.
*********************************************************************************************************
*/

typedef  struct  net_conn {
    NET_TYPE              Type;                                 /* Type cfg'd @ init : NET_CONN_TYPE_CONN.              */

    void                 *PrevChainPtr;                         /* Ptr to PREV conn list.                               */
    void                 *NextChainPtr;                         /* Ptr to NEXT conn list.                               */

    void                 *PrevConnPtr;                          /* Ptr to PREV conn.                                    */
    void                 *NextConnPtr;                          /* Ptr to NEXT conn.                                    */

    void                **ConnList;                             /* Conn list.                                           */


    NET_CONN_FAMILY       Family;                               /* Conn family.                                         */
    NET_CONN_LIST_IX      ProtocolListIx;                       /* Conn protocol list ix.                               */
    NET_CONN_LIST_TYPE    ConnListType;                         /* Conn list type.                                      */


    NET_CONN_ID           ID;                                   /*                 Conn id.                             */
    NET_CONN_ID           ID_App;                               /* App       layer conn id.                             */
    NET_CONN_ID           ID_AppClone;                          /* App       layer conn id clone.                       */
    NET_CONN_ID           ID_Transport;                         /* Transport layer conn id.                             */


    CPU_INT08U            AddrLocal[NET_CONN_CFG_ADDR_LEN];     /* Conn local  addr.                                    */
    CPU_BOOLEAN           AddrLocalValid;                       /* Conn local  addr valid flag.                         */

    CPU_INT08U            AddrRemote[NET_CONN_CFG_ADDR_LEN];    /* Conn remote addr.                                    */
    CPU_BOOLEAN           AddrRemoteValid;                      /* Conn remote addr valid flag.                         */


    CPU_INT16U            ConnChainAccessedCtr;                 /* Nbr conn chain head accesses.                        */
    CPU_INT16U            ConnAccessedCtr;                      /* Nbr conn            accesses (non-chain head).       */

    
    CPU_INT16U            Flags;                                /* Conn flags.                                          */
} NET_CONN;


/*$PAGE*/
/*
*********************************************************************************************************
*                                          GLOBAL VARIABLES
*********************************************************************************************************
*/

NET_CONN_EXT  NET_CONN          NetConn_Tbl[NET_CONN_CFG_NBR_CONN];
NET_CONN_EXT  NET_CONN         *NetConn_PoolPtr;                    /* Ptr to pool of free net conns.                   */
NET_CONN_EXT  NET_STAT_POOL     NetConn_PoolStat;

                                                                    /* Arrays of ptrs to net conn lists.                */
NET_CONN_EXT  NET_CONN         *NetConn_ServerConnListHead[NET_CONN_CFG_PROTOCOL_MAX];
NET_CONN_EXT  NET_CONN         *NetConn_ClientConnListHead[NET_CONN_CFG_PROTOCOL_MAX];

NET_CONN_EXT  NET_CONN         *NetConn_ConnListChainPtr;           /* Ptr to cur  conn list chain to update.           */
NET_CONN_EXT  NET_CONN         *NetConn_ConnListConnPtr;            /* Ptr to cur  conn list conn  to update.           */
NET_CONN_EXT  NET_CONN         *NetConn_ConnListNextChainPtr;       /* Ptr to next conn list chain to update.           */
NET_CONN_EXT  NET_CONN         *NetConn_ConnListNextConnPtr;        /* Ptr to next conn list conn  to update.           */


NET_CONN_EXT  CPU_INT16U        NetConn_AccessedTh_nbr;             /* Nbr successful srch's to promote net conns.      */


                                                                    /* Conn addr wildcard cfg.                          */
NET_CONN_EXT  CPU_BOOLEAN       NetConn_AddrWildCardAvail;
NET_CONN_EXT  CPU_INT08U        NetConn_AddrWildCard[NET_CONN_CFG_ADDR_LEN];



#if (NET_CTR_CFG_ERR_EN         == DEF_ENABLED)                     /* ---------------- NET CONN ERRS ----------------- */
NET_CONN_EXT  NET_CTR           NetConn_ErrNoneAvailCtr;            /* Nbr        net conns unavail.                    */
NET_CONN_EXT  NET_CTR           NetConn_ErrNotUsedCtr;              /* Nbr unused net conn  accesses.                   */

NET_CONN_EXT  NET_CTR           NetConn_ErrCloseCtr;                /* Nbr net conn closes.                             */

NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidConnCtr;          /* Nbr net conns with invalid addr.                 */
NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidConnAddrLenCtr;   /* Nbr net conns with invalid addr len.             */
NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidConnAddrInUseCtr; /* Nbr net conns with         addr already in use.  */

NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidFamilyCtr;        /* Nbr net conns with invalid conn family.          */

NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidListTypeCtr;      /* Nbr net conn lists with invalid type.            */
NET_CONN_EXT  NET_CTR           NetConn_ErrInvalidListIxCtr;        /* Nbr net conn lists with invalid ix.              */

#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
NET_CONN_EXT  NET_CTR           NetConn_ErrNullPtrCtr;              /* Nbr null   net conn accesses.                    */

⌨️ 快捷键说明

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