亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
污片在线观看一区二区| 午夜精品久久久| 99在线热播精品免费| 欧美日韩国产综合一区二区三区| 欧美视频在线不卡| 亚洲国产激情av| 国产一区二区看久久| 久久蜜桃av一区二区天堂 | 日韩在线卡一卡二| 韩国欧美国产1区| eeuss鲁片一区二区三区在线看| 国产婷婷色一区二区三区| 国产福利91精品| 日韩国产欧美视频| 国内精品伊人久久久久av一坑| 偷拍日韩校园综合在线| 日韩和欧美的一区| 成人妖精视频yjsp地址| 91麻豆国产在线观看| 国产精品久久久久久久久快鸭| 99精品视频中文字幕| 爽爽淫人综合网网站| 欧美激情一区二区三区不卡| 欧美色欧美亚洲另类二区| 精品一区二区免费看| 国产欧美日韩卡一| 国产精品久久一级| 波多野结衣亚洲一区| 成人免费看片app下载| 精品福利一区二区三区免费视频| 日本美女视频一区二区| 8v天堂国产在线一区二区| 亚洲自拍偷拍综合| 欧美日韩视频在线第一区| 亚洲国产wwwccc36天堂| 欧美天堂一区二区三区| 午夜精品一区二区三区免费视频| 欧美浪妇xxxx高跟鞋交| 日韩电影一区二区三区四区| 欧美群妇大交群中文字幕| 蜜臀av性久久久久蜜臀aⅴ| 日韩写真欧美这视频| 久久av中文字幕片| 国产欧美日韩视频一区二区 | 欧美日韩你懂得| 夜夜夜精品看看| 91福利精品视频| 亚洲激情自拍偷拍| 色欧美日韩亚洲| 国产精品进线69影院| 成人免费视频视频在线观看免费| 久久精品一区二区三区不卡 | 中文字幕一区视频| 成人黄色网址在线观看| 亚洲欧美国产三级| 91免费视频网址| 一区二区在线观看视频| 青青青伊人色综合久久| 久久精品欧美日韩精品| 国产一区中文字幕| 国产欧美日韩亚州综合 | 欧美日韩国产电影| 卡一卡二国产精品| 久久久美女毛片| 粗大黑人巨茎大战欧美成人| 中文字幕高清一区| 91美女片黄在线| 亚洲黄色免费电影| 久久精品视频一区二区三区| 福利电影一区二区三区| 亚洲欧美激情在线| 欧美日韩精品综合在线| 美女www一区二区| 国产午夜精品一区二区| av一区二区三区在线| 亚洲国产另类av| 欧美不卡激情三级在线观看| 国产精品综合一区二区| 亚洲欧洲99久久| 欧美性猛交xxxx乱大交退制版 | 国产成人av网站| 国产精品萝li| 欧美日韩视频在线一区二区| 久久狠狠亚洲综合| 国产精品三级av在线播放| 欧美羞羞免费网站| 国产真实乱偷精品视频免| 成人欧美一区二区三区| 精品国产凹凸成av人网站| 国产精品一区久久久久| 天天操天天干天天综合网| 国产女主播在线一区二区| 欧美亚男人的天堂| 国产成人在线视频网站| 亚洲国产视频在线| 久久久精品蜜桃| 欧美性三三影院| 国产**成人网毛片九色| 悠悠色在线精品| 国产精品无遮挡| 91精品国产乱| 91蜜桃网址入口| 国产精品一线二线三线精华| 亚洲国产精品尤物yw在线观看| 久久这里只有精品首页| 欧美无人高清视频在线观看| 国产99久久久久| 日韩和欧美一区二区三区| 亚洲欧美在线视频观看| 精品人在线二区三区| 欧美日韩精品综合在线| 91视频国产观看| 国产凹凸在线观看一区二区| 日韩不卡免费视频| 一区二区三区精品| 国产精品你懂的在线欣赏| 精品毛片乱码1区2区3区| 中文字幕日韩精品一区 | 五月天一区二区| 色婷婷激情一区二区三区| 国产精品美女一区二区| 日韩一区二区在线看片| 91成人在线免费观看| 麻豆精品新av中文字幕| 国产日韩欧美精品一区| 欧美精品777| 色婷婷av一区二区三区软件| 福利视频网站一区二区三区| 国产在线精品国自产拍免费| 美洲天堂一区二卡三卡四卡视频| 亚洲成人在线观看视频| 亚洲私人黄色宅男| 久久精品欧美日韩| 欧美va亚洲va| 国产乱码精品一区二区三区av | 精品国产一区二区三区不卡| 欧美一区二区性放荡片| 欧美日韩高清影院| 欧美老年两性高潮| 91精品国产综合久久久久久| 欧美日本高清视频在线观看| 欧美丝袜自拍制服另类| 在线不卡一区二区| 91精品免费观看| 91精品国产品国语在线不卡| 欧美一级二级三级乱码| 日韩免费观看高清完整版 | 成人福利电影精品一区二区在线观看| 久久国产免费看| 国产精品夜夜嗨| 国产伦精品一区二区三区免费| 精品无码三级在线观看视频| 国产麻豆精品theporn| 国产成人aaa| 99精品欧美一区二区三区小说| 成人国产精品免费| 欧亚洲嫩模精品一区三区| 欧美久久一二区| 亚洲精品一线二线三线| 中文字幕国产一区二区| 亚洲国产精品二十页| 亚洲免费av观看| 秋霞影院一区二区| 狠狠色综合色综合网络| 97精品久久久午夜一区二区三区| 亚洲免费色视频| 麻豆久久一区二区| 久久精品噜噜噜成人88aⅴ| 精品在线观看免费| 91影院在线观看| 717成人午夜免费福利电影| 欧美日韩另类一区| 精品捆绑美女sm三区| 亚洲精选在线视频| 日韩国产成人精品| 丁香一区二区三区| 成人性生交大片免费看视频在线| 欧美影院精品一区| 久久精品亚洲精品国产欧美kt∨ | av高清久久久| 7777女厕盗摄久久久| 欧美本精品男人aⅴ天堂| 亚洲综合色自拍一区| 国产在线视视频有精品| 91久久精品一区二区二区| 欧美一区二区三区白人| 亚洲欧美aⅴ...| 麻豆精品精品国产自在97香蕉 | 久久久亚洲国产美女国产盗摄| 亚洲人成网站在线| 波多野结衣的一区二区三区| 欧美视频一区二区三区| 国产欧美日韩综合精品一区二区| 五月天激情综合网| 欧美午夜精品一区二区三区| 中文字幕欧美三区| 日本女优在线视频一区二区| 99精品视频中文字幕| 中文欧美字幕免费| 狂野欧美性猛交blacked|