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

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

?? cs89x0.c

?? grub4dos-0.4.4-2008- 08-src.zip
?? C
?? 第 1 頁 / 共 2 頁
字號:
	/* Write the contents of the packet */	outsw(eth_nic_base + TX_FRAME_PORT, testpacket,	      (ETH_ZLEN+1)>>1);	printf(" sending test packet ");	/* wait a couple of timer ticks for packet to be received */	for (tmo = currticks() + 2; currticks() < tmo; );	if ((readreg(PP_TxEvent) & TX_SEND_OK_BITS) == TX_OK) {			printf("succeeded");			return 1;	}	printf("failed");	return 0;}static int detect_aui(struct nic *nic){	clrline(); printf("attempting %s:","AUI");	control_dc_dc(0);	writereg(PP_LineCTL, (eth_linectl & ~AUTO_AUI_10BASET) | AUI_ONLY);	if (send_test_pkt(nic)) {		return A_CNF_MEDIA_AUI; }	else		return 0;}static int detect_bnc(struct nic *nic){	clrline(); printf("attempting %s:","BNC");	control_dc_dc(1);	writereg(PP_LineCTL, (eth_linectl & ~AUTO_AUI_10BASET) | AUI_ONLY);	if (send_test_pkt(nic)) {		return A_CNF_MEDIA_10B_2; }	else		return 0;}/**************************************************************************ETH_RESET - Reset adapter***************************************************************************/static void cs89x0_reset(struct nic *nic){	int  i;	unsigned long reset_tmo;	writereg(PP_SelfCTL, readreg(PP_SelfCTL) | POWER_ON_RESET);	/* wait for two ticks; that is 2*55ms */	for (reset_tmo = currticks() + 2; currticks() < reset_tmo; );	if (eth_cs_type != CS8900) {		/* Hardware problem requires PNP registers to be reconfigured		   after a reset */		if (eth_irq != 0xFFFF) {			outw(PP_CS8920_ISAINT, eth_nic_base + ADD_PORT);			outb(eth_irq, eth_nic_base + DATA_PORT);			outb(0, eth_nic_base + DATA_PORT + 1); }		if (eth_mem_start) {			outw(PP_CS8920_ISAMemB, eth_nic_base + ADD_PORT);			outb((eth_mem_start >> 8) & 0xff, eth_nic_base + DATA_PORT);			outb((eth_mem_start >> 24) & 0xff, eth_nic_base + DATA_PORT + 1); } }	/* Wait until the chip is reset */	for (reset_tmo = currticks() + 2;	     (readreg(PP_SelfST) & INIT_DONE) == 0 &&		     currticks() < reset_tmo; );	/* disable interrupts and memory accesses */	writereg(PP_BusCTL, 0);	/* set the ethernet address */	for (i=0; i < ETH_ALEN/2; i++)		writereg(PP_IA+i*2,			 nic->node_addr[i*2] |			 (nic->node_addr[i*2+1] << 8));	/* receive only error free packets addressed to this card */	writereg(PP_RxCTL, DEF_RX_ACCEPT);	/* do not generate any interrupts on receive operations */	writereg(PP_RxCFG, 0);	/* do not generate any interrupts on transmit operations */	writereg(PP_TxCFG, 0);	/* do not generate any interrupts on buffer operations */	writereg(PP_BufCFG, 0);	/* reset address port, so that autoprobing will keep working */	outw(PP_ChipID, eth_nic_base + ADD_PORT);	return;}/**************************************************************************ETH_TRANSMIT - Transmit a frame***************************************************************************/static void cs89x0_transmit(	struct nic *nic,	const char *d,			/* Destination */	unsigned int t,			/* Type */	unsigned int s,			/* size */	const char *p)			/* Packet */{	unsigned long tmo;	int           sr;	/* does this size have to be rounded??? please,	   somebody have a look in the specs */	if ((sr = ((s + ETH_HLEN + 1)&~1)) < ETH_ZLEN)		sr = ETH_ZLEN;retry:	/* initiate a transmit sequence */	outw(TX_AFTER_ALL, eth_nic_base + TX_CMD_PORT);	outw(sr, eth_nic_base + TX_LEN_PORT);	/* Test to see if the chip has allocated memory for the packet */	if ((readreg(PP_BusST) & READY_FOR_TX_NOW) == 0) {		/* Oops... this should not happen! */		printf("cs: unable to send packet; retrying...\n");		for (tmo = currticks() + 5*TICKS_PER_SEC; currticks() < tmo; );		cs89x0_reset(nic);		goto retry; }	/* Write the contents of the packet */	outsw(eth_nic_base + TX_FRAME_PORT, d, ETH_ALEN/2);	outsw(eth_nic_base + TX_FRAME_PORT, nic->node_addr,	      ETH_ALEN/2);	outw(((t >> 8)&0xFF)|(t << 8), eth_nic_base + TX_FRAME_PORT);	outsw(eth_nic_base + TX_FRAME_PORT, p, (s+1)/2);	for (sr = sr/2 - (s+1)/2 - ETH_ALEN - 1; sr-- > 0;	     outw(0, eth_nic_base + TX_FRAME_PORT));	/* wait for transfer to succeed */	for (tmo = currticks()+5*TICKS_PER_SEC;	     (s = readreg(PP_TxEvent)&~0x1F) == 0 && currticks() < tmo;)		/* nothing */ ;	if ((s & TX_SEND_OK_BITS) != TX_OK) {		printf("\ntransmission error %#hX\n", s);	}	return;}/**************************************************************************ETH_POLL - Wait for a frame***************************************************************************/static int cs89x0_poll(struct nic *nic){	int status;	status = readreg(PP_RxEvent);	if ((status & RX_OK) == 0)		return(0);	status = inw(eth_nic_base + RX_FRAME_PORT);	nic->packetlen = inw(eth_nic_base + RX_FRAME_PORT);	insw(eth_nic_base + RX_FRAME_PORT, nic->packet, nic->packetlen >> 1);	if (nic->packetlen & 1)		nic->packet[nic->packetlen-1] = inw(eth_nic_base + RX_FRAME_PORT);	return 1;}static void cs89x0_disable(struct nic *nic){	cs89x0_reset(nic);}/**************************************************************************ETH_PROBE - Look for an adapter***************************************************************************/struct nic *cs89x0_probe(struct nic *nic, unsigned short *probe_addrs){	static const unsigned int netcard_portlist[] = {#ifdef	CS_SCAN		CS_SCAN,#else	/* use "conservative" default values for autoprobing */		0x300,0x320,0x340,0x200,0x220,0x240,		0x260,0x280,0x2a0,0x2c0,0x2e0,	/* if that did not work, then be more aggressive */		0x301,0x321,0x341,0x201,0x221,0x241,		0x261,0x281,0x2a1,0x2c1,0x2e1,#endif		0};	int      i, result = -1;	unsigned rev_type = 0, ioaddr, ioidx, isa_cnf, cs_revision;	unsigned short eeprom_buff[CHKSUM_LEN];	for (ioidx = 0; (ioaddr=netcard_portlist[ioidx++]) != 0; ) {		/* if they give us an odd I/O address, then do ONE write to		   the address port, to get it back to address zero, where we		   expect to find the EISA signature word. */		if (ioaddr & 1) {			ioaddr &= ~1;			if ((inw(ioaddr + ADD_PORT) & ADD_MASK) != ADD_SIG)				continue;			outw(PP_ChipID, ioaddr + ADD_PORT);		}		if (inw(ioaddr + DATA_PORT) != CHIP_EISA_ID_SIG)			continue;		eth_nic_base = ioaddr;		/* get the chip type */		rev_type = readreg(PRODUCT_ID_ADD);		eth_cs_type = rev_type &~ REVISON_BITS;		cs_revision = ((rev_type & REVISON_BITS) >> 8) + 'A';		printf("\ncs: cs89%c0%s rev %c, base %#hX",		       eth_cs_type==CS8900?'0':'2',		       eth_cs_type==CS8920M?"M":"",		       cs_revision,		       eth_nic_base);		/* First check to see if an EEPROM is attached*/		if ((readreg(PP_SelfST) & EEPROM_PRESENT) == 0) {			printf("\ncs: no EEPROM...\n");			outw(PP_ChipID, eth_nic_base + ADD_PORT);			continue; }		else if (get_eeprom_data(START_EEPROM_DATA,CHKSUM_LEN,					 eeprom_buff) < 0) {			printf("\ncs: EEPROM read failed...\n");			outw(PP_ChipID, eth_nic_base + ADD_PORT);			continue; }		else if (get_eeprom_chksum(START_EEPROM_DATA,CHKSUM_LEN,					   eeprom_buff) < 0) {			printf("\ncs: EEPROM checksum bad...\n");			outw(PP_ChipID, eth_nic_base + ADD_PORT);			continue; }		/* get transmission control word but keep the		   autonegotiation bits */		eth_auto_neg_cnf = eeprom_buff[AUTO_NEG_CNF_OFFSET/2];		/* Store adapter configuration */		eth_adapter_cnf = eeprom_buff[ADAPTER_CNF_OFFSET/2];		/* Store ISA configuration */		isa_cnf = eeprom_buff[ISA_CNF_OFFSET/2];		/* store the initial memory base address */		eth_mem_start = eeprom_buff[PACKET_PAGE_OFFSET/2] << 8;		printf("%s%s%s, addr ",		       (eth_adapter_cnf & A_CNF_10B_T)?", RJ-45":"",		       (eth_adapter_cnf & A_CNF_AUI)?", AUI":"",		       (eth_adapter_cnf & A_CNF_10B_2)?", BNC":"");		/* If this is a CS8900 then no pnp soft */		if (eth_cs_type != CS8900 &&		    /* Check if the ISA IRQ has been set  */		    (i = readreg(PP_CS8920_ISAINT) & 0xff,		     (i != 0 && i < CS8920_NO_INTS)))			eth_irq = i;		else {			i = isa_cnf & INT_NO_MASK;			if (eth_cs_type == CS8900) {				/* the table that follows is dependent				   upon how you wired up your cs8900				   in your system.  The table is the				   same as the cs8900 engineering demo				   board.  irq_map also depends on the				   contents of the table.  Also see				   write_irq, which is the reverse				   mapping of the table below. */				if (i < 4) i = "\012\013\014\005"[i];				else printf("\ncs: BUG: isa_config is %d\n", i); }			eth_irq = i; }		/* Retrieve and print the ethernet address. */		for (i=0; i<ETH_ALEN; i++) {			nic->node_addr[i] = ((unsigned char *)eeprom_buff)[i];		}		printf("%!\n", nic->node_addr);		/* Set the LineCTL quintuplet based on adapter		   configuration read from EEPROM */		if ((eth_adapter_cnf & A_CNF_EXTND_10B_2) &&		    (eth_adapter_cnf & A_CNF_LOW_RX_SQUELCH))			eth_linectl = LOW_RX_SQUELCH;		else			eth_linectl = 0;		/* check to make sure that they have the "right"		   hardware available */		switch(eth_adapter_cnf & A_CNF_MEDIA_TYPE) {		case A_CNF_MEDIA_10B_T: result = eth_adapter_cnf & A_CNF_10B_T;			break;		case A_CNF_MEDIA_AUI:   result = eth_adapter_cnf & A_CNF_AUI;			break;		case A_CNF_MEDIA_10B_2: result = eth_adapter_cnf & A_CNF_10B_2;			break;		default: result = eth_adapter_cnf & (A_CNF_10B_T | A_CNF_AUI |						     A_CNF_10B_2);		}		if (!result) {			printf("cs: EEPROM is configured for unavailable media\n");		error:			writereg(PP_LineCTL, readreg(PP_LineCTL) &				 ~(SERIAL_TX_ON | SERIAL_RX_ON));			outw(PP_ChipID, eth_nic_base + ADD_PORT);			continue;		}		/* Initialize the card for probing of the attached media */		cs89x0_reset(nic);		/* set the hardware to the configured choice */		switch(eth_adapter_cnf & A_CNF_MEDIA_TYPE) {		case A_CNF_MEDIA_10B_T:			result = detect_tp();			if (!result) {				clrline();				printf("10Base-T (RJ-45%s",				       ") has no cable\n"); }			/* check "ignore missing media" bit */			if (eth_auto_neg_cnf & IMM_BIT)				/* Yes! I don't care if I see a link pulse */				result = A_CNF_MEDIA_10B_T;			break;		case A_CNF_MEDIA_AUI:			result = detect_aui(nic);			if (!result) {				clrline();				printf("10Base-5 (AUI%s",				       ") has no cable\n"); }			/* check "ignore missing media" bit */			if (eth_auto_neg_cnf & IMM_BIT)				/* Yes! I don't care if I see a carrrier */				result = A_CNF_MEDIA_AUI;			break;		case A_CNF_MEDIA_10B_2:			result = detect_bnc(nic);			if (!result) {				clrline();				printf("10Base-2 (BNC%s",				       ") has no cable\n"); }			/* check "ignore missing media" bit */			if (eth_auto_neg_cnf & IMM_BIT)				/* Yes! I don't care if I can xmit a packet */				result = A_CNF_MEDIA_10B_2;			break;		case A_CNF_MEDIA_AUTO:			writereg(PP_LineCTL, eth_linectl | AUTO_AUI_10BASET);			if (eth_adapter_cnf & A_CNF_10B_T)				if ((result = detect_tp()) != 0)					break;			if (eth_adapter_cnf & A_CNF_AUI)				if ((result = detect_aui(nic)) != 0)					break;			if (eth_adapter_cnf & A_CNF_10B_2)				if ((result = detect_bnc(nic)) != 0)					break;			clrline(); printf("no media detected\n");			goto error;		}		clrline();		switch(result) {		case 0:                 printf("no network cable attached to configured media\n");			goto error;		case A_CNF_MEDIA_10B_T: printf("using 10Base-T (RJ-45)\n");			break;		case A_CNF_MEDIA_AUI:   printf("using 10Base-5 (AUI)\n");			break;		case A_CNF_MEDIA_10B_2: printf("using 10Base-2 (BNC)\n");			break;		}		/* Turn on both receive and transmit operations */		writereg(PP_LineCTL, readreg(PP_LineCTL) | SERIAL_RX_ON |			 SERIAL_TX_ON);		break;	}	if (ioaddr == 0)		return (0);	nic->reset = cs89x0_reset;	nic->poll = cs89x0_poll;	nic->transmit = cs89x0_transmit;	nic->disable = cs89x0_disable;	return (nic);}/* * Local variables: *  c-basic-offset: 8 * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国一区二区三区| 99视频精品全部免费在线| 国产精品护士白丝一区av| 欧亚一区二区三区| 国产宾馆实践打屁股91| 亚洲aaa精品| 国产精品欧美久久久久一区二区| 欧美日韩高清在线播放| 成熟亚洲日本毛茸茸凸凹| 天天综合网 天天综合色| 国产精品国产三级国产aⅴ中文 | 日韩欧美123| 欧美在线观看视频一区二区| 激情成人综合网| 香蕉av福利精品导航| 国产精品国产自产拍高清av| 精品国产乱子伦一区| 欧美在线观看禁18| 99久久精品情趣| 国产中文字幕一区| 麻豆精品久久精品色综合| 亚洲妇女屁股眼交7| 亚洲欧美在线观看| 国产精品丝袜在线| 国产欧美va欧美不卡在线| 欧美一级日韩免费不卡| 欧美色老头old∨ideo| 欧美日韩一区小说| 婷婷中文字幕综合| 久久精品国产77777蜜臀| 中文字幕在线不卡国产视频| 精品国产三级电影在线观看| 精品视频在线免费观看| 色美美综合视频| 91污片在线观看| 91网址在线看| 91国偷自产一区二区三区观看 | 国产成人精品一区二区三区四区| 热久久一区二区| 性欧美大战久久久久久久久| 亚洲一区二区三区四区在线免费观看 | 免费美女久久99| 老司机免费视频一区二区三区| 亚洲va国产天堂va久久en| 亚洲图片欧美视频| 日韩成人av影视| 美女爽到高潮91| 久久精品久久综合| 国产黄色成人av| 国产jizzjizz一区二区| 成人短视频下载| 91免费在线视频观看| 一本久道中文字幕精品亚洲嫩 | 久久久久久久久97黄色工厂| 欧美不卡视频一区| 久久蜜桃香蕉精品一区二区三区| 久久久国产综合精品女国产盗摄| 欧美激情艳妇裸体舞| 亚洲日穴在线视频| 午夜精品国产更新| 蜜桃精品在线观看| 国产成人免费视频网站| 91麻豆免费在线观看| 欧美天天综合网| 日韩无一区二区| 国产日本一区二区| 亚洲男人电影天堂| 视频一区视频二区中文| 久久99国产精品免费网站| 国产麻豆精品95视频| 91免费版pro下载短视频| 欧美日韩精品一区二区天天拍小说| 91精品黄色片免费大全| 国产婷婷色一区二区三区四区 | 日韩一卡二卡三卡| 久久网站热最新地址| 亚洲人成精品久久久久| 日韩影院免费视频| 国产aⅴ综合色| 欧美蜜桃一区二区三区| 久久精品一区二区三区av| 亚洲伦在线观看| 久久99精品久久久久婷婷| eeuss鲁一区二区三区| 7878成人国产在线观看| 国产精品久久久久国产精品日日| 午夜精品久久久| 国产91在线看| 5858s免费视频成人| 国产欧美1区2区3区| 日韩二区三区在线观看| 色综合网色综合| 日韩精品一区二区三区中文不卡| 综合久久久久久| 久久福利视频一区二区| 色8久久人人97超碰香蕉987| 欧美日韩一级黄| 国产精品毛片久久久久久| 一区二区三区四区亚洲| 九色porny丨国产精品| 欧美日韩精品欧美日韩精品| 久久美女高清视频| 色伊人久久综合中文字幕| 91在线视频免费观看| caoporn国产精品| 国产精品一区二区在线观看网站| 日韩一区二区精品| 国产在线视视频有精品| 欧美精品色一区二区三区| 亚洲激情校园春色| 久久久久免费观看| 91精品国产全国免费观看| 国产电影精品久久禁18| 欧美精品一区二区三区一线天视频| 日韩欧美久久久| 亚洲国产精华液网站w| 国产精品久久毛片| 国产91在线观看| 久久夜色精品国产欧美乱极品| 蜜桃传媒麻豆第一区在线观看| 成人18精品视频| 亚洲一区在线播放| 日韩欧美在线影院| 福利一区二区在线| 18欧美乱大交hd1984| 国产一区 二区 三区一级| 国产精品成人免费精品自在线观看 | 狠狠色丁香九九婷婷综合五月| 不卡一区二区三区四区| 国产亚洲美州欧州综合国| 国产成人高清在线| 久久久久久久久久久黄色| 国产91富婆露脸刺激对白| 亚洲一区二区三区国产| 91在线小视频| 麻豆专区一区二区三区四区五区| 欧美日韩高清一区二区不卡| 日日噜噜夜夜狠狠视频欧美人| 欧美一级搡bbbb搡bbbb| 精品一区在线看| 中文字幕va一区二区三区| 99久久久久久99| 爽好久久久欧美精品| 在线播放一区二区三区| 国产一区二区在线影院| 国产精品电影院| 欧美日韩国产免费| 日韩美女在线视频 | 午夜欧美电影在线观看| 国产婷婷色一区二区三区在线| 色综合视频在线观看| 狠狠色丁香婷综合久久| 国产一区二区三区精品视频| 久久99国产精品久久| 日日骚欧美日韩| 亚洲国产电影在线观看| 国产.精品.日韩.另类.中文.在线.播放| 久久久久久**毛片大全| www.视频一区| 一区二区三区四区av| 日韩一区二区三区av| 国产成人精品免费在线| 日韩美女久久久| 欧美日韩一区在线| 韩日av一区二区| 国产精品久久网站| 欧美三级中文字幕在线观看| 毛片av中文字幕一区二区| 中文字幕 久热精品 视频在线| 日本精品视频一区二区| 天天影视网天天综合色在线播放 | 97久久超碰国产精品电影| 亚洲国产人成综合网站| 日韩无一区二区| 99国产精品一区| 日本三级韩国三级欧美三级| 欧美激情一区二区三区| 欧美日韩亚州综合| 成人精品免费视频| 视频一区二区三区入口| 国产欧美综合在线| 欧美精品三级在线观看| 国产mv日韩mv欧美| 日本成人在线电影网| 国产精品嫩草99a| 在线成人免费视频| 99综合电影在线视频| 琪琪一区二区三区| 一区二区三区 在线观看视频 | 亚洲高清免费观看高清完整版在线观看| 精品国产伦理网| 欧美日韩小视频| 91猫先生在线| 国产69精品久久久久777| 丝袜国产日韩另类美女| 亚洲少妇30p| 国产三区在线成人av| 日韩视频永久免费| 欧美三区在线观看| 99re66热这里只有精品3直播|