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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nicmedia.c

?? 3com 3c905網(wǎng)卡驅(qū)動(dòng)硬件部分源碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*******************************************************************************
*** Note: Copy rights resevered to Beijing Pacific Linkair Communications Co. 
***
*** File Name: NICMedia.c
*** Purpose  : Setup the Media 
***
*** Author   : Guangzhao Tian
*** Modified : By Guangzhao Tian at 2000/9/11
***
**/

#include "NICMacro.h"
#include "NICWinReg.h"
#include "NICCommand.h"
#include "NICEeprom.h"
#include "NICData.h"
#include "NICHelper.h"
#include "NICMii.h"
#include "NICExport.h"

/****************************************************************************************
*** This routine checks whether autoselection is specified. 
*** If it does, it calls MainAutoSelectionRoutine ,
***	else, for non-autoselect case, calls ProgramMII.
**/
NIC_STATUS NIC_MediaSetup(IN PNIC_INFORMATION pAdapter )
{
	USHORT wOptionAvailable = 0;

	ULONG InternalConfig = 0;
	ULONG InternalConfigNew=0;
	ULONG InternalConfig0 = 0;
	ULONG InternalConfig1 = 0;

	NIC_STATUS nicStatus;

	USHORT MacControl = 0;
	BOOLEAN Handles100Mbit = FALSE;

	DebugMsg("\n******************\nNow We will Setup the Media... \n");
	
	pAdapter->LinkInfo.ConfigConnector = CONNECTOR_UNKNOWN;
	pAdapter->LinkInfo.Connector = CONNECTOR_UNKNOWN;
	pAdapter->LinkInfo.AutoSelect = FALSE;
    pAdapter->LinkInfo.FullDuplexEnable=FALSE;
    pAdapter->LinkInfo.FullDuplexEnable=FALSE;

    pAdapter->LinkInfo.FlowControlSupported=TRUE;
    
	/* Read the MEDIA OPTIONS to see what connectors are available */
 	NIC_COMMAND ( pAdapter->IoBaseAddress , COMMAND_SELECT_REGISTER_WINDOW | REGISTER_WINDOW_3);
	wOptionAvailable = NIC_READ_PORT_USHORT( pAdapter->IoBaseAddress , MEDIA_OPTIONS_REGISTER );
      pAdapter->LinkInfo.MediaOptions=wOptionAvailable;

	/* Read the internal config through EEPROM since reset invalidates the normal register value. */
 	 if ( NIC_STATUS_SUCCESS != NIC_EEPROMRead (pAdapter,EEPROM_INTERNAL_CONFIG_WORD_0,
		                                           (PUSHORT)&InternalConfig0 ) )
		{   return NIC_STATUS_FAILURE;  }

	if ( NIC_STATUS_SUCCESS !=  NIC_EEPROMRead(pAdapter, EEPROM_INTERNAL_CONFIG_WORD_1,
		                                           (PUSHORT)&InternalConfig1) )
		{   return NIC_STATUS_FAILURE; 	}

	InternalConfig = InternalConfig0 | (InternalConfig1 <<16);   

	/* Read the current value of the InternalConfig register. If it's different
	    from the EEPROM values, than write it out using the EEPROM values.
	   This is done since a global reset may invalidate the register value on
	   some ASICs. Also, writing to InternalConfig may reset the PHY on some ASICs. */

	NIC_COMMAND(pAdapter->IoBaseAddress ,COMMAND_SELECT_REGISTER_WINDOW | REGISTER_WINDOW_3);
	InternalConfigNew = NIC_READ_PORT_ULONG( pAdapter->IoBaseAddress,INTERNAL_CONFIG_REGISTER );

	if (InternalConfig != InternalConfigNew)
	{
		NIC_WRITE_PORT_ULONG(pAdapter->IoBaseAddress ,INTERNAL_CONFIG_REGISTER,InternalConfig);
	}
	
	pAdapter->LinkInfo.ConfigConnector =(InternalConfig & INTERNAL_CONFIG_TRANSCEIVER_MASK) >> 20;

 	/*  Now try to decied the Link Info Params, first Get the connector to use.
	if (pAdapter->LinkInfo.ConfigConnector == CONNECTOR_UNKNOWN) */
	{
		pAdapter->LinkInfo.Connector = pAdapter->LinkInfo.ConfigConnector;
    	if (InternalConfig & INTERNAL_CONFIG_AUTO_SELECT)	pAdapter->LinkInfo.AutoSelect = TRUE;
	} 

	/* If auto selection of connector was specified, do it now... */
 	if (pAdapter->LinkInfo.AutoSelect)
	{
	    DebugMsg(" Set the Adapter media in Auto Select Mode ... \n");
 		NIC_COMMAND(pAdapter->IoBaseAddress, COMMAND_STATISTICS_DISABLE);      
		NIC_MediaAutoSelect(pAdapter, wOptionAvailable);
	    DebugMsg(" Auto Select Mode Setting Done ! \n");
	}
    
	else 
	{
	    /* MII connector needs to be initialized and the data rates
	       set up even in the non-autoselect case */
	    DebugMsg(" Set the Adapter media in forced-mode ... \n");
	
		if ( (pAdapter->LinkInfo.Connector ==  CONNECTOR_MII             ) ||
		     (pAdapter->LinkInfo.Connector ==  CONNECTOR_AUTONEGOTIATION ) ) 
		{
			NIC_MediaProgramMII(pAdapter, CONNECTOR_MII);
		}
		else 
		{			
			if ( (pAdapter->LinkInfo.Connector ==  CONNECTOR_100BASEFX) ||
			     (pAdapter->LinkInfo.Connector == CONNECTOR_100BASETX ) )
			{		    
				pAdapter->LinkInfo.LinkSpeed = LINK_SPEED_100;			
			}
			else 
			{			
				pAdapter->LinkInfo.LinkSpeed = LINK_SPEED_10;			
			}
		}	
	    
         /*Set up the Internal Config Register using the Connector Value 
                       gotten from Internal Config Register*/
	   NIC_MediaSetupConnector(pAdapter, pAdapter->LinkInfo.Connector);

	   DebugMsg(" Forced Mode Setting Done ! \n");
	} 
	
	/* Check link speed and duplex settings before doing anything else.
	  If the call succeeds, we know the link is up, so we'll update the link state. */
	 DebugMsg("  Link Speed Get ...");
	if ( NIC_MIILinkSpeedGet(pAdapter, &Handles100Mbit) ) 
	{
		pAdapter->LinkInfo.LinkSpeed = 	(Handles100Mbit) ? LINK_SPEED_100 : LINK_SPEED_10;
		pAdapter->LinkInfo.LinkState = LINK_UP;
	}
	else 
		pAdapter->LinkInfo.LinkState = LINK_DOWN_AT_INIT;
	  DebugMsg(" Done ! \n");
      
	/* Set up duplex mode */
      DebugMsg(" Setup Duplex Mode ...");
 	NIC_COMMAND( pAdapter, COMMAND_SELECT_REGISTER_WINDOW | REGISTER_WINDOW_3);

	MacControl = NIC_READ_PORT_USHORT(pAdapter, MAC_CONTROL_REGISTER);
    	
	if (pAdapter->LinkInfo.FullDuplexEnable) 
	{
		/* Set Full duplex in MacControl register */							
		MacControl |= MAC_CONTROL_FULL_DUPLEX_ENABLE;                      
		DebugMsg("  Changed link to full duplex. \n");

		/* Since we're switching to full duplex, enable flow control.*/
		if (pAdapter->LinkInfo.FlowControlSupported)
		{
			MacControl |=  MAC_CONTROL_FLOW_CONTROL_ENABLE;	
			pAdapter->LinkInfo.FlowControlEnable = TRUE;
		}
	}
	else 
	{
		/* Set Half duplex in MacControl register */
		MacControl &= ~MAC_CONTROL_FULL_DUPLEX_ENABLE;                            
		DebugMsg(" Change link to half duplex ! \n");		

		/* Since we're switching to half duplex, disable flow control */
		if (pAdapter->LinkInfo.FlowControlSupported)
		{		
			MacControl &= ~ MAC_CONTROL_FLOW_CONTROL_ENABLE;
			pAdapter->LinkInfo.FlowControlEnable = FALSE;                   
		}         
	}

	NIC_WRITE_PORT_USHORT(pAdapter,MAC_CONTROL_REGISTER,MacControl);
 	  DebugMsg(" Done ! \n");
     
    if (NIC_TxResetAndEnable(pAdapter) != NIC_STATUS_SUCCESS)
    { 
	   	 DebugMsg(" Error: cannot Reset and Enable Tx after setup the media ! \n");
         return NIC_STATUS_FAILURE;
	}

	if (NIC_RxResetAndEnable(pAdapter) != NIC_STATUS_SUCCESS)
    {
	   	 DebugMsg(" Error: cannot Reset and Enable Rx after setup the media ! \n");
		 return NIC_STATUS_FAILURE;
	}
    
 /*This is for advertisement of flow control.  We only need to  call this if the adapter 
	      is using flow control, in Autoselect mode and not a Tornado board. 
    
	if ( ( pAdapter->Hardware.AutoSelect &&  pAdapter->LinkInfo.FlowControlEnable) &&
	     (pAdapter->Hardware.DeviceId != NIC_PCI_DEVICE_ID_9200) &&
	     (pAdapter->Hardware.DeviceId != NIC_PCI_DEVICE_ID_9805)) 
	{		
		tc90x_FlowControl(pAdapter);
	} */
    	
    DebugMsg("Media setup-- Done! \n********************************\n");

	return NIC_STATUS_SUCCESS;
}

/***********************************************************************************
****  If autoselection is set, determine the connector and link speed
***     by trying the various transceiver types.
**/
NIC_STATUS NIC_MediaAutoSelect(IN PNIC_INFORMATION pAdapter,IN USHORT Options)
{
	USHORT index;

	pAdapter->LinkInfo.Connector = CONNECTOR_UNKNOWN;  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区五区| 亚洲制服欧美中文字幕中文字幕| 91精品国产综合久久精品app| 91久久免费观看| 91麻豆福利精品推荐| 91蜜桃视频在线| 91首页免费视频| 色噜噜狠狠成人中文综合| 96av麻豆蜜桃一区二区| 91电影在线观看| 欧美日韩日本视频| 制服丝袜亚洲色图| 日韩欧美综合在线| 亚洲精品一区二区三区精华液| 久久中文字幕电影| 欧美高清一级片在线观看| 综合久久久久久| 亚洲国产va精品久久久不卡综合 | 亚洲欧美激情在线| 洋洋av久久久久久久一区| 日韩一区欧美二区| 久久激五月天综合精品| 国产成人免费视频一区| 色呦呦国产精品| 777色狠狠一区二区三区| www国产成人免费观看视频 深夜成人网| 国产亚洲欧美中文| 久久精品免费在线观看| 91在线视频播放| 欧美色爱综合网| 欧美电影免费观看完整版| 国产亚洲精品中文字幕| 亚洲欧美日韩国产中文在线| 丝袜美腿成人在线| 国产精品99久久不卡二区| 色网综合在线观看| 91精品国产一区二区三区| 国产色产综合产在线视频| 亚洲精品免费看| 麻豆精品新av中文字幕| 岛国av在线一区| 欧美色倩网站大全免费| 2欧美一区二区三区在线观看视频| 国产精品久久久久aaaa| 肉丝袜脚交视频一区二区| 国产91丝袜在线观看| 欧美天堂一区二区三区| 国产日产欧美一区| 日韩电影在线一区二区| 成人av在线播放网站| 8x8x8国产精品| 国产精品剧情在线亚洲| 蜜臀av国产精品久久久久| 99久久国产综合精品女不卡 | 亚洲国产成人精品视频| 国产精品一区一区三区| 欧美视频一区二区三区在线观看 | 亚洲3atv精品一区二区三区| 国产一区二区按摩在线观看| 欧美日韩久久久| 国产精品免费人成网站| 日日夜夜一区二区| 97se亚洲国产综合在线| 久久综合久久99| 亚洲国产成人高清精品| 成人精品gif动图一区| 欧美videos中文字幕| 亚洲自拍都市欧美小说| 成人黄色软件下载| 精品国产乱码久久久久久老虎| 一区二区国产视频| gogo大胆日本视频一区| 精品国产亚洲在线| 偷拍日韩校园综合在线| 99精品久久只有精品| 久久精品欧美一区二区三区不卡| 麻豆精品视频在线观看视频| 欧美日韩一区国产| 一区二区三区四区五区视频在线观看 | 1024亚洲合集| 成人免费视频国产在线观看| www精品美女久久久tv| 日韩福利视频导航| 欧美日韩亚洲不卡| 亚洲女人小视频在线观看| 国产91精品一区二区麻豆网站| 欧美电影免费观看高清完整版| 五月天激情小说综合| 色94色欧美sute亚洲线路二| 亚洲少妇中出一区| 9i在线看片成人免费| 欧美韩国日本综合| 成人免费看黄yyy456| 国产清纯白嫩初高生在线观看91 | 色偷偷88欧美精品久久久| 国产精品天天看| 成人综合激情网| 国产精品美日韩| 国产a级毛片一区| 国产日韩欧美在线一区| 国产精品中文字幕日韩精品| 精品sm在线观看| 国产综合色在线| 国产亚洲自拍一区| 国产69精品一区二区亚洲孕妇| 久久婷婷一区二区三区| 国产精品亚洲第一| 国产精品第一页第二页第三页| 成人的网站免费观看| 亚洲欧洲日韩在线| 91麻豆福利精品推荐| 一区二区三区国产豹纹内裤在线| 91福利在线导航| 天天影视涩香欲综合网| 91精品国产综合久久久蜜臀图片 | 成人免费视频免费观看| 自拍偷拍国产亚洲| 欧美性猛片xxxx免费看久爱| 亚洲成在人线免费| 日韩一级片在线观看| 国产精品1区2区3区在线观看| 国产精品三级在线观看| 91黄色免费看| 日韩av在线播放中文字幕| 欧美不卡一二三| 成人午夜精品在线| 一区二区三区在线影院| 69久久99精品久久久久婷婷| 韩国av一区二区三区| 中文字幕一区二区不卡| 欧美少妇性性性| 久草热8精品视频在线观看| 国产日韩欧美高清在线| 在线观看欧美黄色| 美国毛片一区二区| 国产精品久久久久影院老司| 欧美中文字幕久久| 看片的网站亚洲| 日韩一区欧美一区| 欧美精品黑人性xxxx| 国产精品一区一区三区| 一区二区在线观看免费| 日韩精品中文字幕一区| 不卡欧美aaaaa| 日韩电影在线一区| 国产精品免费视频观看| 91麻豆精品国产91久久久使用方法| 国产一区二区视频在线| 亚洲精品成a人| 久久久久久久久久久久久久久99 | 国产91色综合久久免费分享| 亚洲成在人线在线播放| 国产清纯在线一区二区www| 欧美视频一区二区三区四区| 国产黄色精品视频| 亚洲va国产天堂va久久en| 中文字幕精品一区二区三区精品| 欧美日韩一区二区欧美激情| 高清成人免费视频| 日韩电影免费在线看| 亚洲欧洲成人av每日更新| 欧美一区三区二区| 91网站在线观看视频| 精品一区二区三区av| 亚洲午夜日本在线观看| 国产精品久久三| 26uuu亚洲综合色| 在线不卡免费欧美| 99re8在线精品视频免费播放| 精品一区二区三区视频| 亚洲第一电影网| 亚洲色图.com| 日本一区二区动态图| 日韩女优av电影| 欧美日韩一区二区在线视频| 99久久免费视频.com| 精品午夜一区二区三区在线观看| 午夜精品爽啪视频| 成人免费一区二区三区在线观看| 欧美精品一区二区精品网| 欧美三日本三级三级在线播放| 99久久免费精品高清特色大片| 国产乱人伦偷精品视频免下载| 日韩黄色片在线观看| 亚洲最色的网站| 亚洲欧美日本在线| 中文字幕一区二区三区精华液| 久久亚洲二区三区| 精品国产a毛片| 欧美一级黄色录像| 欧美二区乱c少妇| 欧美日韩一卡二卡三卡| 91国产福利在线| 欧美在线观看视频一区二区三区| 91丨九色丨尤物| 色综合av在线| 色噜噜狠狠成人网p站| 色88888久久久久久影院按摩| av毛片久久久久**hd| 99热精品一区二区|