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

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

?? neteth.c

?? 一個tcp/ip協議棧,帶有PPP、IP、TCP、UDP等協議
?? C
字號:
/*****************************************************************************
* neteth.c - Ethernet interface functions
*
* portions Copyright (c) 2001 by Cognizant Pty Ltd.
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice and the following disclaimer are included verbatim in any 
* distributions. No written agreement, license, or royalty fee is required
* for any of the authorized uses.
*
* THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
* IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
* REVISION HISTORY (please don't use tabs!)
*
*(yyyy-mm-dd)
* 2001-06-05 Robert Dickenson <odin@pnc.com.au>, Cognizant Pty Ltd.
*            Original file. Split UCOS task & queue handling out of netether.c
*
******************************************************************************
*/
#include <string.h>
#include "netconf.h"
#include "net.h"
#include "netbuf.h"
#include "netip.h"
#include "netiphdr.h"
#include "netaddrs.h"
#include "netether.h"
#include "netifdev.h"
#include "neteth.h"
//#include <string.h>
#include "netarp.h"
#include "netos.h"
#include <stdio.h>
#include "netdebug.h"


#pragma warning (push)
#pragma warning (disable: 4761) // integral size mismatch in argument; conversion supplied


////////////////////////////////////////////////////////////////////////////////
extern int repeat;

//OS_EVENT* pEthTxQ;
Interface* pDefaultInterface;

// Setup variables
//etherSetup mySetup;

#if STATS_SUPPORT > 0
ETHStats ethStats;              /* Statistics. */
#endif

#define TXQLEN 8
NBuf* TxNBufQ[TXQLEN];
UBYTE TxNBufHead;
UBYTE TxNBufTail;


////////////////////////////////////////////////////////////////////////////////
// Send a packet on the given connection.
// Return 0 on success, an error code on failure.
int ethOutput(int pd, u_short protocol, NBuf* nb)
{
//    Interface* pInterface = (Interface*)pd;
    etherOutput(nb);
    return 0;
}


////////////////////////////////////////////////////////////////////////////////
//
void etherSend(NBuf* pNBuf)
{
//    TRACE("etherSend(%p) - posting NBuf\n", pNBuf);
    etherLock();
    TxNBufQ[TxNBufHead] = pNBuf;
    TxNBufHead++;
    if (TxNBufHead >= TXQLEN) TxNBufHead = 0;
    pDefaultInterface->txEventCnt++;
    etherRelease();
    OSSemPost(pDefaultInterface->pSemIF);
}


////////////////////////////////////////////////////////////////////////////////
//
void EthTask(void* param)
{
    UBYTE err;
    NBuf* pNBuf = NULL;
    UWORD timeout = 500;
    Interface* pInterface = (Interface*)param;

    TRACE("EthTask Started\n");
    do {
        OSSemPend(pInterface->pSemIF, timeout, &err);
        if (err == OS_NO_ERR) {
            if (pInterface->rxEventCnt) {
//                TRACE("EthTask Rx Event Detected\n");
                pNBuf = pInterface->receive();
                if (pNBuf != NULL) etherInput(pNBuf);
                else {
                   TRACE("EthTask(): error: no nBuf's from recieve()???\n"); 
                }
                pInterface->rxEventCnt--;
            }
            if (pInterface->txEventCnt) {
//                TRACE("EthTask Tx Event Detected\n");
                if (pInterface->transmit_ready()) {
                    etherLock();
                    if (TxNBufTail != TxNBufHead) {
                        pNBuf = TxNBufQ[TxNBufTail];
                        TxNBufQ[TxNBufTail] = NULL;
                        TxNBufTail++;
                        if (TxNBufTail >= TXQLEN) TxNBufTail = 0;
                        etherRelease();
                        if (pNBuf != NULL) {
                            pInterface->transmit(pNBuf);
                            nFreeChain(pNBuf);
                        } else {
                            TRACE("EthTask(): Tx Event ERROR: null pointer\n");
                        }
                    } else {
                        etherRelease();
                    }
                    pInterface->txEventCnt--;
                } else {
                    OSSemPost(pInterface->pSemIF);
                }
            }
        }
    } while (repeat);
    TRACE("EthTask Exiting\n");
}

////////////////////////////////////////////////////////////////////////////////
//
void ethInit(Interface* pInterface)
{
    pDefaultInterface = pInterface;
    pInterface->pSemIF = OSSemCreate(0x0034);
    OSTaskCreate(EthTask, pInterface, NULL, 12);
}

#pragma warning (pop)
////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
琪琪一区二区三区| 国产一区二区在线电影| 一区二区三区自拍| 国产成人在线视频网站| 看国产成人h片视频| 另类的小说在线视频另类成人小视频在线 | 麻豆精品一区二区| 国产成人亚洲综合a∨猫咪| 国产精品一区二区久激情瑜伽| 国产综合一区二区| 色婷婷综合久久久中文一区二区| 精品视频在线视频| 久久成人综合网| 粉嫩一区二区三区在线看| 91精品啪在线观看国产60岁| 日韩精品专区在线| 久久免费午夜影院| 伊人性伊人情综合网| 一区二区三区免费网站| 蜜桃视频免费观看一区| 精品一区二区三区视频在线观看| 韩国视频一区二区| 日韩一区二区免费视频| 欧美经典三级视频一区二区三区| 爽爽淫人综合网网站| 欧美中文一区二区三区| 亚洲国产精品av| 国内成+人亚洲+欧美+综合在线| 欧美视频一区二区在线观看| 国产精品欧美极品| 成人国产在线观看| 国产精品初高中害羞小美女文| 不卡视频一二三| 日韩欧美成人激情| 91在线精品一区二区三区| 亚洲综合自拍偷拍| 国产亚洲精品超碰| 91极品视觉盛宴| 亚洲va在线va天堂| 宅男噜噜噜66一区二区66| 日韩成人免费在线| 欧美电影免费观看高清完整版在线观看 | 国产69精品久久777的优势| 国产精品免费aⅴ片在线观看| 成人午夜免费av| 亚洲成人资源在线| 国产无人区一区二区三区| 99久久99久久久精品齐齐| 亚洲h精品动漫在线观看| 欧美成人官网二区| 成人av在线播放网址| 婷婷开心激情综合| 久久久久国产精品免费免费搜索| 91香蕉国产在线观看软件| 日韩高清一级片| 亚洲欧美一区二区在线观看| 欧美日韩高清一区二区三区| 激情综合五月婷婷| 午夜精品久久久久久久| 国产精品私人影院| 色综合天天综合| 奇米888四色在线精品| 亚洲精品视频在线观看网站| 亚洲精品一区二区精华| 欧美日韩www| 色欧美88888久久久久久影院| 麻豆成人91精品二区三区| 亚洲在线视频免费观看| 国产精品女主播av| 欧美国产精品久久| 久久久久国产精品人| 欧美xxxx老人做受| 日韩天堂在线观看| 日韩视频一区二区三区| 欧美三区免费完整视频在线观看| 成人精品一区二区三区中文字幕| 麻豆成人久久精品二区三区小说| 亚洲777理论| 免费久久99精品国产| 风间由美一区二区三区在线观看 | 99久久国产免费看| 国产成+人+日韩+欧美+亚洲| 国产成人免费在线视频| 不卡视频在线观看| 色婷婷激情一区二区三区| 欧美日韩三级一区| 欧美一区二区三区婷婷月色| 91精品国产全国免费观看| 国产亚洲女人久久久久毛片| 欧美精品18+| 欧美日韩一区三区| 波多野结衣的一区二区三区| 欧美午夜电影网| 亚洲日本中文字幕区| 一区二区三区在线视频免费观看| 亚洲色图在线播放| 日本欧美一区二区三区| 成人黄色在线网站| 欧美日韩国产乱码电影| 久久夜色精品国产欧美乱极品| 国产精品嫩草影院av蜜臀| 亚洲国产综合91精品麻豆 | 精品av久久707| 日韩一区欧美小说| 天堂在线一区二区| 国产精品资源站在线| 欧美色手机在线观看| 亚洲国产精品成人综合色在线婷婷| 日韩国产欧美在线播放| 懂色一区二区三区免费观看| 在线不卡欧美精品一区二区三区| 中文字幕精品一区| 国产一区二区美女诱惑| 欧美午夜精品一区二区蜜桃 | 国产精品视频看| 国产九色sp调教91| 欧美国产激情一区二区三区蜜月| 国产一区二区网址| 国产免费观看久久| 成人h版在线观看| 亚洲最新视频在线播放| 国产精品一卡二| 久久99精品久久久久婷婷| 欧美日韩一区久久| 亚洲第一福利一区| 欧美男女性生活在线直播观看| 国产精品卡一卡二| 成人黄色小视频| 亚洲码国产岛国毛片在线| 91尤物视频在线观看| 亚洲你懂的在线视频| 色av一区二区| 日本成人在线视频网站| 欧美一区二区成人| 九九九久久久精品| 亚洲日本一区二区| 欧美一二三四区在线| 韩国理伦片一区二区三区在线播放| 欧美日韩一区成人| av在线播放不卡| 亚洲欧美偷拍三级| 欧美一区二区视频观看视频| 国产真实乱子伦精品视频| 久久精品视频在线免费观看| 亚洲妇女屁股眼交7| 欧美一二三在线| 成人免费毛片嘿嘿连载视频| 亚洲在线观看免费| 国产亚洲一区字幕| 717成人午夜免费福利电影| 成人免费福利片| 狠狠色2019综合网| 日韩福利电影在线观看| 综合av第一页| 日本一二三不卡| 日韩免费观看高清完整版在线观看| 99久久精品国产网站| 亚洲成人免费影院| 国产精品久久久久久户外露出| 日韩美女视频在线| 欧美日韩aaaaa| 在线观看av一区二区| 91天堂素人约啪| 不卡影院免费观看| 成熟亚洲日本毛茸茸凸凹| 国内成人精品2018免费看| 麻豆精品蜜桃视频网站| 麻豆精品在线播放| 国产精品一区二区在线看| av在线不卡电影| 色丁香久综合在线久综合在线观看| 成人激情黄色小说| 色av一区二区| 欧美日韩国产首页在线观看| 欧美一级日韩免费不卡| 欧美精品一二三| 精品国产亚洲在线| 久久精品人人做| 综合久久国产九一剧情麻豆| 一区二区三区精品视频| 日日夜夜免费精品视频| 蜜臀久久99精品久久久画质超高清| 蜜芽一区二区三区| 高清国产午夜精品久久久久久| 成人高清免费在线播放| 欧美日韩一区二区三区四区| 欧美成人video| 亚洲欧美一区二区三区孕妇| 午夜av一区二区| 成人污污视频在线观看| 欧美色老头old∨ideo| 久久久久久久久蜜桃| 一区二区三区精品在线| 精品综合久久久久久8888| 欧美亚洲国产一区在线观看网站| 欧美日韩亚洲综合一区二区三区| www激情久久| 亚洲一区精品在线| 国产精品伊人色| 欧美精品乱码久久久久久按摩|