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

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

?? sysel3c90xend.c

?? pentium4 pc的vxworks bsp源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************** sysEl3c90xEndLoad - construct a load string and load an el3c90xEnd device** This routine will be invoked by the MUX for the purpose of loading an* el3c90xEnd (elPci) 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 el3c90xEnd driver load string has format:**     <unit>:<devMemAddr>:<devIoAddr>:<pciMemBase>:<vecnum>:<intLvl>:*     <memAdrs>:<memSize>:<memWidth>:<flags>:<buffMultiplier>** RETURNS: An END object pointer, or NULL on error, or 0 and the name of the* device if the <pParamStr> was NULL.** SEE ALSO: el3c90xEndLoad()*/END_OBJ * sysEl3c90xEndLoad    (    char *    pParamStr,   /* pointer to initialization parameter string */    void *    unused       /* unused optional argument */    )    {    END_OBJ * pEnd;    char      paramStr [END_INIT_STR_MAX];    static const char * const paramTemplate =         "%d:0x%x:0x%x:0x%x:%d:%d:-1:-1:-1:0x%x:0x%x:%p";    /* point to 3c90x board resource table */    PCI_BOARD_RESOURCE * const pRsrc = elPciResources;    if (strlen (pParamStr) == 0)        {        /* PASS (1)         * The driver load routine returns the driver name in <pParamStr>.         */        pEnd = el3c90xEndLoad (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 sysEl3c90xPciInit().  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.         */        int    typeIdx;   /* index to the string resource table */        char * holder  = NULL;        int    endUnit = atoi (strtok_r (pParamStr, ":", &holder));        /* is there a PCI resource associated with this END unit ? */        if (endUnit >= etherLinkUnits)            {            return NULL;            }        /* construct an index into the string resource table */        typeIdx = (pRsrc[endUnit].boardType);        /* finish off the initialization parameter string */        sprintf (paramStr, paramTemplate,                 endUnit,                   /* END unit number */                 pRsrc[endUnit].bar[1],     /* memory-mapped IO base */                 pRsrc[endUnit].bar[0],     /* IO address space base */                 PCI2DRAM_BASE_ADRS,        /* host PCI mem. base */                 pRsrc[endUnit].irqvec,     /* IRQ vector */                 pRsrc[endUnit].irq,        /* IRQ number */                 EL_3C90X_END_FLAGS,        /* flags for type */                 EL_3C90X_BUFF_MTPLR,       /* buff alloc factor */                 &elDescription[typeIdx]    /* device description */                );        if ((pEnd = el3c90xEndLoad (paramStr)) == (END_OBJ *) NULL)            {            printf ("Error el3c90xEndLoad:  failed to load driver.\n");            }        }    return (pEnd);    }/********************************************************************************* sys3comDevToType - convert PCI Vendor and Device IDs to a device type** Given <vendorId>, <deviceId>, and <revisionId> values read from PCI Vendor* and Device ID registers in PCI configuration space, this routine will* attempt to map the IDs to an 3c90x device type value defined in this file.** RETURNS:* A board type value which will be one of** .IP* TYPE_BOOMERANG_10BT* .IP* TYPE_BOOMERANG_10BT_COMBO* .IP* TYPE_BOOMERANG_10_100BT* .IP* TYPE_BOOMERANG_100BT4* .IP* TYPE_CYCLONE_10BT* .IP* TYPE_CYCLONE_10BT_COMBO* .IP* TYPE_CYCLONE_10_100BT* .IP* TYPE_CYCLONE_10_100BT4* .IP* TYPE_CYCLONE_10_100FX* .IP* TYPE_CYCLONE_10_100BT_SERV* .IP* TYPE_CYCLONE_10FL* .IP* TYPE_CYCLONE_10_100_COMBO* .IP* TYPE_KRAKATOA_10BT_TPC* .IP* TYPE_TORNADO_10_100BT* .IP* TYPE_TORNADO_10_100BT_SERV* .IP* TYPE_TORNADO_HOMECONNECT* .IP* TYPE_HURRICANE_SOHO100TX* .LP** BOARD_TYPE_UNKNOWN will be returned if the Device ID does not map to* a supported board type.** NOMANUAL*/LOCAL UINT32 sys3comDevToType    (    UINT32 vendorId,    /* specifies a PCI Vendor ID value */    UINT32 deviceId,    /* specifies a PCI Device ID value */    UINT8  revisionId   /* specifies a PCI Revision ID values */    )    {    /* At the moment, we are only supporting vendor 3Com */    if (vendorId == THREECOM_PCI_VENDOR_ID)        {        switch (deviceId)            {            case TC_DEVICEID_BOOMERANG_10BT:                return TYPE_BOOMERANG_10BT;            case TC_DEVICEID_BOOMERANG_10BT_COMBO:                return TYPE_BOOMERANG_10BT_COMBO;            case TC_DEVICEID_BOOMERANG_10_100BT:                return TYPE_BOOMERANG_10_100BT;            case TC_DEVICEID_BOOMERANG_100BT4:                return TYPE_BOOMERANG_100BT4;            case TC_DEVICEID_CYCLONE_10BT:                return TYPE_CYCLONE_10BT;            case TC_DEVICEID_CYCLONE_10BT_COMBO:                return TYPE_CYCLONE_10BT_COMBO;            case TC_DEVICEID_CYCLONE_10_100BT:                return TYPE_CYCLONE_10_100BT;            case TC_DEVICEID_CYCLONE_10_100BT4:                return TYPE_CYCLONE_10_100BT4;            case TC_DEVICEID_CYCLONE_10_100FX:                return TYPE_CYCLONE_10_100FX;            case TC_DEVICEID_CYCLONE_10_100BT_SERV:                return TYPE_CYCLONE_10_100BT_SERV;            case TC_DEVICEID_CYCLONE_10FL:                return TYPE_CYCLONE_10FL;            case TC_DEVICEID_CYCLONE_10_100_COMBO:                return TYPE_CYCLONE_10_100_COMBO;            case TC_DEVICEID_KRAKATOA_10BT_TPC:                return TYPE_KRAKATOA_10BT_TPC;            case TC_DEVICEID_TORNADO_10_100BT:                return TYPE_TORNADO_10_100BT;            case TC_DEVICEID_TORNADO_10_100BT_SERV:                return TYPE_TORNADO_10_100BT_SERV;            case TC_DEVICEID_TORNADO_HOMECONNECT:                return TYPE_TORNADO_HOMECONNECT;            case TC_DEVICEID_HURRICANE_SOHO100TX:                return TYPE_HURRICANE_SOHO100TX;            default:                break;            }        }    return (BOARD_TYPE_UNKNOWN);    }/********************************************************************************* sys3comMmioGet - get a 3Com EtherLink memory mapped IO decoder value** This routine gets the memory mapped IO decoder, if any, for a 3Com* EtherLink or Fast EtherLink PCI network controller specified by PCI* bus, device, and function numbers.  Many of the WRS supported PCI* ethernet devices support both memory mapped IO and IO address space* decoders.  This assumption cannot be made in the case of supported* 3Com EtherLink PCI devices.  If a memory mapped IO decoder is* implemented, assume it is in BAR 1.** RETURNS: The 32-bit memory decoder value read from BAR 1, else NONE.** NOMANUAL*/LOCAL UINT32 sys3comMmioGet    (    UINT32  pciBus,         /* store a PCI bus number */    UINT32  pciDevice,      /* store a PCI device number */    UINT32  pciFunc         /* store a PCI function number */    )    {    UINT16  cmdSave;        /* saves 16-bit PCI command word register */    UINT32  barSave;        /* saves 32-bit PCI base address register 1 */    UINT32  barRead;        /* memory decoder (if any) read from BAR 1 */    UINT32  retVal = NONE;  /* assume the BAR is not implemented */    /* disable PCI device memory decode */    pciConfigInWord (pciBus, pciDevice, pciFunc,                     PCI_CFG_COMMAND, &cmdSave);    pciConfigOutWord (pciBus, pciDevice, pciFunc,                      PCI_CFG_COMMAND, (cmdSave & (~PCI_CMD_MEM_ENABLE)));    /* save the BAR and determine whether it specifies a memory decoder */    pciConfigInLong (pciBus, pciDevice, pciFunc,                     PCI_CFG_BASE_ADDRESS_1, &barSave);    pciConfigOutLong (pciBus, pciDevice, pciFunc,                      PCI_CFG_BASE_ADDRESS_1, 0xffffffff);    pciConfigInLong (pciBus, pciDevice, pciFunc,                     PCI_CFG_BASE_ADDRESS_1, &barRead);    /* this BAR specifies a memory decoder? */    if (barRead != 0)        {        retVal = barSave;        pciConfigOutLong (pciBus, pciDevice, pciFunc,                          PCI_CFG_BASE_ADDRESS_1, barSave);        }    /* re-enable PCI device memory decode */    pciConfigOutWord (pciBus, pciDevice, pciFunc,                      PCI_CFG_COMMAND, cmdSave);    return (retVal);    }#endif /* INCLUDE_EL_3C90X_END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av一区二区在线影视| 精品久久久久久久久久久久包黑料| 蜜臀av一区二区在线免费观看| 亚洲激情网站免费观看| 亚洲天堂a在线| 中文字幕综合网| 亚洲激情在线播放| 亚洲国产va精品久久久不卡综合 | 午夜欧美电影在线观看| 亚洲女与黑人做爰| 亚洲大片精品永久免费| 亚洲大片精品永久免费| 日本亚洲欧美天堂免费| 久久激情五月婷婷| av在线综合网| 在线视频国内自拍亚洲视频| 欧美体内she精高潮| 欧美一级日韩免费不卡| 欧美成人欧美edvon| 国产欧美在线观看一区| 亚洲欧美激情在线| 天天综合天天做天天综合| 久久99久久99小草精品免视看| 国产福利一区二区三区视频在线| 97aⅴ精品视频一二三区| 欧美三级乱人伦电影| 欧美成人艳星乳罩| 18成人在线视频| 天天影视涩香欲综合网| 久久99国产精品尤物| 国产馆精品极品| 国产一区美女在线| 不卡视频一二三四| 欧美天天综合网| 日韩免费看的电影| 国产精品久久夜| 亚洲成av人片在线观看无码| 国产一区二区视频在线播放| 91影院在线观看| 日韩免费视频线观看| 亚洲精品视频在线观看免费| 蜜臀av国产精品久久久久| 北条麻妃一区二区三区| 欧美一区二区在线视频| 国产精品不卡在线| 看电影不卡的网站| 色综合久久99| 欧美国产精品一区二区| 日本美女一区二区三区视频| 亚洲视频中文字幕| 91在线视频18| 欧美一区二区三区免费观看视频| 欧美r级在线观看| 亚洲精选视频在线| 国产成人精品免费| 91精品国产欧美一区二区18 | 婷婷六月综合亚洲| aa级大片欧美| 久久精品男人天堂av| 麻豆91精品视频| 欧美日韩一二区| 国产精品久久久久久久久久久免费看 | 国产精品一区一区三区| 欧美日韩高清在线播放| 国产精品妹子av| 国产一区二区三区av电影| 7777精品伊人久久久大香线蕉最新版| 亚洲国产成人在线| 国产一区二区精品久久91| 91麻豆精品国产自产在线| 亚洲男帅同性gay1069| 成人一区二区三区视频| 国产欧美精品一区二区色综合 | 国产精品久久久久四虎| 久久av资源站| 精品国产乱码久久久久久图片 | 亚洲成人av福利| 欧美视频中文字幕| 夜夜嗨av一区二区三区网页| 91麻豆高清视频| 亚洲一区二区三区四区的| 99re这里只有精品首页| 亚洲天堂久久久久久久| voyeur盗摄精品| 亚洲欧美日韩国产一区二区三区| 91在线视频播放| 亚洲成人手机在线| 欧美一区二区三区视频免费| 看电视剧不卡顿的网站| 久久免费的精品国产v∧| 国产成人夜色高潮福利影视| 亚洲国产激情av| jvid福利写真一区二区三区| 亚洲欧美日韩在线| 欧美日韩aaa| 国内精品在线播放| 欧美激情中文字幕一区二区| 成人h动漫精品| 一区二区三区四区视频精品免费| 精品视频在线免费观看| 热久久免费视频| 国产视频一区二区在线观看| 99精品视频一区| 日日夜夜精品视频免费| 久久久噜噜噜久久人人看| 成人三级在线视频| 亚洲电影在线播放| 欧美不卡一二三| 99久久婷婷国产综合精品| 亚洲福利视频三区| 欧美国产精品v| 欧美日韩精品福利| 国产激情一区二区三区| 午夜久久久久久久久| 久久久久综合网| 欧美伦理电影网| 粉嫩一区二区三区性色av| 亚洲亚洲精品在线观看| 国产丝袜在线精品| 欧美一区二区三区在线观看 | 日本精品一区二区三区四区的功能| 天天影视网天天综合色在线播放| 日本一区二区视频在线| 欧美一区二区三级| 色婷婷综合久色| 精品在线视频一区| 肉色丝袜一区二区| 亚洲综合一二三区| 国产精品第五页| 久久亚洲免费视频| 欧美一区二区三区四区高清| 欧美最猛性xxxxx直播| 国产不卡一区视频| 精品一区二区在线视频| 午夜精品久久久久影视| 亚洲免费在线观看| 国产欧美日韩在线| 日韩精品一区二区三区中文精品| 欧美三级三级三级爽爽爽| 91一区二区三区在线观看| 国产精品一线二线三线| 另类小说一区二区三区| 亚洲国产精品一区二区www| 亚洲桃色在线一区| 中文无字幕一区二区三区| 2022国产精品视频| 欧美一区二区性放荡片| 91黄色免费网站| 色呦呦国产精品| 91免费视频网| 91在线视频观看| 99精品欧美一区二区三区小说| 国产激情精品久久久第一区二区| 五月天精品一区二区三区| 亚洲国产精品久久人人爱蜜臀| 亚洲精品美国一| 一区二区三区免费看视频| 一区二区三区小说| 亚洲高清视频在线| 手机精品视频在线观看| 爽好久久久欧美精品| 免费欧美在线视频| 久久99久久精品| 国产精品综合网| 成人小视频免费观看| 99这里只有久久精品视频| 91网站最新地址| 91福利资源站| 8x8x8国产精品| 日韩美女在线视频| 国产亚洲午夜高清国产拍精品| 日本一区二区不卡视频| 国产欧美日本一区视频| 亚洲视频一区二区免费在线观看| 亚洲四区在线观看| 午夜视频久久久久久| 久久黄色级2电影| av资源网一区| 欧美日韩一区二区不卡| 精品久久一区二区三区| 国产亚洲欧美日韩俺去了| 亚洲日本乱码在线观看| 丝袜美腿亚洲一区二区图片| 韩国欧美国产一区| 91麻豆免费在线观看| 91精品国产综合久久国产大片 | 99久久精品免费看| 欧美日韩精品一区二区三区四区| 日韩一卡二卡三卡| 国产精品久久久久婷婷 | 精品国产乱码久久久久久1区2区 | 欧美美女激情18p| 久久久一区二区| 亚洲福利视频一区| 成人高清免费观看| 91精品综合久久久久久| 中文字幕亚洲电影| 日本不卡123| 91国产视频在线观看| 国产欧美1区2区3区|