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

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

?? nicdriver.c

?? 3com 3c905網卡驅動硬件部分源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************************************************
*** Note: Copy rights resevered to Beijing Pacific Linkair Communications Co. 
***
*** File Name: NICDriver.c
*** Purpose  : Supply the NIC Driver Interface Routines
***
*** Author   : Guangzhao Tian
*** Modified : By Guangzhao Tian at 2000/9/7
***
**/

#include "pcilib.h" 

 /* #include "iv.h"      */

#include "memLib.h"
#include "semLib.h"
#include "cacheLib.h"

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

/**********Global variables***********************/

/*** this are the model global variable storeged those information of 
     NIC , which should be avaible in all fuction modules ***/
   NIC_INFORMATION  gNic_Information, 
	              * pNic_Information;

/************End of Global Variables section********/
void Drv_ShowBMInfo(IN PNIC_INFORMATION pAdapter) ;
BOOLEAN Drv_CacheMemTest(IN PNIC_INFORMATION pAdapter);
void Drv_VortexTxTest() ;/*IN PNIC_INFORMATION pAdapter); */
void Drv_IntTest();
/**************************************************************************
***Drv_Load -- Device Driver Load Module
***
   This is the driver entry , maybe called by sysHwInit() from BSP.

   When calling, the BSP should supply some parameters that driver 
	   cannot get itself, which the BSP can read from the Broad Hardware
	   by some means when boot up.
	   
   Those parameter include IoBaseAddr , and Intrruptor Number, they 
	   are shiped as pNIC_PCI_INFORMATION structure;
***/
NIC_STATUS  Drv_Load ( ) /*IN pNIC_PCI_INFORMATION pPCIInfoSys )   */
{ 
/*  int nNICIoBaseAddr ;
     INT nInterruptor;
     int nNICMemBaseAddr;

    nNICIoBaseAddr= getIoAddrOf3c905b();
    nInterruptor  = getIntNumOf3c905b();
    nNICMemBaseAddr = getMemAddrOf3c905b(); */

    pNic_Information = &gNic_Information;

    DebugMsg("\n\n Device Driver Module Loading ... \n\n");

    /*Get the PCI Parameters to Driver Module Globals    */
    if( ! PCI_CongfigInfoGet (pNic_Information ) )
      {
         DebugMsg("\n Failure to get PCI Parameters! Cannot continue. \n");
        return NIC_STATUS_FAILURE;
      }     

   /*        pNic_Information->IoBaseAddress   = nNICIoBaseAddr;
	   pNic_Information->InterruptVector = nInterruptor;
       pNic_Information->MemBaseAddress  = nNICMemBaseAddr; 
	   pNic_Information->PCIInfo.IoBaseAddress   = nNICIoBaseAddr;
       pNic_Information->PCIInfo.InterruptVector = nInterruptor;

 	   pNic_Information->IoBaseAddress   =0x00004000;  */

       pNic_Information->IoBaseAddress   = pNic_Information->PCIInfo.IoBaseAddress;
	   pNic_Information->InterruptVector = pNic_Information->PCIInfo.InterruptVector;
       pNic_Information->MemBaseAddress  = pNic_Information->PCIInfo.MemBaseAddress;

   /*  Stop the Device*/
     if( NIC_STATUS_FAILURE==NIC_DeviceStop( pNic_Information))
      {
        DebugMsg("Driver Load Failed ! \n");
        return NIC_STATUS_FAILURE;
      }  

    /* Reset the NIC Card.  */
     if( NIC_STATUS_FAILURE== NIC_DeviceReset(pNic_Information) )
      {
        DebugMsg("Driver Load Failed ! \n");
        return NIC_STATUS_FAILURE;
      } 

    /* Start the NIC Card  */
       if( NIC_STATUS_FAILURE== NIC_DeviceStart(pNic_Information) )
      {
        DebugMsg("Driver Load Failed ! \n");
        return NIC_STATUS_FAILURE;
      } 
 
    /* Read EEPROM Registers Value,fill into Global Controlling Information Block   */
     if( NIC_STATUS_FAILURE == NIC_EEPROMFillGlobal (pNic_Information) )
     {
         DebugMsg("Driver Load Failed ! \n");
         return NIC_STATUS_FAILURE;
     } 

    /*Set the Receive Mode */

    if( NIC_STATUS_FAILURE == NIC_RxModeSet(pNic_Information, RX_FILTER_PROMISCUOUS) )
    {
         DebugMsg("Driver Load Failed ! \n");
         return NIC_STATUS_FAILURE;
     }  

     /* Setup the media used 
    if( NIC_STATUS_FAILURE == NIC_MediaSetup(pNic_Information) )
    {
         DebugMsg("Driver Load Failed ! \n");
         return NIC_STATUS_FAILURE;
     }   
*/
     /*allocated shared memory in host mem space, and carve it out

    if( NIC_STATUS_FAILURE == Drv_MemSharedAlloc(pNic_Information) )
    {
         DebugMsg("Driver Load Failed ! \n");
         
         Drv_MemSharedFree(pNic_Information);

         return NIC_STATUS_FAILURE;
     }

     DebugMsg("Driver Load Succeed ! \n");
      
     DebugMsg("\n\nHit a number to exit ! \n ");
     scanf("%d",&x);

     Drv_MemSharedFree(pNic_Information);*/


    if( NIC_STATUS_FAILURE ==  Drv_InterruptHook(pNic_Information) )
    {
       DebugMsg("\n Hook Interrrupt Handler Failed  ! \n ");
    } 
 
  
   /*  Drv_LoopBackPacket( pNic_Information);
       Drv_CacheMemTest(pNic_Information);  
     Drv_VortexTxTest(); */

	Drv_IntTest();

    DebugMsg("\n************\n Driver Load Done ! \n");

     return NIC_STATUS_SUCCESS;
} 


void Drv_IntTest()
{
   int x,y= 0;
  
   	while(1)
	{
      DebugMsg("\n ***************\n This is the %d th times to test INT!\n************\n", ++y);
      DebugMsg(" Hit a Number:"); scanf("%d",&x);  DebugMsg(" \t\t\t x= %d \n", x);
       
      if(x==0) break;

      DebugMsg("  Try to stop download engine ! \n");
 	NIC_COMMAND_WAIT(pNic_Information, COMMAND_DOWN_STALL);

      DebugMsg("  Try to write to download register ! \n");
	NIC_WRITE_PORT_ULONG(pNic_Information->IoBaseAddress, DOWN_LIST_POINTER_REGISTER,(ULONG) 0x03ffff40 ); 

       DebugMsg("  Try to reStart download engine to tick the INT ! \n");  
	NIC_COMMAND(pNic_Information->IoBaseAddress, COMMAND_DOWN_UNSTALL);  
       DebugMsg("   download engine reStarted! \n"); 
	}
   
}

void Drv_ShowBMInfo(IN PNIC_INFORMATION pAdapter) 
{
   DebugMsg("\n*************\n");

   DebugMsg(" UpPacket Status Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,UP_PACKET_STATUS_REGISTER) ); 

    DebugMsg(" DMA Control Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,DMA_CONTROL_REGISTER) ); 

    DebugMsg(" Bus Master FragAddress Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,BUS_MASTER_FRAGMENT_ADDRESS) ); 

    DebugMsg(" Bus Master FragLength  Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,BUS_MASTER_FRAGMENT_LENGTH) ); 

	DebugMsg(" PCI Status Register Value : 0x%08X. \n",PCI_RegRead16(pAdapter,PCI_STATUS) ); 

	DebugMsg(" PCI Command Register Value : 0x%08X. \n",PCI_RegRead16(pAdapter,PCI_COMMAND) ); 

	DebugMsg(" Now the UPD List Pointer Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,UP_LIST_POINTER_REGISTER) ); 

    DebugMsg(" Now the DPD List Pointer Register Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,DOWN_LIST_POINTER_REGISTER) ); 

   /*   NIC_COMMAND( pAdapter->IoBaseAddress ,COMMAND_SELECT_REGISTER_WINDOW |REGISTER_WINDOW_7);

    DebugMsg(" BM_FRAGMENT_ADDRESS_WIN7 in Reg Win 7 Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,BM_FRAGMENT_ADDRESS_WIN7) ); 

    DebugMsg(" BM_FRAGMENT_LENGTH_WIN7 in Reg Win 7 Value : 0x%08X. \n",
                        NIC_READ_PORT_ULONG(pAdapter->IoBaseAddress,BM_FRAGMENT_LENGTH_WIN7) ); 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久毛片软件| 日本v片在线高清不卡在线观看| 久国产精品韩国三级视频| 欧美一区二区三区喷汁尤物| 激情久久五月天| 亚洲免费观看视频| 日韩精品一区二区三区四区视频 | 日韩 欧美一区二区三区| 久久久一区二区三区捆绑**| 欧美性欧美巨大黑白大战| 久久99精品国产91久久来源| 香蕉乱码成人久久天堂爱免费| 在线观看91视频| 99综合电影在线视频| 韩日av一区二区| 亚洲成年人影院| 亚洲日本va午夜在线影院| 精品国产第一区二区三区观看体验| www.亚洲激情.com| 国产中文一区二区三区| 久久69国产一区二区蜜臀 | 国产精品电影院| 国产色综合一区| 久久嫩草精品久久久久| 精品国产污污免费网站入口| 欧美久久久久免费| 91麻豆精品国产91久久久久久久久| 色94色欧美sute亚洲线路二| 欧亚洲嫩模精品一区三区| 在线亚洲免费视频| 欧美日韩一区不卡| 欧美一级黄色大片| 国产三级精品在线| 亚洲一级片在线观看| 青青草原综合久久大伊人精品优势 | 国产欧美精品一区aⅴ影院 | 日本精品视频一区二区| 91免费视频观看| 欧美日韩日本视频| 26uuu国产电影一区二区| 91精品国产入口| 久久理论电影网| 亚洲日本一区二区三区| 亚洲成人久久影院| 国精产品一区一区三区mba视频| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩一级二级三级精品视频| 国产色综合一区| 日日骚欧美日韩| 91麻豆视频网站| 欧美一区二区三区人| 亚洲少妇30p| 国产乱色国产精品免费视频| 欧美在线你懂得| 国产精品美女久久福利网站| 久久激情综合网| 91国产福利在线| 中文字幕欧美激情一区| 懂色av一区二区三区免费观看| 欧美日本在线观看| 国产精品卡一卡二| 国产黄色精品视频| 日韩亚洲欧美在线观看| 亚洲h动漫在线| 99国产精品久久久久久久久久| 精品国产一区二区在线观看| 日韩av一级电影| 欧美日韩高清一区二区三区| 一区二区成人在线视频| 欧美一级欧美三级| 亚洲欧美日韩国产中文在线| heyzo一本久久综合| 国产精品不卡在线| 99久久亚洲一区二区三区青草| 久久精品亚洲精品国产欧美| 国产传媒久久文化传媒| 久久久久国产精品厨房| 豆国产96在线|亚洲| 国产精品成人网| 色天天综合色天天久久| 亚洲v日本v欧美v久久精品| 日韩欧美国产一区二区三区| 久久精品国产久精国产| 中文字幕欧美激情| 欧美精品aⅴ在线视频| 美日韩一区二区| 亚洲三级在线免费| 精品久久五月天| 99精品欧美一区| 久久99精品久久久久婷婷| 国产精品第四页| 欧美精品一区二区三区在线| 91成人在线精品| 成熟亚洲日本毛茸茸凸凹| 蜜桃91丨九色丨蝌蚪91桃色| 国产欧美在线观看一区| 日韩亚洲欧美一区二区三区| 色综合久久天天| 成人激情免费视频| 国产在线精品视频| 日韩va亚洲va欧美va久久| 国产精品青草久久| 久久久久久免费网| 国产色婷婷亚洲99精品小说| 日韩一区二区电影| 日韩一区二区三区四区| 欧美美女视频在线观看| 在线播放日韩导航| 7777精品伊人久久久大香线蕉超级流畅| 国产一区 二区 三区一级| 蜜桃精品视频在线| 精品一区二区三区久久| 另类欧美日韩国产在线| 蜜桃av一区二区| 国产一区二区伦理| 国产高清不卡一区二区| 国产精品456露脸| 国产高清不卡二三区| 色综合天天视频在线观看| 在线观看免费一区| 欧美日本视频在线| 日韩欧美www| 国产精品不卡一区二区三区| 亚洲精品国产精华液| 亚洲18色成人| 岛国精品在线观看| 在线观看精品一区| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久久久久综合日本| 一区2区3区在线看| 久久国产精品免费| 欧美三电影在线| 精品国产三级电影在线观看| 亚洲乱码中文字幕| 精彩视频一区二区三区| 一本久道久久综合中文字幕| 日韩精品在线看片z| 一区二区三区日韩欧美精品 | 国产一区二区久久| 欧美色视频在线| 国产午夜精品一区二区| 亚洲一区av在线| 99久久er热在这里只有精品66| 91精品国产综合久久久久久久久久| 国产亚洲一本大道中文在线| 午夜成人在线视频| 欧美一区二区视频在线观看2022| 久久精品免费在线观看| 精品一区中文字幕| 欧美男人的天堂一二区| 中文字幕人成不卡一区| 成人免费黄色在线| 国产精品三级电影| 成人性色生活片| 日本一区二区三区在线观看| 美女视频黄 久久| 91精品国产色综合久久不卡电影| 亚洲国产一区视频| 欧美丝袜自拍制服另类| 天堂蜜桃91精品| 日韩一级欧美一级| 色8久久精品久久久久久蜜| 亚洲午夜免费电影| 26uuu亚洲综合色| 97精品电影院| 亚洲动漫第一页| 久久久久久免费| 97精品超碰一区二区三区| 亚洲一区国产视频| 日韩精品一区二区三区视频播放| 美女视频一区二区三区| 国产精品久久久99| 欧美一级日韩不卡播放免费| 成人黄色免费短视频| 日产精品久久久久久久性色| 久久久蜜桃精品| 欧美三级电影在线看| 成人97人人超碰人人99| 日韩中文字幕麻豆| 亚洲三级久久久| 欧美精品一区二区久久久| 在线视频亚洲一区| 成人免费视频国产在线观看| 午夜精品久久久久久久| 中文字幕一区二区视频| 欧美成人性福生活免费看| 欧美日韩免费不卡视频一区二区三区| 粉嫩欧美一区二区三区高清影视| 日韩精品福利网| 亚洲第一福利一区| 午夜影视日本亚洲欧洲精品| 国产精品情趣视频| 国产精品色噜噜| 国产欧美一区二区在线观看| 久久久久久久久久久电影| 国产日本欧美一区二区| 制服.丝袜.亚洲.中文.综合 | 欧美乱妇15p| 91精品国产综合久久婷婷香蕉 | 成人网男人的天堂|