亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? net_conn.c

?? ucos的tcpip協議占
?? C
?? 第 1 頁 / 共 5 頁
字號:
    NetConn_ErrNullPtrCtr                =  0;

    NetConn_ErrInvalidTypeCtr            =  0;
#endif
#endif
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                       NetConn_CfgAccessedTh()
*
* Description : Configure network connection accessed-promotion threshold.
*
* Argument(s) : nbr_access      Desired number of accesses before network connection is promoted.
*
* Return(s)   : DEF_OK, network connection promotion threshold configured.
*
* Caller(s)   : Net_InitDflt(),
*               Application.
*
*               This function is a network protocol suite application interface (API) function & MAY be 
*               called by application function(s).
*
* Note(s)     : none.
*********************************************************************************************************
*/

CPU_BOOLEAN  NetConn_CfgAccessedTh (CPU_INT16U  nbr_access)
{
#if (CPU_CFG_CRITICAL_METHOD == CPU_CRITICAL_METHOD_STATUS_LOCAL)
    CPU_SR  cpu_sr;
#endif


#if (NET_CONN_ACCESSED_TH_MIN > DEF_INT_16U_MIN_VAL)
    if (nbr_access < NET_CONN_ACCESSED_TH_MIN) {
        nbr_access = NET_CONN_ACCESSED_TH_MIN;
    }
#endif
#if (NET_CONN_ACCESSED_TH_MAX < DEF_INT_16U_MAX_VAL)
    if (nbr_access > NET_CONN_ACCESSED_TH_MAX) {
        nbr_access = NET_CONN_ACCESSED_TH_MAX;
    }
#endif

    CPU_CRITICAL_ENTER();
    NetConn_AccessedTh_nbr = nbr_access;
    CPU_CRITICAL_EXIT();

    return (DEF_OK);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                            NetConn_Get()
*
* Description : (1) Allocate & initialize a network connection :
*
*                   (a) Get      a network connection
*                   (b) Validate   network connection
*                   (c) Initialize network connection
*                   (d) Update     network connection pool statistics
*                   (e) Return network connection handle identifier
*                         OR
*                       Null identifier & error code, on failure
*
*               (2) The network connection pool is implemented as a stack :
*
*                   (a) 'NetConn_PoolPtr' points to the head of the network connection pool.
*
*                   (b) Connections' 'NextConnPtr's link each connection to form the connection pool stack.
*
*                   (c) Connections are inserted & removed at the head of        the connection pool stack.
*
*
*                                     Connections are
*                                    inserted & removed
*                                        at the head
*                                      (see Note #2c)
*
*                                             |               NextConnPtr
*                                             |             (see Note #2b)
*                                             v                    |
*                                                                  |
*                                          -------       -------   v   -------       -------
*                     Connection Pool ---->|     |------>|     |------>|     |------>|     |
*                         Pointer          |     |       |     |       |     |       |     |
*                                          |     |       |     |       |     |       |     |
*                      (see Note #2a)      -------       -------       -------       -------
*
*                                          |                                               |
*                                          |<--------- Pool of Free Connections ---------->|
*                                          |                (see Note #2)                  |
*
*
* Argument(s) : perr        Pointer to variable that will receive the return error code from this function :
*
*                               NET_CONN_ERR_NONE               Network connection successfully allocated &
*                                                                   initialized.
*                               NET_CONN_ERR_NONE_AVAIL         NO available network connections to allocate.
*                               NET_CONN_ERR_INVALID_FAMILY     Invalid connection family.
*                               NET_CONN_ERR_INVALID_TYPE       Invalid connection type.
*                               NET_CONN_ERR_INVALID_LIST_IX    Invalid connection list index.
*
* Return(s)   : Connection handle identifier, if NO errors.
*
*               NET_CONN_ID_NONE,             otherwise.
*
* Caller(s)   : NetSock_BindHandler(),
*               NetTCP_RxPktConnHandlerListen().
*
*               This function is an INTERNAL network protocol suite function & MUST NOT be called by 
*               application function(s).
*
* Note(s)     : (3) (a) Network connection pool is accessed by 'NetConn_PoolPtr' during execution of
*
*                       (1) NetConn_Init()
*                       (2) NetConn_Get()
*                       (3) NetConn_FreeHandler()
*
*                   (b) Since the primary tasks of the network protocol suite are prevented from running 
*                       concurrently (see 'net.h  Note #2'), it is NOT necessary to protect the shared 
*                       resources of the network connection pool since no asynchronous access from other 
*                       network tasks is possible.
*********************************************************************************************************
*/
/*$PAGE*/
NET_CONN_ID  NetConn_Get (NET_CONN_FAMILY    family,
                          NET_CONN_LIST_IX   protocol_ix,
                          NET_ERR           *perr)
{
#if ((NET_CTR_CFG_ERR_EN      == DEF_ENABLED)                    && \
     (CPU_CFG_CRITICAL_METHOD == CPU_CRITICAL_METHOD_STATUS_LOCAL))
    CPU_SR        cpu_sr;
#endif
    NET_CONN     *pconn;
    NET_CONN_ID   conn_id;
    NET_ERR       stat_err;


                                                                /* ---------------- VALIDATE CONN ARGS ---------------- */
    switch (family) {
#if (NET_CONN_CFG_FAMILY == NET_CONN_FAMILY_IP_V4_SOCK)
        case NET_CONN_FAMILY_IP_V4_SOCK:
             switch (protocol_ix) {
                 case NET_CONN_LIST_IX_IP_V4_SOCK_UDP:
#ifdef  NET_TCP_MODULE_PRESENT
                 case NET_CONN_LIST_IX_IP_V4_SOCK_TCP:
#endif
                      break;


                 default:
                      NET_CTR_ERR_INC(NetConn_ErrInvalidListIxCtr);
                     *perr =  NET_CONN_ERR_INVALID_LIST_IX;
                      return (NET_CONN_ID_NONE);                /* Prevent 'break NOT reachable' compiler warning.      */
             }
             break;
#endif

        case NET_CONN_FAMILY_NONE:
        default:
             NET_CTR_ERR_INC(NetConn_ErrInvalidFamilyCtr);
            *perr =  NET_CONN_ERR_INVALID_FAMILY;
             return (NET_CONN_ID_NONE);                         /* Prevent 'break NOT reachable' compiler warning.      */
    }

#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
    if (protocol_ix >= NET_CONN_CFG_PROTOCOL_MAX) {
        NET_CTR_ERR_INC(NetConn_ErrInvalidListIxCtr);
       *perr =  NET_CONN_ERR_INVALID_LIST_IX;
        return (NET_CONN_ID_NONE);
    }
#endif


                                                                /* ------------------- GET NET CONN ------------------- */
    if (NetConn_PoolPtr != (NET_CONN *)0) {                     /* If net conn pool NOT empty, get net conn from pool.  */
        pconn            = (NET_CONN *)NetConn_PoolPtr;
        NetConn_PoolPtr  = (NET_CONN *)pconn->NextConnPtr;

    } else {                                                    /* If none avail, rtn err.                              */
        NET_CTR_ERR_INC(NetConn_ErrNoneAvailCtr);
       *perr =  NET_CONN_ERR_NONE_AVAIL;
        return (NET_CONN_ID_NONE);
    }

#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
                                                                /* ---------------- VALIDATE NET CONN ----------------- */
    if (pconn->Type != NET_CONN_TYPE_CONN) {
        NetConn_Discard(pconn);
        NET_CTR_ERR_INC(NetConn_ErrInvalidTypeCtr);
       *perr =  NET_CONN_ERR_INVALID_TYPE;
        return (NET_CONN_ID_NONE);
    }
#endif

                                                                /* ------------------ INIT NET CONN ------------------- */
    NetConn_Clr(pconn);
    DEF_BIT_SET(pconn->Flags, NET_CONN_FLAG_USED);              /* Set net conn as used.                                */
    pconn->Family         = family;
    pconn->ProtocolListIx = protocol_ix;

                                                                /* ------------ UPDATE NET CONN POOL STATS ------------ */
    NetStat_PoolEntryUsedInc(&NetConn_PoolStat, &stat_err);

                                                                /* ----------------- RTN NET CONN ID ------------------ */
    conn_id = pconn->ID;
   *perr    = NET_CONN_ERR_NONE;

    return (conn_id);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                           NetConn_Free()
*
* Description : Free a network connection.
*
*               (1) Network connection free ONLY frees but does NOT close any connections.
*
*
* Argument(s) : conn_id     Handle identifier of network connection to free.
*
* Return(s)   : none.
*
* Caller(s)   : various.
*
*               This function is an INTERNAL network protocol suite function & MUST NOT be called by 
*               application function(s).
*
* Note(s)     : (2) #### To prevent freeing a network connection already freed via previous network
*                   connection free, NetConn_Free() checks the connection's 'USED' flag BEFORE freeing
*                   the network connection.
*
*                   This prevention is only best-effort since any invalid duplicate network connection 
*                   frees MAY be asynchronous to potentially valid network connection gets.  Thus the 
*                   invalid network connection free(s) MAY corrupt the network connection's valid
*                   operation(s).
*
*                   However, since the primary tasks of the network protocol suite are prevented from
*                   running concurrently (see 'net.h  Note #2'), it is NOT necessary to protect network
*                   connection resources from possible corruption since no asynchronous access from
*                   other network tasks is possible.
*********************************************************************************************************
*/

void  NetConn_Free (NET_CONN_ID  conn_id)
{
#if ((NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)                    && \
     (NET_CTR_CFG_ERR_EN         == DEF_ENABLED)                    && \
     (CPU_CFG_CRITICAL_METHOD    == CPU_CRITICAL_METHOD_STATUS_LOCAL))
    CPU_SR        cpu_sr;
#endif
#if  (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
    CPU_BOOLEAN   used;
#endif
    NET_CONN     *pconn;

                                                                /* ---------------- VALIDATE NET CONN ----------------- */
    if (conn_id == NET_CONN_ID_NONE) {
        return;
    }

#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
    if (conn_id < NET_CONN_ID_MIN) {
        NET_CTR_ERR_INC(NetConn_ErrInvalidConnCtr);
        return;
    }
    if (conn_id > NET_CONN_ID_MAX) {
        NET_CTR_ERR_INC(NetConn_ErrInvalidConnCtr);
        return;
    }
#endif

    pconn = &NetConn_Tbl[conn_id];

#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
                                                                /* -------------- VALIDATE NET CONN USED -------------- */
    used  =  DEF_BIT_IS_SET(pconn->Flags, NET_CONN_FLAG_USED);
    if (used != DEF_YES) {                                      /* If net conn NOT used, ...                            */
        NET_CTR_ERR_INC(NetConn_ErrNotUsedCtr);
        return;                                                 /* ... rtn but do NOT free (see Note #2).               */
    }
#endif

                                                                /* ------------------ FREE NET CONN ------------------- */
    NetConn_FreeHandler(pconn);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                       NetConn_CloseFromApp()
*
* Description : (1) Close a network connection from application layer :
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区| 国产精品免费网站在线观看| 精品盗摄一区二区三区| 国产精品国产三级国产aⅴ中文| 亚洲综合男人的天堂| 精品夜夜嗨av一区二区三区| 成人污视频在线观看| 欧美一卡二卡三卡| 亚洲免费毛片网站| 国产成人午夜精品影院观看视频 | 欧美日韩mp4| 国产精品免费视频观看| 男女性色大片免费观看一区二区| 91蜜桃视频在线| 国产欧美精品一区二区色综合 | 国产精品久久久久一区| 久久福利资源站| 欧美日本乱大交xxxxx| 亚洲欧美视频在线观看| 国产91精品在线观看| 精品国产网站在线观看| 日本欧美一区二区| 91精品国产全国免费观看 | 亚洲国产成人精品视频| 91亚洲精品久久久蜜桃| 日本一区二区动态图| 国产精品一区二区免费不卡| 欧美白人最猛性xxxxx69交| 久久电影网站中文字幕| 精品视频一区二区三区免费| 一区二区三区鲁丝不卡| 色嗨嗨av一区二区三区| 一区二区三区成人| 欧美中文字幕不卡| 亚洲黄色片在线观看| 91视频一区二区三区| 日韩理论片在线| 色综合天天做天天爱| 欧美日韩精品高清| 午夜成人在线视频| 欧美一级在线免费| 久久精品99国产精品| 91精品国产91热久久久做人人| 亚洲电影一区二区三区| 欧美日韩亚洲不卡| 麻豆成人91精品二区三区| 久久中文字幕电影| eeuss国产一区二区三区| 亚洲欧洲一区二区在线播放| 一本到不卡精品视频在线观看| 亚洲精品欧美激情| 欧美一区二区高清| 国产精品一区二区视频| 亚洲欧洲在线观看av| 欧美日韩电影一区| 精品一区精品二区高清| 国产精品视频九色porn| 在线一区二区三区做爰视频网站| 亚洲大片精品永久免费| 欧美mv日韩mv亚洲| 成人黄色免费短视频| 亚洲美女少妇撒尿| 日韩一区二区三区在线视频| 国产大陆a不卡| 亚洲福利视频三区| 26uuu国产一区二区三区| 91麻豆6部合集magnet| 三级一区在线视频先锋| 欧美国产精品专区| 欧美剧情片在线观看| 国产乱码精品1区2区3区| 亚洲激情图片qvod| 久久奇米777| 欧美日韩亚洲综合| 成人国产免费视频| 日韩**一区毛片| 1024亚洲合集| 久久综合国产精品| 欧美日韩免费一区二区三区视频| 国内精品国产成人| 亚洲成av人片在线| 国产精品免费aⅴ片在线观看| 欧美喷水一区二区| 97精品超碰一区二区三区| 日韩高清不卡在线| 一区二区三区欧美日| 亚洲精品一线二线三线无人区| 欧美在线观看一区| 成人免费视频一区| 国内精品视频一区二区三区八戒| 亚洲一区二区三区在线播放| 国产精品全国免费观看高清| 6080国产精品一区二区| 91成人在线精品| 成人手机电影网| 国产黄色成人av| 日韩av在线发布| 亚洲成精国产精品女| 亚洲三级小视频| 国产日韩欧美亚洲| 国产精品色噜噜| 日韩视频不卡中文| 九九视频精品免费| 日韩av在线发布| 日韩精品色哟哟| 亚洲线精品一区二区三区八戒| 国产精品国模大尺度视频| 久久精品视频一区二区三区| 欧美一级视频精品观看| 538在线一区二区精品国产| 欧美亚洲综合一区| 在线视频国内一区二区| 一本久久a久久精品亚洲| 粉嫩蜜臀av国产精品网站| 国产成都精品91一区二区三| 国产一区二区三区综合| 国产在线精品一区二区夜色| 精品一区二区在线播放| 激情综合色综合久久综合| 国产在线一区二区综合免费视频| 精品一区二区精品| 国产成+人+日韩+欧美+亚洲| 高清beeg欧美| 色综合天天综合网天天狠天天| 91玉足脚交白嫩脚丫在线播放| 91丨porny丨首页| 欧美性大战久久| 欧美电视剧免费观看| 久久美女艺术照精彩视频福利播放| 国产网站一区二区| 亚洲欧洲无码一区二区三区| 一区二区三区蜜桃| 久久成人免费日本黄色| 国产不卡视频在线观看| 色网站国产精品| 欧美日韩成人一区二区| 精品久久人人做人人爽| 国产清纯在线一区二区www| 亚洲色欲色欲www在线观看| 一区二区三区 在线观看视频| 亚洲第一搞黄网站| 国产乱码字幕精品高清av | 国内外精品视频| 91性感美女视频| 制服丝袜av成人在线看| 久久久久久免费| 一区二区三区不卡在线观看 | 豆国产96在线|亚洲| 91成人国产精品| 久久综合精品国产一区二区三区| 《视频一区视频二区| 蜜臀va亚洲va欧美va天堂| 丰满少妇在线播放bd日韩电影| 欧美图片一区二区三区| 26uuu精品一区二区| 亚洲一区二区3| 国产精品18久久久久久久久久久久| 91天堂素人约啪| 精品88久久久久88久久久| 一区二区三区精品| 国产老肥熟一区二区三区| 欧美性生交片4| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品一线二线三线| 欧美午夜精品电影| 日本一区二区免费在线| 日韩国产在线一| 91在线观看视频| 国产亚洲欧洲一区高清在线观看| 亚洲视频图片小说| 国产麻豆91精品| 日韩一区二区精品| 亚洲成av人片| 色婷婷精品大在线视频| 国产精品美日韩| 国产精品一区二区视频| 日韩欧美成人激情| 五月婷婷综合网| 在线观看网站黄不卡| 中文字幕一区免费在线观看| 国产永久精品大片wwwapp | 日本91福利区| 欧美伊人久久久久久久久影院| 国产精品久久久久久久久搜平片 | 久久中文字幕电影| 免费在线观看一区| 91麻豆精品国产无毒不卡在线观看| 亚洲综合色视频| 在线观看亚洲a| 日韩一区日韩二区| 99国产精品国产精品毛片| 国产欧美日韩综合| 丰满少妇久久久久久久| 国产性做久久久久久| 国产成+人+日韩+欧美+亚洲| 久久久久亚洲综合| 国产精品18久久久| 国产精品污网站| 91视频在线看| 亚洲综合激情另类小说区|