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

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

?? bootp.c

?? pxa255處理器的bootloader
?? C
字號:
/////////////////////////////////////////////////////////////////////////////////
// Copyright(c) 2001-2002 Hybus Co,.ltd. All rights reserved.
//
// Module name:
//      bootp.c
//
// Description:
//
//
// Author:
//      lijilong
//
// Created:
//      2002.10
//
///////////////////////////////////////////////////////////////////////////////

#include "time.h"
#include "net.h"
#include "bootp.h"
#include "scc.h"

#define TIMEOUT							20		// bootp request甫 矯檔竅綽 矯埃(檬寸 1雀 矯檔).

#define PORT_BOOTPS						67		// BOOTP server UDP port.
#define PORT_BOOTPC						68		// BOOTP client UDP port.

#define BOOTP_FAILURE					0
#define BOOTP_SUCCESS					1
#define BOOTP_CONTINUE					2

ulong	bootpID;
ulong	hostIP;
short	bootpState;
ushort	bootps=67;			// bootp server port #.
ushort	bootpc=68;			// bootp client port #.

uchar	broadcastEther[6]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
ulong	broadcastIP = 0xffffffff;
ulong	noIP		= 0x00000000;


bool	BootpTx(void);
void	SetBootpHeader(char *bootpHeader);

void  sendtest()
{
     int i;
     uchar *txPktBuf,rxPktBuf;
     unsigned char testpkt[MAX_PKT_SIZE];
     txPktBuf=testpkt;
     rxPktBuf=testpkt;
     MemSet(txPktBuf,0,MAX_PKT_SIZE);
     SetBootpHeader((char *)(txPktBuf+ETHER_HDR_SIZE+IP_HDR_SIZE+UDP_HDR_SIZE));
     SetUdpHeader((char *)(txPktBuf+ETHER_HDR_SIZE+IP_HDR_SIZE),bootps,bootpc,BOOTP_HDR_SIZE);
     SetIPHeader((char *)(txPktBuf+ETHER_HDR_SIZE),noIP,broadcastIP,UDP_HDR_SIZE+BOOTP_HDR_SIZE);
     SetEtherHeader(txPktBuf,broadcastEther,PROT_IP);
     for(i=0;i<10000;i++){
        EthTx(testpkt,ETHER_HDR_SIZE+IP_HDR_SIZE+UDP_HDR_SIZE+BOOTP_HDR_SIZE);
        EthRx(rxPktBuf);
        
     }
   
}

bool DoBootp(CMD_TBL *cptr, int argc, char **argv){
	return BootpTx();
}


bool BootpTx(void){
	int			i;
	char		*txPktBuf, *rxPktBuf;
	long		delay;		// delay : 1檬 delay饒 角菩擱 犁矯檔.
	
	txPktBuf = PktBuf;
	rxPktBuf = PktBuf;

	bootpState = BOOTP_CONTINUE;
	protocol = PROT_BOOTP;

	// make boop packet.
	MemSet(txPktBuf, 0, MAX_PKT_SIZE);
	SetBootpHeader((char *)(txPktBuf+ETHER_HDR_SIZE+IP_HDR_SIZE+UDP_HDR_SIZE));
	SetUdpHeader((char *)(txPktBuf+ETHER_HDR_SIZE+IP_HDR_SIZE), bootps, bootpc, BOOTP_HDR_SIZE);
	SetIPHeader((char *)(txPktBuf+ETHER_HDR_SIZE), noIP, broadcastIP, UDP_HDR_SIZE+BOOTP_HDR_SIZE);
	SetEtherHeader(txPktBuf, broadcastEther, PROT_IP);

	if (!NetInit()) return false;

	// view info.
	printf("Our Ethernet address is ");
	PrintEthAddr(clientEther);
	printf(".\n");
	printf("\tSending bootp packet...\n");
	
	// bootp operation.
	for (i=0; i<TIMEOUT; i++){
		// transmit bootp packet to host.
		printf(".");
		if (!TxPacket(txPktBuf, ETHER_HDR_SIZE+IP_HDR_SIZE+UDP_HDR_SIZE+BOOTP_HDR_SIZE)) break;
		// receive bootp packet from host.
		delay = GetTime()+HZ;
		while (GetTime()<delay && bootpState==BOOTP_CONTINUE){
			RxPacket(rxPktBuf);
			if (bootpState==BOOTP_SUCCESS) break;
		}
		if (bootpState==BOOTP_SUCCESS) break;
	}
	printf("\n");

	protocol = NOPROTOCOL;
	
	if (bootpState==BOOTP_SUCCESS){
		printf("Bootp Packet received.\n");
		
		printf("\tHost   (server) Ethernet : ");
		PrintEthAddr(hostEther);
		printf("\n");
		
		printf("\tHost   (server) IP       : ");
		PrintIPAddr(hostIP);
		printf("\n");

		printf("\tClient (target) Ethernet : ");
		PrintEthAddr(clientEther);
		printf("\n");
		
		printf("\tClient (target) IP       : ");
		PrintIPAddr(clientIP);
		printf("\n");

		printf("\n");
		return true;
	}
	else {
		printf("Bootp packet is not received.\n\n");
		return false;
	}
	return true;
}	// BootpTx.


bool BootpRx(char *bootpHeader, short len){
	BOOTP_HEADER	*bhp = (BOOTP_HEADER *)bootpHeader;

	if (len!=BOOTP_HDR_SIZE)		return false;

	// check bootp.
	if (bhp->bh_opcode!=2)			return false;
	if (bhp->bh_htype!=1)			return false;
	if (bhp->bh_hlen!=6)			return false;
	if (MemCmp(&bhp->bh_tid, &bootpID, 4)) return false;
	if (MemCmp(&bhp->bh_chaddr, &clientEther, 6)) return false;

	// get infomation from bootp packet.
	MemCpy(&clientIP, &bhp->bh_yiaddr, 4);
	MemCpy(&hostIP  , &bhp->bh_siaddr, 4);

	bootpState = BOOTP_SUCCESS;
	return true;
}	// BootpRx.


void SetBootpHeader(char *bootpHeader){
	BOOTP_HEADER	*bhp = (BOOTP_HEADER *)bootpHeader;

	bhp->bh_opcode = OP_BOOTREQUEST;			// 1 : request		2 : reply.
	bhp->bh_htype  = HWT_ETHER;					// 10 Base Ethernet : 1.
	bhp->bh_hlen   = HWL_ETHER;					// 10 Base Ethernet : 6.
	bhp->bh_hops   = 0;							// client俊輯 0欄肺 setting. gateway啊 葷儈.
	bhp->bh_secs   = SWAP16(GetTime() / HZ);	// 

	MemSet(&(bhp->bh_ciaddr), 0, 4);
	MemSet(&(bhp->bh_yiaddr), 0, 4);
	MemSet(&(bhp->bh_siaddr), 0, 4);
	MemSet(&(bhp->bh_giaddr), 0, 4);
	MemCpy((char *)bhp->bh_chaddr, clientEther, 6);

	bootpID = ((ulong)clientEther[2] << 24)
		| ((ulong)clientEther[3] << 16)
		| ((ulong)clientEther[4] << 8)
		| (ulong)clientEther[5];
	bootpID += GetTime();
	MemCpy(&(bhp->bh_tid), &(bootpID), 4);
}	// SetBootpHeader.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲一区二区三区| 欧美色图第一页| 成人激情校园春色| 91麻豆精品国产91久久久久久久久 | 亚洲一区二区三区自拍| 一区二区三区四区亚洲| 成人黄色在线看| 成人av电影在线网| 国产伦精品一区二区三区在线观看| 久久中文字幕电影| caoporen国产精品视频| 亚洲成人免费看| 精品av久久707| 91色porny在线视频| 日韩不卡一区二区三区| 欧美成人在线直播| av欧美精品.com| 91日韩精品一区| 欧美日韩不卡在线| 国产福利91精品一区二区三区| 欧美激情中文字幕| 欧美日韩国产一二三| 欧美日韩精品高清| 日韩一区二区三区四区| 肉色丝袜一区二区| 国产精品久久久久四虎| 欧美电视剧在线观看完整版| 99riav久久精品riav| 国产在线精品免费| 91在线porny国产在线看| 欧美私模裸体表演在线观看| www.亚洲精品| 欧美肥大bbwbbw高潮| 在线精品视频一区二区| 成人午夜av影视| 国产精品白丝av| 国产毛片精品国产一区二区三区| 97久久精品人人澡人人爽| 在线电影欧美成精品| 中文字幕不卡在线观看| 亚洲综合视频网| 大白屁股一区二区视频| 色综合天天综合色综合av| 国产一区二区0| 在线亚洲免费视频| 国产亚洲短视频| 亚洲第一在线综合网站| 成人av影院在线| 精品1区2区在线观看| 亚洲6080在线| 日本韩国一区二区三区视频| 亚洲午夜在线视频| 香蕉成人啪国产精品视频综合网| 日韩福利电影在线观看| 99精品久久只有精品| 国产欧美精品在线观看| 日本精品一区二区三区四区的功能| 欧美精品乱码久久久久久按摩| 亚洲视频一区在线| 亚洲第一福利一区| 欧美性猛交xxxx乱大交退制版| 国产欧美一区二区精品性色超碰 | 亚洲午夜成aⅴ人片| 成人激情电影免费在线观看| 精品国产制服丝袜高跟| 免费观看在线综合色| 国产一区二区影院| 日韩精品一区二区在线| 肉色丝袜一区二区| 91麻豆精品国产自产在线| 天堂久久久久va久久久久| 精品视频在线视频| 婷婷亚洲久悠悠色悠在线播放| 热久久一区二区| 欧美一区二区三区免费大片 | 综合电影一区二区三区| 国产盗摄女厕一区二区三区| 久久亚洲影视婷婷| 风流少妇一区二区| 欧美少妇性性性| 午夜av区久久| 欧美一级一区二区| 韩国v欧美v亚洲v日本v| 91在线你懂得| 亚洲成人免费观看| 日韩亚洲欧美一区| 国产美女在线精品| 中文字幕亚洲精品在线观看| 日韩国产欧美视频| 精品美女在线播放| 不卡的av中国片| 亚洲男同性视频| 国产麻豆视频一区| 国产精品视频一二三区 | 在线不卡免费欧美| 久久99精品视频| 色婷婷综合久久久久中文一区二区 | 国产揄拍国内精品对白| 中文字幕不卡一区| 欧美午夜一区二区三区| 奇米在线7777在线精品 | 日韩毛片高清在线播放| 欧美色图天堂网| 精品一区在线看| 亚洲少妇中出一区| 欧美一区二区精品| 99免费精品视频| 久久精品噜噜噜成人av农村| 91福利在线观看| 蓝色福利精品导航| 亚洲欧美激情一区二区| 日韩欧美亚洲另类制服综合在线| 成人国产精品免费网站| 亚洲成人综合视频| 欧美激情综合在线| 337p亚洲精品色噜噜狠狠| 成人午夜免费av| 青娱乐精品视频| 一区二区三区在线视频播放| 久久久久久久久久电影| 国产麻豆精品一区二区| 亚洲第一电影网| 中文字幕一区二区三区av| 欧美电视剧免费观看| 欧洲精品一区二区三区在线观看| 国产一区二区三区香蕉| 午夜婷婷国产麻豆精品| 综合激情成人伊人| 亚洲国产成人午夜在线一区| 日韩美女视频在线| 欧美亚洲国产bt| 99re免费视频精品全部| 国产麻豆视频精品| 开心九九激情九九欧美日韩精美视频电影| 亚洲精品国产无天堂网2021| 91视频国产资源| 国产99久久久国产精品| 精东粉嫩av免费一区二区三区| 亚洲国产综合91精品麻豆| 国产精品久久久久7777按摩| 精品成a人在线观看| 欧美一区二区三区白人| 欧美军同video69gay| 欧美性xxxxx极品少妇| 91污在线观看| 色拍拍在线精品视频8848| 91日韩精品一区| 色综合久久88色综合天天| 不卡视频在线看| 91在线国产福利| 日本韩国欧美一区| 欧洲亚洲精品在线| 在线免费精品视频| 欧美日韩在线综合| 欧美日韩国产色站一区二区三区| 欧美性生活影院| 欧美一区二区视频在线观看| 欧美一区二区久久久| 精品久久久久香蕉网| 久久婷婷久久一区二区三区| 久久午夜羞羞影院免费观看| 国产亚洲精品精华液| 中文字幕在线不卡一区| 亚洲欧美日本在线| 香蕉成人啪国产精品视频综合网 | 精品区一区二区| 久久久久久综合| 国产精品国产三级国产有无不卡 | 丝袜美腿亚洲综合| 蜜桃av一区二区| 一区二区三区欧美视频| 亚洲午夜久久久久久久久久久| 亚洲综合激情网| 日韩av一区二区在线影视| 美女免费视频一区二区| 国产高清精品网站| 99久久久精品| 91精品国产综合久久久久久久久久| 欧美一区二区三区电影| 久久久久久久久久久久久夜| 中文字幕制服丝袜成人av| 亚洲高清一区二区三区| 精品在线观看视频| 国产成人亚洲精品青草天美| 国产成人精品网址| 91久久奴性调教| 久久久美女毛片| 午夜欧美视频在线观看 | 国产亚洲一区二区三区四区| 亚洲色图欧洲色图| 九九视频精品免费| 在线观看日韩国产| 久久久噜噜噜久久人人看| 亚洲一区二区三区在线看| 国产在线播放一区三区四| 欧美日产国产精品| 亚洲视频网在线直播| 九九精品一区二区| 欧美顶级少妇做爰| 成人欧美一区二区三区黑人麻豆 |