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

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

?? syswindml.c

?? Kontron的ETX-P3T的BSP的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* sysWindML.c - WindML BSP specific routines  *//* Copyright 2002 Wind River Systems, Inc. *//*modification history--------------------01f,29may02,pai  Added special-case device discovery for Epson display                 devices.  All memory BARs are now mapped as uncacheable.                 Corrected use of <instance> variables in sysWindMLDevGet()                 and sysWindMlPciInit().01e,17may02,pai  Add PCI device discovery and initialization routines.01d,02nov01,pai  Removed const pointers in API for backward compatibility.                 Removed the #include of copyright_wrs, as this file picks                 up that defintion by virtue of inclusion in sysLib.01c,04oct01,pai  Replaced pciConfigInByte() PCI_CFG_DEV_INT_PIN parameter with                 PCI_CFG_DEV_INT_LINE.  Removed CPU_FAMILY conditional                 compilation block.  Funtion name typo corrected.                 Removed const pointers in API for backward compatibility.01b,29aug01,jlb  added base address 5 and 6, and pci membase to devCtrl01a,23may01,jlb  written*//*DESCRIPTIONThis library provides board-specific routines to support WindML.  This API is designed in a general fashion, such that it is applicable to allprocessor types and is bus independent.  It provides the support equally forgraphics devices that are integral to a processor (such as with the PPC823) and graphics devices that are present on a PCI bus.The API provides support for configurations where a system has multiplegraphics devices and input devices.A data structure allocated within the BSP provides information describing the graphics, input (keyboard and pointer), and audio devices.  A serial pointerthat connects to a standard serial port (such as, /tyCo/0) is not covered bythis API.  Those devices use the standard serial drivers.The data structure to define the graphics device is as follows:\cs typedef struct windml_device     {     UINT32        vendorID,        /@ PCI vendor ID @/     UINT32        deviceID,        /@ PCI device ID @/     UINT32        instance,        /@ device instance @/     UINT32        devType,         /@ WindML device type @/     UINT32        busType;         /@ bus type @/     UINT32        regDelta;        /@ distance between adjacent registers @/     UINT32        intLevel;        /@ device interrupt level @/     VOIDFUNCPTR * intVector;       /@ device interrupt vector @/     void *        pPhysBaseAdrs0;  /@ PCI base address 0 @/     void *        pPhysBaseAdrs1;  /@ PCI base address 1 @/     void *        pPhysBaseAdrs2;  /@ PCI base address 2 @/     void *        pPhysBaseAdrs3;  /@ PCI base address 3 @/     void *        pPhysBaseAdrs4;  /@ PCI base address 4 @/     void *        pPhysBaseAdrs5;  /@ PCI base address 5 @/     void *        pRegBase;        /@ register space base address @/     } WINDML_DEVICE;\ceThe <vendorID> and the <deviceID> are based upon the PCI bus identifiers.  Inthis case, these identifiers are extended to include the mapping for non-PCIdevices.  The file sysWindML.h provides the identifier for supported vendorand device identifiers. The above structure provides space for up to four memory segments that areused to access the device (for example, one segment for the frame bufferand another for the memory mapped registers).  Typically, a device will only have a single memory segment.  The size field identifies the numberof bytes present within the memory segment.The <pRegBase> field identifies the base address to use to access theI/O ports.  This is typically the base of the ISA space.  For X86 typeprocessors, this field would be set to 0.  For powerPC processors, thisfield would be set according to the memory model used (PRep or CHRP).INCLUDE FILES: sysWindML.h*//* includes */#include <vxWorks.h>#include <memPartLib.h>#include <ugl/sysWindML.h>#include <drv/pci/pciConfigLib.h>#include "config.h"/* defines */#define FRAME_BUFF_ADDR_VGA  ((void *)(0xa0000))  /* default VGA frame buffer */#define WINDML_MAX_DEV       (32)/* local configuration options */#undef  SYS_WINDML_PCI_SHOW#define SYS_WINDML_STATIC_MEM_POOL#ifdef    SYS_WINDML_STATIC_MEM_POOL#include <bufLib.h>LOCAL BUF_POOL        windMlBufPool;LOCAL WINDML_DEVICE   windMlDevPool  [WINDML_MAX_DEV];#endif /* SYS_WINDML_STATIC_MEM_POOL *//* locals *//* store handles to allocated WINDML_DEVICE PCI device instances */LOCAL WINDML_DEVICE * pciDisplayDevs [WINDML_MAX_DEV];LOCAL WINDML_DEVICE * pciMmAudioDevs [WINDML_MAX_DEV];/* specifies the number of allocated WINDML_DEVICE PCI device instances */LOCAL int pciDisplayDevNo = 0;LOCAL int pciMmAudioDevNo = 0;/* imports */IMPORT STATUS sysMmuMapAdd (void *, UINT, UINT, UINT);IMPORT int    ffsLsb (UINT32);/* forward declarations */LOCAL STATUS sysWindMlPciDevMap (WINDML_DEVICE *, UINT32, UINT32, UINT32);LOCAL STATUS sysWindMlPciInit (UINT32, UINT32, UINT32, void *);/********************************************************************************* sysWindMlDescAlloc - allocate a WINDML_DEVICE descriptor** This routine allocates a WINDML_DEVICE descriptor from a memory pool for* use by the system.** INTERNAL* This interface facilitates changing the underlying implementation to suit* system requirements.  The current implementation uses a simple static pool* of WINDML_DEVICE descriptors.  This makes it safe to use from sysHwInit().* However, future versions may require allocation out of the system memory* partition (kernel heap in AE) or a dedicated non-system memory partition.** RETURNS: A pointer to the allocated descriptor, or a null pointer if* there is an error.** NOMANUAL*/__inline__ static WINDML_DEVICE * sysWindMlDescAlloc (void)    {#ifdef SYS_WINDML_STATIC_MEM_POOL    return (WINDML_DEVICE *) bufAlloc (&windMlBufPool);#else    return (WINDML_DEVICE *) KHEAP_ALLOC (sizeof (WINDML_DEVICE));#endif /* SYS_WINDML_STATIC_MEM_POOL */    }/********************************************************************************* sysWindMlDescFree - free a WINDML_DEVICE descriptor** This routine releases a previously allocated WINDML_DEVICE descriptor* back to the memory pool from which it was allocated via a call to* sysWindMlDescAlloc().** INTERNAL* This interface facilitates changing the underlying implementation to suit* system requirements.  The current implementation uses a simple static pool* of WINDML_DEVICE descriptors.  This makes it safe to use from sysHwInit().* However, future versions may require allocation out of the system memory* partition (kernel heap in AE) or a dedicated non-system memory partition.** RETURNS: N/A** NOMANUAL*/__inline__ static void sysWindMlDescFree    (    WINDML_DEVICE * pWindMlDev    /* pointer to the descriptor to free */    )    {#ifdef SYS_WINDML_STATIC_MEM_POOL    bufFree (&windMlBufPool, (char *) pWindMlDev);#else    KHEAP_FREE ((char *) pWindMlDev);#endif /* SYS_WINDML_STATIC_MEM_POOL */    }/********************************************************************************* sysWindMLDevGet - configures the device** This routine will determine the presence of a specified WindML <devType>* device and perform any device configuration required.  The behavior of* this function varies depending on the type of device configuration (such* as a PCI device, integral, device controller, etc.).  A device* configuration data structure of type WINDML_DEVICE is created for the* specified device.  This configuration data defines, among other things,* the access mechanism for the device.    ** The <vendorID> and <deviceID> identify the vendor and device identifiers* in the PCI environment.  In the case of non-PCI type devices, these* identifiers provide identifiers of the device outside of the range of PCI* identifiers.  If these values are set to zero, then the <instance>* occurrence of a <devType> device will be returned.* * The returned data structure provides miscellaneous data items that* describe the manner in which to access the device.  ** RETURNS:* The address of a WINDML_DEVICE descriptor, else NULL when a device* configuration cannot be obtained.*/WINDML_DEVICE * sysWindMLDevGet     (    UINT32     devType,     /* WindML device type */    UINT32     instance,    /* instance of WindML device type */    UINT32     vendorID,    /* the PCI Vendor ID for the device */    UINT32     deviceID     /* the PCI Device ID for the device */    )    {    LOCAL BOOL vgaCreated = FALSE;    WINDML_DEVICE * pDev  = NULL;    switch (devType)        {        case WINDML_GRAPHICS_DEVICE:            {            if ((vendorID == 0) && (deviceID == 0))                {                /* If there are no PCI display class devices, create one                 * VGA device (i80X86/PentiumX processor families only).                 */                if (pciDisplayDevNo == 0)                    {                    if ((vgaCreated == FALSE) &&                        ((pDev = sysWindMlDescAlloc ()) != NULL))                        {                        bzero ((char *) pDev, sizeof (WINDML_DEVICE));                         pDev->vendorID       = VENDOR_GENERIC_VGA;                        pDev->deviceID       = DEVICE_VGA;                        pDev->instance       = instance;                        pDev->devType        = devType;                        pDev->pPhysBaseAdrs0 = FRAME_BUFF_ADDR_VGA;                        pDev->regDelta       = 0;                        pDev->intLevel       = 0;                        pDev->intVector      = NULL;                        pDev->pRegBase       = 0;                        vgaCreated           = TRUE;                        }                    }                else if ((instance >= 0) && (instance < pciDisplayDevNo))                    {                    return (pciDisplayDevs[instance]);                    }                 return (pDev);                }            else if (deviceID == 0)                {                /* Find the specified <instance> of the specified PCI                 * <vendorID> value.                 */                int i;                for (i = 0; i < pciDisplayDevNo; ++i)                    {                    if (((pciDisplayDevs[i])->vendorID == vendorID) &&                        (instance-- == 0))                        {                        return (pciDisplayDevs[i]);                        }                    }                }            else                {                /* Find the specified <instance> of the specified PCI                 * <vendorID> and <deviceID> values.                 */                int i;                for (i = 0; i < pciDisplayDevNo; ++i)                    {                    if (((pciDisplayDevs[i])->vendorID == vendorID) &&                        ((pciDisplayDevs[i])->deviceID == deviceID) &&                        (instance-- == 0))                        {                        return (pciDisplayDevs[i]);                        }                    }                }            break;            }        case WINDML_KEYBOARD_DEVICE:            {            if ((pDev = sysWindMlDescAlloc ()) != NULL)                {                bzero ((char *) pDev, sizeof (WINDML_DEVICE));                pDev->instance  = instance;                pDev->devType   = devType;                pDev->regDelta  = 4;                pDev->intLevel  = KBD_INT_LVL;                pDev->intVector = (VOIDFUNCPTR *)                                  (INUM_TO_IVEC (INT_NUM_GET (KBD_INT_LVL)));                pDev->pRegBase  = (void *)(DATA_8042);                }            return (pDev);            }        case WINDML_POINTER_DEVICE :            {            if ((pDev = sysWindMlDescAlloc ()) != NULL)                {                bzero ((char *) pDev, sizeof (WINDML_DEVICE));                pDev->instance  = instance;                pDev->devType   = devType;                pDev->regDelta  = 4;                pDev->intLevel  = MSE_INT_LVL;                pDev->intVector = (VOIDFUNCPTR *)                                  (INUM_TO_IVEC (INT_NUM_GET (MSE_INT_LVL)));                pDev->pRegBase  = (void *)(DATA_8042);                }            return (pDev);            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男人的j进女人的j一区| 欧美三区在线观看| 欧美图片一区二区三区| 久久久亚洲精品一区二区三区| 亚洲少妇30p| 福利电影一区二区三区| 91精品国产欧美日韩| 亚洲一区二区精品3399| 国产99精品视频| 精品国产精品一区二区夜夜嗨| 一区二区三区欧美激情| 99久久99久久精品免费看蜜桃| 精品久久五月天| 日韩电影一区二区三区| 欧美偷拍一区二区| 亚洲另类春色校园小说| 91丨九色丨尤物| 中文字幕免费观看一区| 国产精品影视网| 欧美成人精品3d动漫h| 天堂精品中文字幕在线| 欧美日韩在线精品一区二区三区激情 | 亚洲欧洲韩国日本视频| 国产**成人网毛片九色| 国产欧美日韩在线| 国产精品亚洲人在线观看| 久久久影视传媒| 国产高清亚洲一区| 国产三级三级三级精品8ⅰ区| 国产美女视频一区| 欧美国产一区二区在线观看| 国产jizzjizz一区二区| 国产精品无圣光一区二区| 成人av网站免费| 日韩一区在线播放| 91丝袜美女网| 亚洲成人一区在线| 日韩亚洲电影在线| 精品一区免费av| 国产日产欧美一区| 99久精品国产| 亚洲成年人影院| 欧美一区二区在线免费播放 | 国产91丝袜在线播放九色| 国产亚洲精品中文字幕| 成人理论电影网| 一区二区三区av电影| 欧美日韩亚洲综合在线| 麻豆精品新av中文字幕| 国产日韩一级二级三级| 91色乱码一区二区三区| 亚洲一区视频在线| 日韩欧美一二三区| 99久久免费视频.com| 午夜天堂影视香蕉久久| 欧美xxxx老人做受| 99这里只有精品| 亚洲18色成人| 国产欧美日韩麻豆91| 精品视频全国免费看| 国产一区三区三区| 亚洲影院在线观看| 久久久久国产免费免费 | 欧美成人伊人久久综合网| 成人自拍视频在线| 午夜久久电影网| 国产精品久久久久久久久图文区 | 成人av影院在线| 天堂一区二区在线| 国产精品久久久久久久浪潮网站 | **性色生活片久久毛片| 69堂国产成人免费视频| 国产a精品视频| 日本欧美在线看| 亚洲美女淫视频| 久久久久久久综合| 欧美肥妇bbw| 91同城在线观看| 国产成人精品www牛牛影视| 亚洲一区视频在线观看视频| 国产视频一区不卡| 日韩免费性生活视频播放| 日本韩国精品在线| 国产美女精品一区二区三区| 亚洲1区2区3区视频| 成人免费在线播放视频| 久久久影院官网| 91精品国产入口| 欧美色区777第一页| 9色porny自拍视频一区二区| 激情小说亚洲一区| 免费成人美女在线观看| 亚洲国产wwwccc36天堂| 亚洲精品一二三| 亚洲日本在线天堂| 国产拍欧美日韩视频二区| 精品国产乱码91久久久久久网站| 欧美日本一区二区三区四区| 欧美亚洲高清一区| 在线精品视频免费播放| 97成人超碰视| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品自拍三区| 国产一区日韩二区欧美三区| 久久国产精品免费| 久久丁香综合五月国产三级网站| 日韩不卡在线观看日韩不卡视频| 视频一区视频二区中文字幕| 亚洲国产欧美在线| 午夜久久久久久久久| 天天综合天天综合色| 奇米四色…亚洲| 奇米影视一区二区三区小说| 日韩**一区毛片| 久久国产精品无码网站| 久久99久久99| 国产成人午夜精品影院观看视频| 国产成人精品免费视频网站| 成人三级伦理片| 色综合久久天天| 在线观看日韩国产| 69av一区二区三区| 欧美精品一区二区在线播放| 国产亚洲美州欧州综合国| 国产精品久久久久久亚洲伦| 亚洲日本成人在线观看| 亚洲香肠在线观看| 免费成人结看片| 国产精品一区在线观看你懂的| 成人免费视频视频在线观看免费| aaa国产一区| 在线不卡欧美精品一区二区三区| 欧美一区二区大片| 久久蜜桃香蕉精品一区二区三区| 国产精品久久福利| 亚洲国产精品久久人人爱蜜臀| 日本不卡中文字幕| 成人开心网精品视频| 欧美三级日韩在线| 欧美va亚洲va国产综合| 国产精品毛片a∨一区二区三区| 亚洲国产中文字幕在线视频综合| 免费看黄色91| 91蝌蚪porny| 欧美变态tickle挠乳网站| 中文字幕中文字幕中文字幕亚洲无线| 亚洲国产精品久久人人爱| 国产一区二区三区电影在线观看 | 国产 欧美在线| 7777精品伊人久久久大香线蕉的| 久久久www成人免费无遮挡大片| 日韩美女久久久| 精品影视av免费| 欧美日韩国产首页| 国产精品久久久久久久久晋中| 一区二区日韩av| 国产sm精品调教视频网站| 精品视频一区 二区 三区| 欧美激情一区二区三区蜜桃视频| 午夜国产精品一区| 91麻豆国产香蕉久久精品| 久久久另类综合| 日本亚洲欧美天堂免费| 色婷婷精品大在线视频| 精品国产91乱码一区二区三区| 亚洲综合区在线| 91在线观看视频| 久久免费视频一区| 日韩国产精品久久久| 91丨九色丨黑人外教| 久久只精品国产| 老鸭窝一区二区久久精品| 欧美视频中文字幕| 亚洲伦理在线免费看| 成人av资源站| 国产日韩综合av| 韩国一区二区三区| 日韩欧美色电影| 日本不卡视频在线观看| 欧美精品乱人伦久久久久久| 亚洲女同ⅹxx女同tv| a级高清视频欧美日韩| 日本一区二区三区在线观看| 激情五月婷婷综合网| 欧美成人video| 美女视频网站久久| 538在线一区二区精品国产| 亚洲电影激情视频网站| 欧美性大战久久| 亚洲.国产.中文慕字在线| 欧美综合视频在线观看| 一区二区在线观看免费| 99re6这里只有精品视频在线观看| 国产精品视频麻豆| 本田岬高潮一区二区三区| 国产精品第四页| 色婷婷综合久久久中文一区二区| 亚洲日本在线天堂| 欧美性xxxxxxxx| 日韩中文字幕区一区有砖一区|