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

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

?? sysgei82543end.c

?? vxworks嵌入式開發(fā)vmware bsp包 其中已包括網(wǎng)卡的驅(qū)動(dòng) 本人試過 非常好用
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
     *     * BAR2: if BAR0[2:1] == 01b, optional flash memory base     *       if BAR0[2:1] == 00b, behaves as BAR-1 when BAR-0 is     *                            a 32-bit value     */    pciConfigInLong  (pciBus, pciDevice, pciFunc,                      PCI_CFG_BASE_ADDRESS_0, &memBaseLo);    pReso->adr64 = ((memBaseLo & BAR0_64_BIT) == BAR0_64_BIT)                   ? TRUE : FALSE;    if (pReso->adr64)        {        pciConfigInLong  (pciBus, pciDevice, pciFunc,                          PCI_CFG_BASE_ADDRESS_1, &memBaseHi);        pciConfigInLong  (pciBus, pciDevice, pciFunc,                          PCI_CFG_BASE_ADDRESS_2, &flashBase);        }    else        {        memBaseHi = 0x0;        pciConfigInLong  (pciBus, pciDevice, pciFunc,                          PCI_CFG_BASE_ADDRESS_1, &flashBase);        }    memBaseLo &= PCI_MEMBASE_MASK;    flashBase &= PCI_MEMBASE_MASK;    /* map the memory-mapped IO (CSR) space into host CPU address space */    if (sysMmuMapAdd ((void *)(PCI_MEMIO2LOCAL(memBaseLo)), GEI_MEMSIZE_CSR,        VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_PCI) == ERROR)        {        return (ERROR);        }    /* get the device's interrupt line (IRQ) number */    pciConfigInByte (pciBus, pciDevice, pciFunc,                     PCI_CFG_DEV_INT_LINE, &irq);    /* update the board-specific resource tables */    pReso->memBaseLow  = memBaseLo;    pReso->memBaseHigh = memBaseHi;    pReso->flashBase   = flashBase;    geiPciResources[geiUnits].irq        = irq;    geiPciResources[geiUnits].irqvec     = INT_NUM_GET (irq);    geiPciResources[geiUnits].vendorID   = vendorId;    geiPciResources[geiUnits].deviceID   = deviceId;    geiPciResources[geiUnits].revisionID = revisionId;    geiPciResources[geiUnits].boardType  = boardType;   /* the following support legacy interfaces and data structures */    geiPciResources[geiUnits].pciBus     = pciBus;    geiPciResources[geiUnits].pciDevice  = pciDevice;    geiPciResources[geiUnits].pciFunc    = pciFunc;    /* enable mapped memory and IO decoders */    pciConfigOutWord (pciBus, pciDevice, pciFunc, PCI_CFG_COMMAND,                      PCI_CMD_MEM_ENABLE | PCI_CMD_IO_ENABLE |                      PCI_CMD_MASTER_ENABLE);    /* disable sleep mode */    pciConfigOutByte (pciBus, pciDevice, pciFunc, PCI_CFG_MODE,                      SLEEP_MODE_DIS);    ++geiUnits;  /* increment number of units initialized */    return (OK);    }/******************************************************************************** sysGei8254xEndLoad - create load string and load a gei driver.** This routine will be invoked by the MUX for the purpose of loading an* gei82543End (gei) device with initial parameters.  This routine is* constructed as an interface wrapper for the driver load routine.  Thus,* the arguments and return values are consistent with any xxxEndLoad()* routine defined for an END driver and the MUX API.** INTERNAL* The muxDevLoad() operation calls this routine twice.  A zero length* <pParamStr> parameter string indicates that this is the first time* through this routine.  The driver load routine should return the* driver name in <pParamStr>.** On the second pass though this routine, the initialization parameter* string is constructed.  Note that on the second pass, the <pParamStr>* consists of a colon-delimeted END device unit number and rudimentary* initialization string (often empty) constructed from entries in the* BSP END Device Table such that:**     <pParamStr> = "<unit>:<default initialization string>"** In the process of building the rest of <pParamStr>, the prepended unit* number must be preserved and passed to the driver load routine.  The* <default initialization string> portion mentioned above is discarded,* but future versions of this routine may use it.** The complete gei82543End driver load string has format:**     <unit>:<shMemBase>:<shMemSize>:<rxDesNum>:<txDesNum>:<usrFlags>:*     <offset>:<mtu>** RETURNS: An END object pointer, or NULL on error, or 0 and the name of the* device if the <pParamStr> was NULL.** SEE ALSO: gei82543EndLoad()*/END_OBJ * sysGei8254xEndLoad    (    char *    pParamStr,   /* ptr to initialization parameter string */    void *    unused       /* unused optional argument */    )    {    END_OBJ * pEnd;    char      paramStr [END_INIT_STR_MAX];    if (strlen (pParamStr) == 0)        {        /* PASS (1)         * The driver load routine returns the driver name in <pParamStr>.         */        pEnd = gei82543EndLoad (pParamStr);        }    else        {        /* PASS (2)         * The END <unit> number is prepended to <pParamStr>.  Construct         * the rest of the driver load string based on physical devices         * discovered in sys543PciInit().  When this routine is called         * to process a particular END <unit> number, use the END <unit> as         * an index into the PCI "resources" table to build the driver         * parameter string.         */        GEI_RESOURCE *  pReso;        char * holder = NULL;        int    unit   = atoi (strtok_r (pParamStr, ":", &holder));        /* is there a PCI resource associated with this END unit ? */        if (unit >= geiUnits)            {            return NULL;            }        pReso = (GEI_RESOURCE *)(geiPciResources[unit].pExtended);        /* finish off the initialization parameter string */        sprintf (paramStr,"%d:0x%x:0x%x:0x%x:0x%x:0x%x:%d:%d",                 unit,                          /* END unit number */                 pReso->shMemBase,              /* share memory base */                 pReso->shMemSize,              /* share memory size */                 pReso->rxDesNum,               /* RX Descriptor Number*/                 pReso->txDesNum,               /* TX Descriptor Number*/                 pReso->usrFlags,               /* user's flags */                 GEI_OFFSET_VALUE,              /* offset value */                 GEI_JUMBO_MTU_VALUE            /* mtu value */                );        if ((pEnd = gei82543EndLoad (paramStr)) == (END_OBJ *)NULL)            {            printf ("ERROR: sysGei8254xEndLoad fails to load gei %d\n", unit);            }        }    return (pEnd);    }/******************************************************************************* sys82543BoardInit - Adaptor initialization for 8254x chip** This routine is expected to perform any adapter-specific or target-specific* initialization that must be done prior to initializing the 8254x chip.** The 82543 driver calls this routine from the driver load routine before* any other routines.** RETURNS: OK or ERROR*/STATUS sys82543BoardInit    (    int            unit,      /* unit number */    ADAPTOR_INFO * pBoard     /* board information for the GEI driver */    )    {    PCI_BOARD_RESOURCE * pRsrc;    GEI_RESOURCE *       pReso;    BOOL                 lanB = FALSE;    /* sanity check */    if (unit >= geiUnits)        return (ERROR);    pRsrc = &geiPciResources[unit];    pReso = (GEI_RESOURCE *)(pRsrc->pExtended);    if (pRsrc->boardType != PRO1000_543_BOARD &&         pRsrc->boardType != PRO1000_544_BOARD &&        pRsrc->boardType != PRO1000_546_BOARD)          return ERROR;            if (pRsrc->boardType == PRO1000_546_BOARD)        {        UINT32 eecd;        UINT16 devId;                if (!((eecd = GEI_SYS_READ_REG(unit, INTEL_82543GC_EECD)) & EECD_PRES_BIT))            {            printf ("ERROR: gei unit %d eeprom not presented\n", unit);            return ERROR;            }        pReso->eepromSize = (eecd & EECD_SIZE_BIT)? 256 : 64;        /* detect if this is one of 82546EB dual ports */               pciConfigInWord (pRsrc->pciBus, pRsrc->pciDevice, pRsrc->pciFunc,                          PCI_CFG_DEVICE_ID, &devId);                if (devId == PRO1000_546_PCI_DEVICE_ID_XT ||            devId == PRO1000_546_PCI_DEVICE_ID_MF) 	    {                    UINT8 headerType;            pciConfigInByte (pRsrc->pciBus, pRsrc->pciDevice, pRsrc->pciFunc,                             PCI_CFG_HEADER_TYPE, &headerType);            if (headerType == 0x80)  	        lanB = (pRsrc->pciFunc == 1)? TRUE : FALSE;            else if (pRsrc->pciFunc != 0) 	        {                printf ("Error in detecting 82546 dual port: header type =%2d,                          pci func=%2d\n", (UINT32)headerType, (UINT32)(pRsrc->pciFunc)); 	        }            }        }    /* perform EEPROM checksum */    if (sys543eepromCheckSum (unit) != OK)        {        printf ("ERROR: gei unit=%d, EEPROM checksum error!\n", unit);        }    /* get the Ethernet Address from eeprom */    if (sys543EtherAdrGet (unit) == OK)        {        if (pRsrc->boardType == PRO1000_546_BOARD && lanB == TRUE)           {           int   ix;	   /* update LANB address */           for (ix = 5; ix >= 0; ix--)	        {		if (pReso->enetAddr[ix] != 0xff)		    {                    pReso->enetAddr[ix]++;                    break;                    }                else                    pReso->enetAddr[ix] = 0;                }           }        }    else         printf ("ERROR: gei unit=%d, Invalid Ethernet Address!\n", unit);     /* get the initialization control word 1 (ICW1) in EEPROM */    pReso->eeprom_icw1 = sys543eepromReadWord (unit, EEPROM_ICW1);    /* get the initialization control word 2 (ICW2) in EEPROM */    pReso->eeprom_icw2 = sys543eepromReadWord (unit, EEPROM_ICW2);    /* initializes the board information structure */    pBoard->boardType   = pRsrc->boardType;    pBoard->vector      = INT_NUM_GET((pRsrc->irq));    pBoard->regBaseHigh = pReso->memBaseHigh;    pBoard->regBaseLow  = PCI_MEMIO2LOCAL(pReso->memBaseLow);    pBoard->flashBase   = PCI_MEMIO2LOCAL(pReso->flashBase);    pBoard->adr64       = pReso->adr64;    pBoard->intEnable   = sys543IntEnable;    pBoard->intDisable  = sys543IntDisable;    pBoard->intAck      = sys543IntAck;      /* Intel Copper-based adapter is based on GMII interface */        pBoard->phyType     = GEI_PHY_GMII_TYPE;      if (pBoard->boardType == PRO1000_544_BOARD &&                              geiResources[unit].useShortCable)           {        miiPhyOptFuncSet ((FUNCPTR)sys544PhyPreInit);        }    pBoard->phySpecInit = sys543PhySpecRegsInit;    /* BSP specific       * delayFunc is BSP specific. We prefer a higher time resolution delay      * delayUnit is the time of ns elapsed when calling delayFunc ().     */    pBoard->delayFunc     = (FUNCPTR) sysDelay;    pBoard->delayUnit     = 720; /* In x86, sysDelay() takes about 720ns */    /* BSP specific     * phyDelayRtn is used as a delay function for PHY detection, if not set,     * taskDelay will be used.     */    pBoard->phyDelayRtn = (FUNCPTR) taskDelay;    pBoard->phyMaxDelay = MII_PHY_DEF_DELAY;    pBoard->phyDelayParm = 5;     /* BSP/adapter specific     * set the PHY address if you know it, otherwise set to zero     * INTEL 82540/4/5/6-based adapters have a built-in phy with Addr of 1      */    pBoard->phyAddr = (pRsrc->boardType == PRO1000_544_BOARD ||                        pRsrc->boardType == PRO1000_546_BOARD)? 1 : 0;          /* BSP/adapter specific (for 82540/82545/82546 only)     * allow users set up the device's internal timer based on their     * application. sysGeiInitTimerSet() is called when the device     * starts; sysGeiDynaTimerSet() is called every 2s in tNetTask if     * GEI_END_SET_TIMER is set.      */    if (pRsrc->boardType == PRO1000_546_BOARD)        {        pBoard->sysGeiDynaTimerSetup = sysGei82546DynaTimerSetup;        pBoard->sysGeiInitTimerSetup = sysGei82546InitTimerSetup;         }    else        {        pBoard->sysGeiDynaTimerSetup   = NULL;         /* default */        pBoard->sysGeiInitTimerSetup   = NULL;         /* default */        }    /* BSP specific      * call back functions perform system physcial memory mapping in the PCI      * address space. sysLocalToBus converts a system physical memory address      * into the pci address space. sysBusToLocal converts a pci address which 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
春色校园综合激情亚洲| 人妖欧美一区二区| 久久久.com| 精品久久免费看| 欧美不卡一区二区三区四区| 欧美高清激情brazzers| 精品视频一区 二区 三区| 色999日韩国产欧美一区二区| 91在线精品一区二区三区| 99久久精品国产观看| 91久久人澡人人添人人爽欧美| 91美女蜜桃在线| 欧美丝袜丝交足nylons| 欧美性色黄大片手机版| 777奇米四色成人影色区| 日韩欧美一区二区久久婷婷| xfplay精品久久| 国产精品全国免费观看高清| 中文字幕五月欧美| 亚洲一区二区精品3399| 日韩电影在线免费观看| 国产成人精品aa毛片| 91无套直看片红桃| 欧美高清视频www夜色资源网| 精品久久久久久最新网址| 欧美—级在线免费片| 亚洲精品成人悠悠色影视| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品亚洲第一| 成人精品视频.| 欧美性猛交xxxx黑人交| 555www色欧美视频| 日本一区二区三区视频视频| 一区二区三区免费观看| 激情综合色综合久久综合| va亚洲va日韩不卡在线观看| 在线电影欧美成精品| 久久精品欧美日韩| 亚洲一区二区三区四区五区中文| 蜜桃久久久久久| 成人免费毛片高清视频| 欧美日韩国产一级| 欧美高清一级片在线观看| 亚洲国产一区视频| 成人黄色片在线观看| 欧美偷拍一区二区| 国产精品拍天天在线| 免费人成网站在线观看欧美高清| 成人av影视在线观看| 欧美电影免费提供在线观看| 亚洲天天做日日做天天谢日日欢| 久久成人免费网| 欧美自拍偷拍午夜视频| 中文字幕一区二区三中文字幕| 日韩va欧美va亚洲va久久| 成人aaaa免费全部观看| 久久这里只精品最新地址| 日韩精品一二三区| 91日韩一区二区三区| 中文字幕久久午夜不卡| 狠狠色狠狠色综合系列| 在线综合亚洲欧美在线视频| 一区二区三区国产| 99久久精品免费看| 国产精品免费免费| 国产精品影视在线观看| 欧美一区二区成人6969| 午夜精品久久久久久久99水蜜桃| 99国产精品久久久久| 欧美国产精品中文字幕| 国产真实乱偷精品视频免| 欧美mv和日韩mv的网站| 奇米在线7777在线精品| 欧美一区二区三区影视| 亚洲色图欧美在线| 色综合色综合色综合色综合色综合 | 免费在线看一区| 欧美精品日韩一本| 午夜精品久久久久久久蜜桃app| 欧美午夜影院一区| 午夜精品视频一区| 欧美一级欧美三级| 老司机午夜精品99久久| 精品动漫一区二区三区在线观看| 六月丁香婷婷久久| 欧美va亚洲va国产综合| 精品一区二区久久| 国产亚洲精品资源在线26u| 国产一区在线不卡| 国产欧美一区二区精品久导航 | 国产剧情一区二区三区| 精品久久久久久久人人人人传媒 | 日韩视频国产视频| 韩国av一区二区三区四区| 欧美国产成人精品| 91久久精品国产91性色tv| 亚洲成人tv网| 精品久久免费看| 99精品在线免费| 丝袜脚交一区二区| 国产偷国产偷亚洲高清人白洁| 国产电影精品久久禁18| 亚洲黄色性网站| 欧美电影免费提供在线观看| 国产乱对白刺激视频不卡| **网站欧美大片在线观看| 欧美视频一区在线观看| 久久精品国产99久久6| 国产精品久久看| 在线成人午夜影院| 粉嫩高潮美女一区二区三区| 亚洲一区二区欧美| 国产色爱av资源综合区| 欧美日韩高清一区二区三区| 国产高清无密码一区二区三区| 亚洲日本青草视频在线怡红院| 欧美精品免费视频| 99久久婷婷国产综合精品电影 | 日韩精品在线一区二区| 东方欧美亚洲色图在线| 亚洲va中文字幕| 中文字幕精品综合| 日韩一区二区视频| 91麻豆精东视频| 国产在线看一区| 一区二区三区在线观看国产| 国产亚洲欧美日韩日本| 日韩一区二区在线看片| 日本电影欧美片| 成人精品一区二区三区中文字幕| 日本v片在线高清不卡在线观看| 日韩码欧中文字| 久久婷婷色综合| 日韩欧美成人午夜| 欧美日韩在线免费视频| 91在线porny国产在线看| 精品在线亚洲视频| 免费在线观看成人| 亚洲成精国产精品女| 亚洲一区二区三区视频在线播放| 中文字幕一区二区三区在线观看| 久久精品人人爽人人爽| 欧美一级精品大片| 3d动漫精品啪啪一区二区竹菊| 欧美天天综合网| 日本韩国一区二区三区视频| a美女胸又www黄视频久久| 成人综合婷婷国产精品久久蜜臀 | 欧美精品18+| 欧美日韩一级黄| 在线观看www91| 在线观看国产精品网站| 在线欧美日韩精品| 91麻豆.com| 色婷婷亚洲一区二区三区| 99久久精品免费看国产 | 亚洲免费在线视频一区 二区| 国产精品每日更新在线播放网址| 国产精品国产馆在线真实露脸| www激情久久| 久久久噜噜噜久噜久久综合| 精品久久国产字幕高潮| 日韩免费高清视频| 久久久久国产一区二区三区四区 | 91麻豆成人久久精品二区三区| 99久久国产综合色|国产精品| 91污在线观看| 欧美日韩精品专区| 欧美一级生活片| 26uuu亚洲| 国产精品久久看| 亚洲成人免费av| 精品综合免费视频观看| 国产成人午夜电影网| caoporn国产精品| 欧美日韩成人一区| 国产亚洲综合在线| 自拍偷拍亚洲激情| 免费在线观看一区| 不卡视频在线看| 69精品人人人人| 久久影院午夜片一区| 亚洲精品国产一区二区精华液| 婷婷久久综合九色综合绿巨人| 狠狠色狠狠色合久久伊人| 成人av免费在线| 国产精品88888| 91精品国产色综合久久不卡蜜臀| 日韩精品一区二区三区蜜臀| 国产校园另类小说区| 亚洲一区在线免费观看| 精品无码三级在线观看视频| 色综合天天天天做夜夜夜夜做| 欧美成人精品二区三区99精品| 国产精品你懂的在线欣赏| 亚洲二区在线观看| 成人综合婷婷国产精品久久蜜臀| 欧美人xxxx| 亚洲啪啪综合av一区二区三区| 美国毛片一区二区|