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

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

?? netif.c

?? 本程序實現單片機控制以太網網卡進行傳輸數據
?? C
字號:
/*
 * Copyright (c) 2003 Electric Application Laboratory of NAN KAI University
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
 *
 * Author: Li Zhanglin <http://www.zlmcu.com>
 *
 */

#include "..\GloblDef\GloblDef.h"
#include "..\TCPIP\TCPIPmem.h"
#include "..\TCPIP\IP.h"
#include "..\TCPIP\Netif.h"

/* You can get a new netif from NetIfPool */
static struct SNetIf DT_XDATA NetIfPool[NET_IF_MAX_NUM];

/* list hearder of free Netifs buffer */
static struct SNetIf DT_XDATA * DT_XDATA NetIfFreeList;

/* list header of Netifs */
static struct SNetIf DT_XDATA * DT_XDATA NetIfList;

void NetIfInit() REENTRANT_MUL
{
	WORD count;

	/* inti NetIfList */
	NetIfList = NULL;

	/* inti FreeList, chain up NetIfPool */
	for(count = 0, NetIfFreeList = NULL; count < NET_IF_MAX_NUM; count++)
	{
		NetIfPool[count].pNext = NetIfFreeList;
		NetIfFreeList = &NetIfPool[count];
	}
}

/* add a netif to list, return NULL if insufficient mem */
struct SNetIf DT_XDATA * NetIfAdd(DWORD IPAddr, DWORD NetMask,DWORD GateWay,
						 void (DT_CODE * input)(struct SNetIf DT_XDATA * NetIf) REENTRANT_SIG,
						 BOOL (DT_CODE * output)(struct SMemHead DT_XDATA *MemHead,struct SNetIf DT_XDATA* NetIf,DWORD DestIP) REENTRANT_SIG,
						 void DT_XDATA * Info) REENTRANT_MUL
{
	struct SNetIf DT_XDATA * NetIf;

	/* get netif from free list */
	NetIf = NetIfFreeList;
	NetIfFreeList = NetIfFreeList->pNext;

	/* if add more than NET_IF_MAX_NUM return NULL */
	if(NetIf == NULL)
		return NULL;
	else
	{
		NetIf->IPAddr	= htonl(IPAddr);
		NetIf->NetMask	= htonl(NetMask);
		NetIf->GateWay	= htonl(GateWay);
		NetIf->input	= input;
		NetIf->output	= output;
		NetIf->Info		= Info;

		/* add to the head of the list */
		NetIf->pNext = NetIfList;
		NetIfList = NetIf;

		return NetIf;
	}
}

/* find a netif which NetIf->NetMask & NetIf->NetAddr == 
NetIf->NetMask & IPAddr */
struct SNetIf DT_XDATA * NetIfFindRout(IP_ADDR IPAddr) REENTRANT_SIG
{
	struct SNetIf DT_XDATA *NetIf;
	for(NetIf = NetIfList; NetIf != NULL; NetIf = NetIf->pNext)
	{
		if((NetIf->NetMask & NetIf->IPAddr) == (NetIf->NetMask & IPAddr))
			return NetIf;
	}

	/* if can't find any suitable Netif, return NetIfList. That is the 
	first netif is the default Netif*/
	return NetIfList;	
}

struct SNetIf DT_XDATA * NetIfFindIP(IP_ADDR IPAddr) REENTRANT_MUL
{
	struct SNetIf DT_XDATA *pNetIf;
	for(pNetIf = NetIfList; pNetIf != NULL; pNetIf = pNetIf->pNext)
	{
		if(pNetIf->IPAddr == IPAddr)
			break;
	}
	return pNetIf;
}

/* net inteftimer. use to packup packet from every net interface */
void NetIfTimer() REENTRANT_MUL
{
	struct SNetIf DT_XDATA * NetIf;

	/* if netif has data to come in */
	for(NetIf = NetIfList; NetIf != NULL; NetIf = NetIf->pNext)
		NetIf->input(NetIf);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费xxxx性欧美18vr| 欧美激情一区在线| 亚洲电影一区二区三区| 成人一道本在线| 日韩免费视频一区二区| 一区二区激情视频| 一本高清dvd不卡在线观看| 国产日韩视频一区二区三区| 天天av天天翘天天综合网| 91视频一区二区三区| 国产精品久久久久影院色老大| 精品一区二区三区久久| 日韩国产在线一| 欧美日韩国产大片| 亚洲超碰97人人做人人爱| 在线观看不卡一区| 亚洲一区二区视频在线| 欧美色男人天堂| 午夜免费欧美电影| 欧美一区二区三区四区久久 | 日本不卡视频在线| 制服丝袜激情欧洲亚洲| 婷婷激情综合网| 日韩精品一区二区三区中文不卡 | 欧美吞精做爰啪啪高潮| 日韩av在线播放中文字幕| 日韩精品中文字幕在线一区| 男女男精品网站| 国产日韩视频一区二区三区| 不卡高清视频专区| 亚洲精品高清视频在线观看| 亚洲一区二区三区激情| 欧美日韩一区在线| 国产一区二区福利| 一区二区三区在线免费播放| 91精品国产综合久久精品性色| 国内精品自线一区二区三区视频| 国产精品色婷婷| 欧美日韩免费不卡视频一区二区三区| 青娱乐精品视频| **网站欧美大片在线观看| 欧美久久久一区| 波多野结衣中文字幕一区| 亚洲va韩国va欧美va精品| 国产女主播在线一区二区| 欧美三级韩国三级日本三斤| 国内精品伊人久久久久av影院| 亚洲乱码国产乱码精品精可以看| 精品久久久久99| 欧美久久久久中文字幕| youjizz久久| 日韩一二三四区| av激情综合网| 狠狠色综合播放一区二区| 亚洲精品综合在线| 中文字幕第一区| 日韩美女在线视频| 884aa四虎影成人精品一区| 99r精品视频| 99久久伊人久久99| 国产精品一区二区在线播放 | 欧美性一级生活| 99久久国产综合色|国产精品| 国产高清精品网站| 激情综合色播五月| 美日韩一区二区| 蜜桃传媒麻豆第一区在线观看| 日韩精品欧美精品| 日日噜噜夜夜狠狠视频欧美人| 亚洲影院理伦片| 亚洲bt欧美bt精品777| 亚洲风情在线资源站| 亚洲国产精品久久久久婷婷884| 亚洲码国产岛国毛片在线| 亚洲欧洲三级电影| 亚洲色图制服诱惑 | 国产精品国产三级国产aⅴ中文 | 免费在线观看一区二区三区| 午夜电影网亚洲视频| 欧美日韩另类一区| 欧美猛男男办公室激情| 欧美日韩免费一区二区三区视频 | 色婷婷精品久久二区二区蜜臀av| 91麻豆精品秘密| 欧美久久久久免费| 精品少妇一区二区三区免费观看| 欧美va亚洲va| 国产精品成人免费| 亚洲午夜精品17c| 久久99国产乱子伦精品免费| 国产乱码精品一品二品| 91麻豆国产精品久久| 91精品国产麻豆国产自产在线| 2021中文字幕一区亚洲| 亚洲欧洲日产国码二区| 香蕉影视欧美成人| 成人一区二区在线观看| 欧美日韩免费一区二区三区视频| 欧美一区二区三区在线| 国产精品成人免费| 久久精品免费观看| 日本精品视频一区二区三区| 日韩精品一区二区三区老鸭窝| 国产精品久久久久7777按摩| 日本亚洲最大的色成网站www| 懂色av噜噜一区二区三区av| 欧美日韩精品一区二区在线播放| 欧美国产成人精品| 久久精品国产999大香线蕉| 91在线精品一区二区三区| 日韩精品中文字幕在线一区| 亚洲一级片在线观看| 激情综合网最新| 日韩精品专区在线影院观看| 亚洲国产精品影院| 99视频精品免费视频| 久久免费看少妇高潮| 日韩成人一区二区| 欧美日韩国产高清一区二区三区| 亚洲色图欧美在线| 成人av综合在线| 日韩一区在线播放| 成人av动漫在线| 中文一区在线播放| 日韩手机在线导航| 免费成人美女在线观看.| 欧美精品粉嫩高潮一区二区| 一区二区三区视频在线看| av中文字幕一区| 亚洲精品日产精品乱码不卡| 99久久国产综合色|国产精品| 中文字幕一区二区5566日韩| av电影在线观看不卡| 中文字幕在线一区二区三区| 国产 欧美在线| 亚洲另类在线制服丝袜| www.日韩在线| 亚洲午夜激情网页| 日韩精品一区二区三区在线观看| 美女一区二区久久| 国产亚洲一区二区三区| 99r国产精品| 天天影视网天天综合色在线播放| 日韩一级黄色片| 国产91高潮流白浆在线麻豆| 国产精品福利av| 欧美久久久久久久久中文字幕| 久久精品国内一区二区三区| 亚洲国产精品精华液ab| 欧美三级资源在线| 久久国产福利国产秒拍| 亚洲欧洲性图库| 欧美一二三区在线| 成人高清av在线| 免费三级欧美电影| 欧美经典一区二区| 欧美三级日韩在线| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品无码永久免费888| 色综合视频一区二区三区高清| 青青草原综合久久大伊人精品| 欧美国产1区2区| 日韩精品一区在线| 欧美性生活久久| 国产成a人亚洲精品| 午夜影视日本亚洲欧洲精品| 中文字幕精品三区| 精品欧美一区二区久久| 亚洲精品欧美二区三区中文字幕| 精品久久久三级丝袜| 色婷婷综合久久久中文一区二区| 久久99国产乱子伦精品免费| 亚洲无人区一区| 亚洲精品中文字幕乱码三区| 久久伊人蜜桃av一区二区| 91精品欧美久久久久久动漫| 色综合天天在线| 成人精品国产福利| 国产精品一区二区在线播放| 日本欧美久久久久免费播放网| 一区二区三区产品免费精品久久75| 国产丝袜美腿一区二区三区| 欧美一个色资源| 日韩亚洲欧美综合| 9191成人精品久久| 欧美精选一区二区| 制服丝袜亚洲网站| 日韩欧美一级精品久久| 欧美精品亚洲二区| 欧美色图片你懂的| 67194成人在线观看| 欧美一级xxx| 337p日本欧洲亚洲大胆精品| 精品久久久久久久一区二区蜜臀| 欧美大片一区二区| 国产亚洲制服色| 亚洲色图视频网| 亚洲国产成人av好男人在线观看| 亚洲成av人片一区二区| 日韩av电影天堂|