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

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

?? tcpip.c

?? 包括EPA協議棧
?? C
字號:
#define TCPIP_GLOBALS
#include "tcpip.h"
#undef TCPIP_GLOBALS
#include "ether_dev.h"
#include "AT91R40008.h"
#include "lib_AT91R40008.h"
#include <string.h>
#include "Router.h"


static OS_STK TcpIpStack[STACK_SIZE_TCPIP];

static void* gTcpIpMsgQTbl[MSG_AMOUNT_TCPIP];

static void TcpIpInput(void *pdata);

extern void irq1_asm_irq_handler(void);
extern void irq2_asm_irq_handler(void);



uint8 idx;

void InitNI(void) {
	uint8 index;
	for (index = 0; index < IP_NI_AMOUNT; ++index) {
		gnitbl[index].state = 0;
	}
}
uint8 CreatNI(uint32 ip, uint32 mask, uint32 gate, PInputF in, POutputF out, uint8 mac[]) {
//	uint8 idx;
//	for (idx = 0; idx < IP_NI_AMOUNT; ++idx) {
       if(gnitbl[idx].state == 0) {
		    gnitbl[idx].ip = ip;
			gnitbl[idx].mask = mask;
			gnitbl[idx].gate = gate;
			gnitbl[idx].output = out;
			gnitbl[idx].input = in;
			gnitbl[idx].hw_id = idx;
			gnitbl[idx].arp_idx = idx;
			memcpy(gnitbl[idx].mac, mac, 6);
			gnitbl[idx].state = 1;
			idx++;
		    if(idx == IP_NI_AMOUNT){
		    idx = 0;
		    }
			return SYS_NO_ERR;
		}
    return SYS_NI_NOTVALID;
}





void init_task_net(void)
{
/************************************************************************/
/* init device left netcard                              */  
/************************************************************************/
	// init the physical device0
	etherdev_init(0);
	// open & register external IRQ1 interrupt
    AT91F_PIO_CfgPeriph(AT91C_BASE_PIO, AT91C_PIO_P10 ,0);		// IRQ1
    
	AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_IRQ1,
						AT91C_AIC_PRIOR_HIGHEST - 1,
						AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL,
						irq1_asm_irq_handler);
	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_IRQ1);
/************************************************************************/
/* init device right netcard                              */  
/************************************************************************/    
    etherdev_init(1);
  	// open & register external IRQ1 interrupt
  	// open & register external IRQ2 interrupt
    AT91F_PIO_CfgPeriph(AT91C_BASE_PIO, AT91C_PIO_P11 ,0);		// IRQ2
    AT91F_PIO_CfgPeriph(AT91C_BASE_PIO, AT91C_PIO_P26 ,0);		// NCS2
  

	AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_IRQ2,
						AT91C_AIC_PRIOR_HIGHEST - 2,
						AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL,
						irq2_asm_irq_handler);
	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_IRQ2);
}



void TcpIpInit(void) {
	uint8 mac1[6] = {MAC0, MAC1, MAC2, MAC3, MAC4, MAC5};
	uint8 mac2[6] = {MAC6, MAC7, MAC8, MAC9, MAC10,MAC11};
	InitNI();
	SockInit();
	//setup interface1
	CreatNI(InetAddr(IP0, IP1, IP2, IP3), InetAddr(MASK0, MASK1, MASK2, MASK3), InetAddr(IP0, IP1, IP2, IP3), LLInput, LLOutput, mac1) ;
	//setup interface2
    CreatNI(InetAddr(IP4, IP5, IP6, IP7), InetAddr(MASK0, MASK1, MASK2, MASK3), InetAddr(IP4, IP5, IP6, IP7), LLInput, LLOutput, mac2) ;
    init_task_net();
    RouterInit();
	gpTcpIpMsgQ = OSQCreate(gTcpIpMsgQTbl, MSG_AMOUNT_TCPIP);
	OSTaskCreate(TcpIpInput, (void*)0, (void*)(&TcpIpStack[STACK_SIZE_TCPIP]), TASK_PRIORITY_TCPIP);
}

static void TcpIpInput(void *pdata) {
	PNetIF pni;
	uint8  err, ni_num;
	uint16 frmtype;
	PSock  psock;

	while(1) {
		ni_num = *(uint8 *)OSQPend(gpTcpIpMsgQ, TASK_TIMEOUT_TCPIP, &err);
		pni = &gnitbl[ni_num];
		psock = GetSock(PROTOCOL_ETHER, 0, 0, 0, pni);
		if (!pni || pni ->input(psock)) {
			PutSock(psock);
		}
		memcpy(&psock->dst_mac,psock->buff,6);
		memcpy(&psock->src_mac,psock->buff+6,6);
		n2h16(psock->payload + 12, &frmtype);
		ShiftSock(psock, PROTOCOL_ETHER, PROTOCOL_IP_OR_ARP);
		switch(frmtype) {
			case IP_TYPE:
				err = IPInput(psock);
				break;
			case ARP_TYPE:
				err = ArpInput(psock);
				break;
#if PTP_TEST_EN > 0
			case 0x8988:
				PtpTestInput(psock, &(psock->stamp));
				break;
#endif	// PTP_TEST_EN
			default:
				PutSock(psock);
		}
#if	SYSTEM_VALIDCHK_EN > 0
		if(err != 0) {
			// Report err
		}
#endif	// SYSTEM_VALIDCHK_EN
	}	// while(1)
}

uint8 LLInput(PSock psock) {
	uint16 length;
	length = EtherInput(psock->buff, SOCK_BUFF_SIZE, psock->pni->hw_id);
	if(length) {
		psock->length = length;
		return IP_NO_ERR;
	}
	return IP_SOCK_OVERFLOW;
}

uint8 LLOutput(PSock psock) {
	uint8 err;

	if(psock->blank) {
		PutSock(psock);
		return IP_SOCK_ILLEGAL;
	}
	err = EtherOutput(psock->buff, psock->length, psock->pni->hw_id);
	PutSock(psock);
	return (err);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人官网二区| 日韩高清电影一区| 国产成人免费高清| 欧美一区二区三区免费在线看| 亚洲天堂精品视频| 成人av网站在线观看| 欧美激情一区二区三区不卡| 久久精品二区亚洲w码| 日韩精品中文字幕一区二区三区 | 亚洲一区免费观看| 在线视频国产一区| 亚洲第一狼人社区| 日韩一区二区三区在线| 久久精品国产一区二区三 | 在线观看91精品国产入口| 中文字幕亚洲综合久久菠萝蜜| 国产精品18久久久久久久久| 久久久久国产免费免费| 五月激情六月综合| 91精品国产综合久久精品性色| 免费观看一级特黄欧美大片| 欧美成人一区二区三区片免费| 国产成人精品三级麻豆| 国产精品蜜臀在线观看| 欧美三级中文字幕在线观看| 国产主播一区二区三区| 亚洲欧洲日韩av| 欧美日韩一区视频| 国产白丝网站精品污在线入口| 亚洲特黄一级片| 日韩欧美三级在线| 91啪九色porn原创视频在线观看| 亚洲国产中文字幕| 中文字幕+乱码+中文字幕一区| 91免费版在线| 国产mv日韩mv欧美| 日韩精彩视频在线观看| 中文字幕一区二区三区视频| 欧美一区二区免费| 欧美亚洲综合一区| www.日韩精品| 国产成人免费xxxxxxxx| 国内精品不卡在线| 免费的国产精品| 久久众筹精品私拍模特| 国产69精品久久久久777| 七七婷婷婷婷精品国产| 日韩美女视频一区| 国产女人aaa级久久久级| 欧美成人性战久久| 欧美一区二区在线免费播放 | 亚洲成人免费观看| 亚洲精品成人悠悠色影视| 中文字幕一区免费在线观看| 久久久久久久久久久久久女国产乱| 91精品婷婷国产综合久久性色 | 成人免费高清在线观看| 国产一区二区在线视频| 开心九九激情九九欧美日韩精美视频电影| 欧美日韩国产首页在线观看| 91国产视频在线观看| 91麻豆.com| 欧美色欧美亚洲另类二区| 欧美日韩大陆一区二区| 在线综合视频播放| 国产日韩欧美精品一区| 国产欧美日韩麻豆91| 国产精品日产欧美久久久久| 亚洲妇熟xx妇色黄| 婷婷丁香久久五月婷婷| 美女久久久精品| 国产成人午夜片在线观看高清观看| 国产成人亚洲综合a∨婷婷图片| 国产成人在线影院 | 午夜不卡在线视频| 精品在线观看视频| 9i在线看片成人免费| 91精品国产手机| 国产精品人妖ts系列视频| 午夜精品福利一区二区蜜股av| 看电影不卡的网站| 欧美在线观看一区| 国产网站一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 国产麻豆视频精品| 亚洲人妖av一区二区| 久久久亚洲国产美女国产盗摄 | 捆绑紧缚一区二区三区视频| 日本电影欧美片| 亚洲18影院在线观看| 欧美日韩国产小视频在线观看| 日本欧美一区二区| 国产美女一区二区| 欧美人伦禁忌dvd放荡欲情| 欧美精品一区二区三区蜜桃视频| 精品国产免费人成电影在线观看四季 | 国产精品亚洲午夜一区二区三区 | 一区在线播放视频| 欧美日韩免费高清一区色橹橹 | 日本网站在线观看一区二区三区 | 国产精品一区二区91| 在线亚洲欧美专区二区| 精品国产污污免费网站入口 | 色噜噜夜夜夜综合网| 精品国产污污免费网站入口 | 国产精品一区二区在线看| 欧美性色欧美a在线播放| 国产欧美一区二区三区网站| 欧美三级视频在线播放| 一区二区三区蜜桃网| 激情国产一区二区| 欧美日韩亚洲国产综合| 国产精品美女久久久久aⅴ| 日韩电影在线一区二区三区| 91在线看国产| 久久精品夜色噜噜亚洲aⅴ| 日韩中文字幕区一区有砖一区 | 91精品国产色综合久久不卡电影| 亚洲欧美影音先锋| 欧美日韩中文一区| 亚洲天堂av一区| 国产成人综合精品三级| 精品国产一区二区国模嫣然| 午夜精品久久久久久不卡8050| 色综合天天综合网天天看片 | 中文字幕一区二区在线观看| 国产一区二区三区在线观看免费视频 | 亚洲成人午夜影院| 在线一区二区视频| 亚洲精品日日夜夜| 91美女视频网站| 亚洲精品美国一| 色综合天天做天天爱| 亚洲人成精品久久久久久| 99久久免费视频.com| 国产精品久99| 成+人+亚洲+综合天堂| 欧美国产一区二区在线观看| 国产精品资源网站| 国产无一区二区| 国产电影精品久久禁18| 国产亚洲福利社区一区| 国产伦精一区二区三区| 国产无一区二区| 国产情人综合久久777777| 亚洲免费视频中文字幕| 色香色香欲天天天影视综合网| 中文字幕亚洲一区二区av在线| 国产99久久久久| 国产精品久久综合| 色噜噜夜夜夜综合网| 亚洲第一主播视频| 欧美videos中文字幕| 九九九精品视频| 国产欧美精品国产国产专区| 不卡一区在线观看| 亚洲卡通欧美制服中文| 欧美日韩国产在线观看| 男人的j进女人的j一区| 2024国产精品| 99在线精品观看| 性做久久久久久| 精品久久人人做人人爰| 不卡电影一区二区三区| 亚洲制服欧美中文字幕中文字幕| 欧美精品丝袜中出| 国产一区中文字幕| 亚洲视频小说图片| 欧美日韩精品一区视频| 韩国三级中文字幕hd久久精品| 国产欧美精品一区aⅴ影院| 在线免费不卡视频| 蜜桃传媒麻豆第一区在线观看| 久久久91精品国产一区二区精品| 91网页版在线| 奇米亚洲午夜久久精品| 久久久91精品国产一区二区精品| 91丨九色丨尤物| 日韩黄色小视频| 国产亚洲1区2区3区| 91国产福利在线| 国产精一区二区三区| 一区二区三区日韩欧美| 日韩欧美激情在线| 99国产欧美久久久精品| 日日噜噜夜夜狠狠视频欧美人| 国产视频一区在线播放| 欧美在线制服丝袜| 国产精品77777| 亚洲电影第三页| 国产精品青草综合久久久久99| 欧美亚洲国产一区二区三区va| 国产老肥熟一区二区三区| 夜色激情一区二区| 国产清纯在线一区二区www| 欧美日韩国产高清一区二区三区 | 日韩你懂的在线播放| 99精品国产91久久久久久| 精品亚洲国内自在自线福利| 一区二区三区中文字幕电影|