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

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

?? syswindml.c

?? Kontron的ETX-P3T的BSP的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
        }    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_2, &barSave);    pDev->pPhysBaseAdrs2 = (void *) barSave;    pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_2, 0xffffffff);    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_2, &barRead);    if (barRead != 0)        {        pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_2, barSave);        if ((barRead & PCI_BASE_IO) != PCI_BAR_SPACE_IO)            {            barSave  &= PCI_MEMBASE_MASK;            barRead  &= PCI_MEMBASE_MASK;            if (sysMmuMapAdd ((void *) barSave, (1 << (ffsLsb (barRead) - 1)),                VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_IO) == ERROR)                {                retVal = ERROR;                goto WINDML_MAP_DEV_RETURN;                }            }        }    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_3, &barSave);    pDev->pPhysBaseAdrs3 = (void *) barSave;    pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_3, 0xffffffff);    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_3, &barRead);    if (barRead != 0)        {        pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_3, barSave);        if ((barRead & PCI_BASE_IO) != PCI_BAR_SPACE_IO)            {            barSave  &= PCI_MEMBASE_MASK;            barRead  &= PCI_MEMBASE_MASK;            if (sysMmuMapAdd ((void *) barSave, (1 << (ffsLsb (barRead) - 1)),                VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_IO) == ERROR)                {                retVal = ERROR;                goto WINDML_MAP_DEV_RETURN;                }            }        }    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_4, &barSave);    pDev->pPhysBaseAdrs4 = (void *) barSave;    pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_4, 0xffffffff);    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_4, &barRead);    if (barRead != 0)        {        pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_4, barSave);        if ((barRead & PCI_BASE_IO) != PCI_BAR_SPACE_IO)            {            barSave  &= PCI_MEMBASE_MASK;            barRead  &= PCI_MEMBASE_MASK;            if (sysMmuMapAdd ((void *) barSave, (1 << (ffsLsb (barRead) - 1)),                VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_IO) == ERROR)                {                retVal = ERROR;                goto WINDML_MAP_DEV_RETURN;                }            }        }    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_5, &barSave);    pDev->pPhysBaseAdrs5 = (void *) barSave;    pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_5, 0xffffffff);    pciConfigInLong  (bus, dev, func, PCI_CFG_BASE_ADDRESS_5, &barRead);    if (barRead != 0)        {        pciConfigOutLong (bus, dev, func, PCI_CFG_BASE_ADDRESS_5, barSave);        if ((barRead & PCI_BASE_IO) != PCI_BAR_SPACE_IO)            {            barSave  &= PCI_MEMBASE_MASK;            barRead  &= PCI_MEMBASE_MASK;            if (sysMmuMapAdd ((void *) barSave, (1 << (ffsLsb (barRead) - 1)),                VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_IO) == ERROR)                {                retVal = ERROR;                }            }        }WINDML_MAP_DEV_RETURN:    /* restore PCI device command word register */    pciConfigOutWord (bus, dev, func, PCI_CFG_COMMAND, cmdSave);    return retVal;    }/********************************************************************************* sysWindMlPciInit - initialize PCI display devices** This routine allocates and initializes WINDML_DEVICE descriptors for PCI* display and multimedia class devices.  The interface is constructed such* that this function can be invoked via pciConfigForeachFunc().** For each PCI device specified by the <bus>, <dev>, and <func> parameters,* this routine tests the 24-bit PCI class code value (class/subclass/prog_if).* If WindML supports the specified function, a WINDML_DEVICE descriptor will* be allocated and initialzed with the device attributes.  Memory regions of* the required location, size, and type will be mapped into the host* processor's address space for functions implementing memory decoders.** The <devType> field of a new WINDML_DEVICE descriptor will be set to* one of the following constants indicating the WindML device type:** \is* \i WINDML_GRAPHICS_DEVICE*        All PCI display controller class devices.** \i WINDML_AUDIO_DEVICE*        All PCI multimedia class and audio sub-class devices.* \ie** INTERNAL* This callback will terminate pciConfigForeachFunc() if it returns ERROR.* So, this routine returns OK always such that a failure to config one* device will not prevent attempts to initialize other devices.** This routine could be extended to create and configure WINDML_DEVICE* descriptors for mouse and keyboard input PCI device classes.** WindML supports an Epson display device which does not identify the* device function in the PCI class code register.  Specifically, the class* code register is set to 0xff which, according to the PCI spec, should be* used when the device does not fit any of the defined class codes.  These* special-case Epson display devices are identified by their PCI Device ID,* 0x1300, along with the Epson PCI Vendor ID.** In the case of PCI devices, the <instance> field in a WINDML_DEVICE* descriptor specifies the ordinal value of a particular kind of device, as* specified by PCI Vendor and device IDs, installed on the system.** RETURNS: OK always.** NOMANUAL*/LOCAL STATUS sysWindMlPciInit    (    UINT32     bus,              /* store a PCI bus number */    UINT32     dev,              /* store a PCI device number */    UINT32     func,             /* store a PCI function number */    void *     pArg              /* reserved argument */    )    {    UINT32     vendorId;         /* store a PCI vendor ID */    UINT32     deviceId;         /* store a PCI device ID */    UINT32     classCode;        /* store a PCI class code value */    UINT32     subClassCode;     /* store a PCI sub-class code value */    UINT32     devType = NONE;   /* store a WindML device type */    pciConfigInLong (bus, dev, func, PCI_CFG_VENDOR_ID, &vendorId);    deviceId = ((vendorId >> 16) & 0x0000ffff);    vendorId = (vendorId & 0x0000ffff);    pciConfigInLong (bus, dev, func, PCI_CFG_REVISION, &classCode);    subClassCode = (classCode >> 16) & 0x000000ff;    classCode    = (classCode >> 24);    if ((classCode == PCI_CLASS_DISPLAY_CTLR) ||        ((vendorId == VENDOR_PCI_EPSON) &&         (deviceId == DEVICE_ID_EPSON_13XXX)))        {        devType = WINDML_GRAPHICS_DEVICE;        }    else if ((classCode == PCI_CLASS_MMEDIA_DEVICE) &&             (subClassCode == PCI_SUBCLASS_MMEDIA_AUDIO))        {        devType = WINDML_AUDIO_DEVICE;        }    if ((devType == WINDML_GRAPHICS_DEVICE) || (devType == WINDML_AUDIO_DEVICE))        {        UINT8  intLine;       /* store a PCI interrupt line value */        /* allocate a WINDML_DEVICE descriptor for the device */        WINDML_DEVICE * const pDev = sysWindMlDescAlloc ();        if (pDev == NULL)            {            return OK;            }        /* initialize the new WINDML_DEVICE attributes */        bzero ((char *) pDev, sizeof (WINDML_DEVICE));        pDev->vendorID = vendorId;        pDev->deviceID = deviceId;        pDev->devType  = devType;        pDev->busType  = BUS_TYPE_PCI;        pciConfigInByte (bus, dev, func, PCI_CFG_DEV_INT_LINE, &intLine);        pDev->intLevel  = intLine;        pDev->intVector = (VOIDFUNCPTR *)(INUM_TO_IVEC (INT_NUM_GET (intLine)));        /* get base addresses and map into address space */        if (sysWindMlPciDevMap (pDev, bus, dev, func) == ERROR)            {            sysWindMlDescFree (pDev);            return OK;            }        /* initialized the device - move on to the next one */        if (devType == WINDML_GRAPHICS_DEVICE)            {            int i = 0;            int j = 0;            for (; i < pciDisplayDevNo; ++i)                {                if (((pciDisplayDevs[i])->vendorID == vendorId) &&                    ((pciDisplayDevs[i])->deviceID == deviceId))                    ++j;                }            pDev->instance = j;            pciDisplayDevs [pciDisplayDevNo++] = pDev;            }        else if (devType == WINDML_AUDIO_DEVICE)            {            int i = 0;            int j = 0;            for (;i < pciMmAudioDevNo; ++i)                {                if (((pciMmAudioDevs[i])->vendorID == vendorId) &&                    ((pciMmAudioDevs[i])->deviceID == deviceId))                    ++j;                }            pDev->instance = j;            pciMmAudioDevs [pciMmAudioDevNo++] = pDev;            }        return OK;        }    return OK;    }/********************************************************************************* sysWindMLHwInit - Initialize unique multimedia components** This routine initializes specific multimedia hardware devices that* are not normally initialized by the BSP.** RETURNS: OK or ERROR.*/STATUS sysWindMLHwInit ()    {#ifdef    SYS_WINDML_STATIC_MEM_POOL    bufPoolInit (&windMlBufPool, (char *) &windMlDevPool[0],                 WINDML_MAX_DEV, sizeof (WINDML_DEVICE));#endif /* SYS_WINDML_STATIC_MEM_POOL */    /* initialize PCI display controllers starting from Bus 0 */    pciConfigForeachFunc (0, TRUE, (PCI_FOREACH_FUNC) sysWindMlPciInit, NULL);    return (OK);    }#ifdef SYS_WINDML_PCI_SHOW/********************************************************************************* sysWindMlPciShow - show the contents of the PCI device table** This routine prints a formatted detail of the WindML PCI device table* contents to the standard output device.** RETURNS: N/A** NOMANUAL*/void sysWindMlPciShow (void)    {    WINDML_DEVICE const * pDev;    int i;    for (i = 0; i < pciDisplayDevNo; ++i)        {        pDev = pciDisplayDevs[i];        puts ("\n______________");        printf ("\nWINDML_GRAPHICS_DEVICE, instance %d\n", pDev->instance);        printf ("\nPCI Vendor ID 0x%x", pDev->vendorID);        printf ("\nPCI Device ID 0x%x", pDev->deviceID);        printf ("\n\nInterrupt level %u, vector %p\n",                pDev->intLevel, pDev->intVector);        printf ("\n PCI BAR 0 %p", pDev->pPhysBaseAdrs0);        printf ("\n PCI BAR 1 %p", pDev->pPhysBaseAdrs1);        printf ("\n PCI BAR 2 %p", pDev->pPhysBaseAdrs2);        printf ("\n PCI BAR 3 %p", pDev->pPhysBaseAdrs3);        printf ("\n PCI BAR 4 %p", pDev->pPhysBaseAdrs4);        printf ("\n PCI BAR 5 %p", pDev->pPhysBaseAdrs5);        }    for (i = 0; i < pciMmAudioDevNo; ++i)        {        pDev = pciMmAudioDevs[i];        puts ("\n______________");        printf ("\nWINDML_AUDIO_DEVICE, instance %d\n", pDev->instance);        printf ("\nPCI Vendor ID 0x%x", pDev->vendorID);        printf ("\nPCI Device ID 0x%x", pDev->deviceID);        printf ("\n\nInterrupt level %u, vector %p\n",                pDev->intLevel, pDev->intVector);        printf ("\n PCI BAR 0 %p", pDev->pPhysBaseAdrs0);        printf ("\n PCI BAR 1 %p", pDev->pPhysBaseAdrs1);        printf ("\n PCI BAR 2 %p", pDev->pPhysBaseAdrs2);        printf ("\n PCI BAR 3 %p", pDev->pPhysBaseAdrs3);        printf ("\n PCI BAR 4 %p", pDev->pPhysBaseAdrs4);        printf ("\n PCI BAR 5 %p", pDev->pPhysBaseAdrs5);        }    putchar ('\n');    }#endif  /* SYS_WINDML_PCI_SHOW */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合色综合色综合| 久久精品二区亚洲w码| 欧美伦理电影网| 色婷婷狠狠综合| 一本在线高清不卡dvd| 91免费看`日韩一区二区| www.爱久久.com| 97精品国产97久久久久久久久久久久| 国产99精品国产| 成人国产亚洲欧美成人综合网| 国产主播一区二区| 国产999精品久久| 91麻豆文化传媒在线观看| 成人h动漫精品一区二| 91麻豆福利精品推荐| 欧美午夜精品一区二区三区| 欧美视频一区二区三区在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 三级欧美韩日大片在线看| 香蕉久久夜色精品国产使用方法 | 日韩av一级片| 久久 天天综合| 成人污视频在线观看| 成人性生交大片免费看中文网站| 972aa.com艺术欧美| 欧美在线制服丝袜| 日韩精品一区在线| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲黄色小说网站| 久久黄色级2电影| av激情亚洲男人天堂| 欧美视频中文一区二区三区在线观看| 4438x成人网最大色成网站| 精品99久久久久久| 欧美国产成人在线| 亚洲va韩国va欧美va精品 | 国产精品你懂的| 亚洲一区二区三区中文字幕在线| 久久超碰97人人做人人爱| 菠萝蜜视频在线观看一区| 欧美一级二级三级蜜桃| 国产精品家庭影院| 蜜臀99久久精品久久久久久软件| 成人av在线播放网址| 91精品国产一区二区人妖| 中文字幕在线播放不卡一区| 麻豆91精品91久久久的内涵| 99久久99久久精品免费观看| 日韩免费在线观看| 亚洲一区二三区| 不卡的av中国片| 欧美成人一区二区三区片免费| 一区二区三区丝袜| 国产a精品视频| 精品国产伦一区二区三区观看方式 | 国产成人午夜片在线观看高清观看| 色婷婷国产精品| 欧美激情一区二区三区全黄| 免费在线观看成人| 欧美撒尿777hd撒尿| 国产精品久久久久久久浪潮网站| 日韩精品色哟哟| 91美女片黄在线观看91美女| 国产免费观看久久| 国内成人免费视频| 日韩一卡二卡三卡国产欧美| 亚洲夂夂婷婷色拍ww47| 色偷偷久久人人79超碰人人澡| 国产午夜精品一区二区三区四区 | 精品国产123| 秋霞电影网一区二区| 欧美最新大片在线看| 亚洲色图在线看| 不卡视频一二三四| 国产精品福利一区| 91亚洲男人天堂| 亚洲天天做日日做天天谢日日欢| 成人精品一区二区三区四区| 国产欧美精品在线观看| 国产揄拍国内精品对白| 久久久一区二区三区捆绑**| 美女www一区二区| 精品国产一区二区国模嫣然| 久久 天天综合| 久久久久久**毛片大全| 高清shemale亚洲人妖| 欧美激情一区二区三区四区| 99re66热这里只有精品3直播| 国产精品成人免费在线| 97精品国产97久久久久久久久久久久| 亚洲精品日日夜夜| 欧美日韩国产综合一区二区三区| 日本不卡视频在线| 精品国产乱码久久久久久1区2区| 国产在线视频不卡二| 日本一区二区三区电影| 一本一道久久a久久精品综合蜜臀| 亚洲一区二区三区四区的| 91精品国产丝袜白色高跟鞋| 国产精品一区二区久久不卡| 国产精品美女久久久久久久久 | 天天综合色天天| 久久亚洲欧美国产精品乐播| 粉嫩av亚洲一区二区图片| 亚洲日本欧美天堂| 欧美一二三四区在线| 丁香网亚洲国际| 亚洲国产一二三| 精品国产凹凸成av人网站| 成人午夜视频免费看| 亚洲国产成人av好男人在线观看| 日韩欧美你懂的| 99精品热视频| 麻豆免费精品视频| ...av二区三区久久精品| 欧美一区在线视频| av成人免费在线观看| 日本sm残虐另类| 中文字幕日韩精品一区 | 久久综合色8888| 色婷婷香蕉在线一区二区| 九色综合国产一区二区三区| 自拍偷拍国产精品| www久久精品| 在线国产亚洲欧美| 国产黑丝在线一区二区三区| 天天综合色天天| 中文字幕综合网| 中文字幕免费在线观看视频一区| 欧美精品免费视频| 日本韩国欧美国产| 国产成人av电影免费在线观看| 亚洲电影一级片| 亚洲伦理在线精品| 国产日本欧洲亚洲| 日韩精品一区二区三区蜜臀| 欧美日韩在线播放一区| 91麻豆免费看片| av电影一区二区| 成人激情av网| 成人a免费在线看| 成人午夜免费av| 成人性生交大片免费看视频在线 | 国产成人一区二区精品非洲| 美女在线观看视频一区二区| 亚洲va欧美va人人爽午夜| 一区二区三区日韩精品| 国产精品美女久久久久高潮| 久久久精品国产99久久精品芒果| 欧美一级在线免费| 在线电影院国产精品| 欧美高清精品3d| 欧美视频中文字幕| 欧美久久久久久久久| 欧美高清性hdvideosex| 51精品国自产在线| 欧美一级专区免费大片| 日韩免费在线观看| 精品日本一线二线三线不卡| 精品成人一区二区三区四区| 久久综合狠狠综合| 国产日韩欧美在线一区| 久久久噜噜噜久久中文字幕色伊伊| 欧美一区三区二区| 精品国产一区二区三区av性色| 久久综合久久鬼色| 欧美国产在线观看| 亚洲免费观看高清完整版在线观看熊 | 日韩电影免费在线| 日韩电影在线观看网站| 国产真实乱子伦精品视频| 国产精品综合二区| 不卡的av网站| 欧美撒尿777hd撒尿| 欧美va亚洲va在线观看蝴蝶网| 精品电影一区二区| 亚洲色大成网站www久久九九| 亚洲影视在线播放| 麻豆视频观看网址久久| gogo大胆日本视频一区| 欧美唯美清纯偷拍| 精品国产sm最大网站免费看| 中文字幕乱码久久午夜不卡 | 激情小说欧美图片| 成人小视频免费在线观看| 91国偷自产一区二区使用方法| 欧美日本一区二区在线观看| 精品欧美黑人一区二区三区| 国产精品成人在线观看| 日韩在线卡一卡二| 成人av电影在线播放| 欧美绝品在线观看成人午夜影视| 国产亚洲精品福利| 午夜天堂影视香蕉久久| 国产精品一区在线观看乱码| 欧洲人成人精品| 国产丝袜欧美中文另类| 婷婷成人综合网| 91亚洲精品久久久蜜桃网站| 日韩免费高清视频|