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

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

?? bootp.c

?? 關于s3c2440之bootloader的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if ((x = dhcp_vendorex_prep (e)))		return x - start;#endif	*e++ = 55;		/* Parameter Request List */	 cnt = e++;		/* Pointer to count of requested items */	*cnt = 0;#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SUBNETMASK)	*e++  = 1;		/* Subnet Mask */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_GATEWAY)	*e++  = 3;		/* Router Option */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS)	*e++  = 6;		/* DNS Server(s) */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_HOSTNAME)	*e++  = 12;		/* Hostname */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTFILESIZE)	*e++  = 13;		/* Boot File Size */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTPATH)	*e++  = 17;		/* Boot path */	*cnt += 1;#endif#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NISDOMAIN)	*e++  = 40;		/* NIS Domain name request */	*cnt += 1;#endif	*e++  = 255;		/* End of the list */	/* Pad to minimal length */#ifdef	CONFIG_DHCP_MIN_EXT_LEN	while ((e - start) <= CONFIG_DHCP_MIN_EXT_LEN)		*e++ = 0;#endif	return e - start;}#else	/* CONFIG_CMD_DHCP *//* *	Warning: no field size check - change CONFIG_BOOTP_MASK at your own risk! */static int BootpExtended (u8 * e){	u8 *start = e;	*e++ = 99;		/* RFC1048 Magic Cookie */	*e++ = 130;	*e++ = 83;	*e++ = 99;#ifdef CONFIG_CMD_DHCP	*e++ = 53;		/* DHCP Message Type */	*e++ = 1;	*e++ = DHCP_DISCOVER;	*e++ = 57;		/* Maximum DHCP Message Size */	*e++ = 2;	*e++ = (576 - 312 + OPT_SIZE) >> 16;	*e++ = (576 - 312 + OPT_SIZE) & 0xff;#endif /* CONFIG_CMD_DHCP */#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SUBNETMASK)	*e++ = 1;		/* Subnet mask request */	*e++ = 4;	e   += 4;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_GATEWAY)	*e++ = 3;		/* Default gateway request */	*e++ = 4;	e   += 4;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS)	*e++ = 6;		/* Domain Name Server */	*e++ = 4;	e   += 4;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_HOSTNAME)	*e++ = 12;		/* Host name request */	*e++ = 32;	e   += 32;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTFILESIZE)	*e++ = 13;		/* Boot file size */	*e++ = 2;	e   += 2;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTPATH)	*e++ = 17;		/* Boot path */	*e++ = 32;	e   += 32;#endif#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NISDOMAIN)	*e++ = 40;		/* NIS Domain name request */	*e++ = 32;	e   += 32;#endif	*e++ = 255;		/* End of the list */	return e - start;}#endif	/* CONFIG_CMD_DHCP */voidBootpRequest (void){	volatile uchar *pkt, *iphdr;	Bootp_t *bp;	int ext_len, pktlen, iplen;#ifdef CONFIG_CMD_DHCP	dhcp_state = INIT;#endif	printk("BOOTP broadcast %d\n", ++BootpTry);	pkt = NetTxPacket;	memset ((void*)pkt, 0, PKTSIZE);	pkt += NetSetEther(pkt, NetBcastAddr, PROT_IP);	/*	 * Next line results in incorrect packet size being transmitted, resulting	 * in errors in some DHCP servers, reporting missing bytes.  Size must be	 * set in packet header after extension length has been determined.	 * C. Hallinan, DS4.COM, Inc.	 */	/* NetSetIP(pkt, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, sizeof (Bootp_t)); */	iphdr = pkt;	/* We need this later for NetSetIP() */	pkt += IP_HDR_SIZE;	bp = (Bootp_t *)pkt;	bp->bp_op = OP_BOOTREQUEST;	bp->bp_htype = HWT_ETHER;	bp->bp_hlen = HWL_ETHER;	bp->bp_hops = 0;	bp->bp_secs = htons(get_timer(0) / CFG_HZ);	NetWriteIP(&bp->bp_ciaddr, 0);	NetWriteIP(&bp->bp_yiaddr, 0);	NetWriteIP(&bp->bp_siaddr, 0);	NetWriteIP(&bp->bp_giaddr, 0);	memcpy (bp->bp_chaddr, NetOurEther, 6);	copy_filename (bp->bp_file, BootFile, sizeof(bp->bp_file));	/* Request additional information from the BOOTP/DHCP server */#ifdef CONFIG_CMD_DHCP	ext_len = DhcpExtended(bp->bp_vend, DHCP_DISCOVER, 0, 0);#else	ext_len = BootpExtended(bp->bp_vend);#endif	/* CONFIG_CMD_DHCP */	/*	 *	Bootp ID is the lower 4 bytes of our ethernet address	 *	plus the current time in HZ.	 */	BootpID = ((ulong)NetOurEther[2] << 24)		| ((ulong)NetOurEther[3] << 16)		| ((ulong)NetOurEther[4] << 8)		| (ulong)NetOurEther[5];	BootpID += get_timer(0);	BootpID	 = htonl(BootpID);	NetCopyLong(&bp->bp_id, &BootpID);	/*	 * Calculate proper packet lengths taking into account the	 * variable size of the options field	 */	pktlen = BOOTP_SIZE - sizeof(bp->bp_vend) + ext_len;	iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + ext_len;	NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);	NetSetTimeout(SELECT_TIMEOUT * CFG_HZ, BootpTimeout);#ifdef CONFIG_CMD_DHCP	dhcp_state = SELECTING;	NetSetHandler(DhcpHandler);#else	NetSetHandler(BootpHandler);#endif	/* CONFIG_CMD_DHCP */	NetSendPacket(NetTxPacket, pktlen);}#ifdef  CONFIG_CMD_DHCPstatic void DhcpOptionsProcess (uchar * popt){	uchar *end = popt + BOOTP_HDR_SIZE;	int oplen, size;	while (popt < end && *popt != 0xff) {		oplen = *(popt + 1);		switch (*popt) {		case 1:			NetCopyIP (&NetOurSubnetMask, (popt + 2));			break;		case 3:			NetCopyIP (&NetOurGatewayIP, (popt + 2));			break;		case 6:			NetCopyIP (&NetOurDNSIP, (popt + 2));#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)			if (*(popt + 1) > 4) {				NetCopyIP (&NetOurDNS2IP, (popt + 2 + 4));			}#endif			break;		case 12:			size = truncate_sz ("Host Name", sizeof (NetOurHostName), oplen);			memcpy (&NetOurHostName, popt + 2, size);			NetOurHostName[size] = 0;			break;		case 15:	/* Ignore Domain Name Option */			break;		case 17:			size = truncate_sz ("Root Path", sizeof (NetOurRootPath), oplen);			memcpy (&NetOurRootPath, popt + 2, size);			NetOurRootPath[size] = 0;			break;		case 51:			NetCopyLong (&dhcp_leasetime, (ulong *) (popt + 2));			break;		case 53:	/* Ignore Message Type Option */			break;		case 54:			NetCopyIP (&NetDHCPServerIP, (popt + 2));			break;		case 58:	/* Ignore Renewal Time Option */			break;		case 59:	/* Ignore Rebinding Time Option */			break;		default:#ifdef (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX)			if (dhcp_vendorex_proc (popt))				break;#endif			printk ("*** Unhandled DHCP Option in OFFER/ACK: %d\n", *popt);			break;		}		popt += oplen + 2;	/* Process next option */	}}static int DhcpMessageType(unsigned char *popt){	if (NetReadLong((ulong*)popt) != htonl(BOOTP_VENDOR_MAGIC))		return -1;	popt += 4;	while ( *popt != 0xff ) {		if ( *popt == 53 )	/* DHCP Message Type */			return *(popt + 2);		popt += *(popt + 1) + 2;	/* Scan through all options */	}	return -1;}static void DhcpSendRequestPkt(Bootp_t *bp_offer){	volatile uchar *pkt, *iphdr;	Bootp_t *bp;	int pktlen, iplen, extlen;	IPaddr_t OfferedIP;	debug ("DhcpSendRequestPkt: Sending DHCPREQUEST\n");	pkt = NetTxPacket;	memset ((void*)pkt, 0, PKTSIZE);	pkt += NetSetEther(pkt, NetBcastAddr, PROT_IP);	iphdr = pkt;		/* We'll need this later to set proper pkt size */	pkt += IP_HDR_SIZE;	bp = (Bootp_t *)pkt;	bp->bp_op = OP_BOOTREQUEST;	bp->bp_htype = HWT_ETHER;	bp->bp_hlen = HWL_ETHER;	bp->bp_hops = 0;	bp->bp_secs = htons(get_timer(0) / CFG_HZ);	NetCopyIP(&bp->bp_ciaddr, &bp_offer->bp_ciaddr); /* both in network byte order */	NetCopyIP(&bp->bp_yiaddr, &bp_offer->bp_yiaddr);	NetCopyIP(&bp->bp_siaddr, &bp_offer->bp_siaddr);	NetCopyIP(&bp->bp_giaddr, &bp_offer->bp_giaddr);	memcpy (bp->bp_chaddr, NetOurEther, 6);	/*	 * ID is the id of the OFFER packet	 */	NetCopyLong(&bp->bp_id, &bp_offer->bp_id);	/*	 * Copy options from OFFER packet if present	 */	NetCopyIP(&OfferedIP, &bp->bp_yiaddr);	extlen = DhcpExtended(bp->bp_vend, DHCP_REQUEST, NetDHCPServerIP, OfferedIP);	pktlen = BOOTP_SIZE - sizeof(bp->bp_vend) + extlen;	iplen = BOOTP_HDR_SIZE - sizeof(bp->bp_vend) + extlen;	NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);	debug ("Transmitting DHCPREQUEST packet: len = %d\n", pktlen);	NetSendPacket(NetTxPacket, pktlen);}/* *	Handle DHCP received packets. */static voidDhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len){	Bootp_t *bp = (Bootp_t *)pkt;	debug ("DHCPHandler: got packet: (src=%d, dst=%d, len=%d) state: %d\n",		src, dest, len, dhcp_state);	if (BootpCheckPkt(pkt, dest, src, len)) /* Filter out pkts we don't want */		return;	debug ("DHCPHandler: got DHCP packet: (src=%d, dst=%d, len=%d) state: %d\n",		src, dest, len, dhcp_state);	switch (dhcp_state) {	case SELECTING:		/*		 * Wait an appropriate time for any potential DHCPOFFER packets		 * to arrive.  Then select one, and generate DHCPREQUEST response.		 * If filename is in format we recognize, assume it is a valid		 * OFFER from a server we want.		 */		debug ("DHCP: state=SELECTING bp_file: \"%s\"\n", bp->bp_file);#ifdef CFG_BOOTFILE_PREFIX		if (strncmp(bp->bp_file,			    CFG_BOOTFILE_PREFIX,			    strlen(CFG_BOOTFILE_PREFIX)) == 0 ) {#endif	/* CFG_BOOTFILE_PREFIX */			debug ("TRANSITIONING TO REQUESTING STATE\n");			dhcp_state = REQUESTING;			if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))				DhcpOptionsProcess(&bp->bp_vend[4]);			BootpCopyNetParams(bp); /* Store net params from reply */			NetSetTimeout(TIMEOUT * CFG_HZ, BootpTimeout);			DhcpSendRequestPkt(bp);#ifdef CFG_BOOTFILE_PREFIX		}#endif	/* CFG_BOOTFILE_PREFIX */		return;		break;	case REQUESTING:		debug ("DHCP State: REQUESTING\n");		if ( DhcpMessageType(bp->bp_vend) == DHCP_ACK ) {			char *s;			if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))				DhcpOptionsProcess(&bp->bp_vend[4]);			BootpCopyNetParams(bp); /* Store net params from reply */			dhcp_state = BOUND;			printk("DHCP client bound to address ");			print_IPaddr(NetOurIP);			printk("\n");			/* Obey the 'autoload' setting */			TftpStart();			return;		}		break;	default:		printk("DHCP: INVALID STATE\n");		break;	}}void DhcpRequest(void){	BootpRequest();}#endif	/* CONFIG_CMD_DHCP */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美喷潮久久久xxxxx| 极品瑜伽女神91| 在线欧美日韩国产| 一区二区三区在线视频观看58| 色噜噜狠狠一区二区三区果冻| 日韩伦理电影网| 欧美日免费三级在线| 手机精品视频在线观看| 91精选在线观看| 国产主播一区二区三区| 中文字幕高清不卡| 色婷婷av一区二区三区软件| 亚洲午夜一二三区视频| 制服丝袜成人动漫| 精品一区中文字幕| 日本视频在线一区| 日韩精品专区在线影院重磅| 国产福利一区二区| 玉米视频成人免费看| 91精品国产欧美一区二区18| 国产精品18久久久久久久久久久久| 国产精品久久久久久久久快鸭 | 99久久亚洲一区二区三区青草| 一区二区三区影院| 精品少妇一区二区三区日产乱码 | 色婷婷精品大视频在线蜜桃视频| 午夜成人免费电影| 久久久久久9999| 色综合天天综合网天天看片| 亚洲一区二区不卡免费| 欧美一区二区视频在线观看2020| 久久99热99| 久久久精品tv| 69堂亚洲精品首页| 国产福利一区二区三区视频 | 国产精品18久久久久久久久久久久 | 看电影不卡的网站| 欧美国产乱子伦| 在线国产电影不卡| 久久成人18免费观看| 欧美激情一区二区在线| 欧美日韩一区二区在线观看视频| 美女久久久精品| 国产精品私人影院| 欧美福利一区二区| 波多野结衣一区二区三区| 国产精品日韩成人| 成人va在线观看| 九一九一国产精品| 亚洲欧美偷拍三级| 欧美mv日韩mv国产网站app| 不卡欧美aaaaa| 美女一区二区久久| 亚洲同性同志一二三专区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧洲国产专区| 在线综合视频播放| 色综合天天天天做夜夜夜夜做| 天天影视涩香欲综合网| 中文字幕乱码久久午夜不卡 | 日本精品裸体写真集在线观看 | 久久伊99综合婷婷久久伊| 色欧美88888久久久久久影院| 日韩av二区在线播放| 亚洲欧美电影一区二区| 欧美精品一区在线观看| 欧美日韩电影在线| 色噜噜夜夜夜综合网| 国产酒店精品激情| 日韩国产在线一| 一区二区三区欧美激情| 久久精品在线免费观看| 91精品国产入口| 在线中文字幕不卡| 成人av网站在线| 老司机一区二区| 亚洲丶国产丶欧美一区二区三区| 精品国产乱码91久久久久久网站| 在线免费观看日本欧美| 国产99一区视频免费| 韩国av一区二区三区四区| 日本一不卡视频| 亚欧色一区w666天堂| 亚洲午夜久久久久久久久久久 | 日韩欧美资源站| 欧美浪妇xxxx高跟鞋交| 欧美性猛交xxxx乱大交退制版| 91在线观看高清| 99久久精品国产毛片| 国产毛片精品一区| 国产在线麻豆精品观看| 国产一区二区三区四区五区美女| 老司机精品视频线观看86| 一区二区三区免费观看| ...xxx性欧美| 久久网这里都是精品| 2020国产精品自拍| 久久久亚洲高清| 国产校园另类小说区| 国产欧美一二三区| 国产精品乱人伦| 国产精品狼人久久影院观看方式| 国产色91在线| 国产精品理论在线观看| 亚洲人成影院在线观看| 一区二区三区日韩欧美精品| 一卡二卡欧美日韩| 亚洲国产欧美在线| 日韩国产在线观看| 精品一区二区在线视频| 国产精品一区二区在线观看不卡 | 欧美日韩国产综合一区二区三区| 欧美视频日韩视频在线观看| 欧美精品久久久久久久多人混战| 欧美二区在线观看| 精品国产乱码久久久久久1区2区| 国产精品视频一区二区三区不卡| 亚洲欧美另类在线| 亚洲国产视频在线| 国产尤物一区二区| 色综合久久综合网97色综合| 欧美日韩在线播| 精品国产髙清在线看国产毛片 | 天堂蜜桃91精品| 婷婷丁香久久五月婷婷| 日韩av高清在线观看| 婷婷六月综合网| 日韩国产精品91| av一区二区三区四区| 欧美日本精品一区二区三区| 精品久久久久久久一区二区蜜臀| 久久久久久久精| 亚洲国产欧美日韩另类综合| 久久99精品久久久久久动态图| 成人国产电影网| 在线不卡中文字幕| 国产欧美视频一区二区三区| 亚洲夂夂婷婷色拍ww47| 久久99久久精品欧美| 色综合久久中文综合久久97| 91精品国产色综合久久不卡蜜臀| 国产精品无遮挡| 午夜精品久久久久久久久| 国产福利精品一区二区| 欧美美女网站色| 中文字幕一区二区三区在线播放 | 亚洲成人福利片| 成人精品国产一区二区4080| 在线播放欧美女士性生活| 国产精品国产三级国产专播品爱网| 午夜精品视频一区| 99国产精品久久久久| 欧美电影免费观看高清完整版在线| 亚洲色大成网站www久久九九| 激情六月婷婷综合| 欧美少妇xxx| 亚洲日本va在线观看| 黑人巨大精品欧美一区| 91精品国产全国免费观看| 一区二区三区日韩欧美精品| 粉嫩aⅴ一区二区三区四区| 欧美一区二区私人影院日本| 国产精品乱人伦中文| 久久精品国产网站| 日韩精品一区二区三区中文不卡| 一区二区三区鲁丝不卡| 成人免费看黄yyy456| 精品女同一区二区| 免费看黄色91| 欧美体内she精视频| 亚洲美女淫视频| 成人国产精品免费| 中文字幕免费在线观看视频一区| 韩国精品一区二区| 欧美大片在线观看| 蜜桃视频免费观看一区| 777午夜精品免费视频| 一区二区三区高清不卡| 在线视频综合导航| 亚洲美女偷拍久久| 色综合久久88色综合天天| 中文字幕亚洲在| 久久99国产精品成人| 日韩精品一区二区三区四区视频 | 色偷偷久久一区二区三区| 中文字幕在线一区二区三区| 国产69精品久久777的优势| 欧美激情一区在线观看| 国产成人午夜99999| 久久综合色天天久久综合图片| 国产成人激情av| 国产精品麻豆久久久| 99久久精品国产毛片| 亚洲美女一区二区三区| 日本道精品一区二区三区| 一区二区成人在线视频| 欧美私模裸体表演在线观看| 五月天激情综合| 精品国产伦理网| 成人听书哪个软件好|