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

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

?? syswindml.c

?? vxworks嵌入式開發vmware 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一区二区三区免费野_久草精品视频
中文一区在线播放| 婷婷亚洲久悠悠色悠在线播放| 色琪琪一区二区三区亚洲区| 丝袜美腿高跟呻吟高潮一区| 中文字幕精品三区| 欧美变态tickle挠乳网站| 97成人超碰视| 国模冰冰炮一区二区| 亚洲国产精品一区二区久久恐怖片 | 欧美美女直播网站| 国产精品一区二区无线| 日韩精品免费专区| 亚洲视频网在线直播| 久久青草国产手机看片福利盒子 | 国产精品欧美久久久久一区二区| 欧美另类久久久品| 欧美一卡二卡在线| 欧美色中文字幕| 91视频.com| 成人激情av网| 国产99久久久国产精品| 激情图区综合网| 乱中年女人伦av一区二区| 亚洲国产精品久久久久婷婷884| 欧美激情一区二区三区不卡| 精品99一区二区| 日韩欧美久久久| 欧美一区二区三区白人| 欧美日韩中文字幕一区| 日本精品免费观看高清观看| av中文一区二区三区| 国产精品自拍网站| 久88久久88久久久| 久久国产精品一区二区| 蓝色福利精品导航| 日韩电影在线免费| 午夜视频在线观看一区二区三区| 亚洲码国产岛国毛片在线| 国产精品九色蝌蚪自拍| 日本一区二区三区免费乱视频 | 婷婷综合五月天| 亚洲美女偷拍久久| 亚洲欧美区自拍先锋| 国产精品久线在线观看| 综合久久久久久久| 亚洲乱码国产乱码精品精小说| 一区在线观看免费| 亚洲另类春色国产| 亚洲国产你懂的| 日产精品久久久久久久性色| 日韩1区2区日韩1区2区| 激情综合网激情| 国产成人综合在线播放| 欧美日韩国产经典色站一区二区三区 | 久久aⅴ国产欧美74aaa| 精品一区二区三区免费观看| 国产裸体歌舞团一区二区| 成人av网址在线| 色婷婷av一区二区| 欧美日韩mp4| 精品国产污网站| 国产精品网友自拍| 一区二区久久久久| 日产欧产美韩系列久久99| 国产美女视频一区| 成人不卡免费av| 欧美日韩一区三区四区| 日韩精品一区二区三区在线播放 | 午夜精品一区二区三区免费视频 | 99久久国产综合精品色伊| 欧美三级韩国三级日本一级| 91精品国产手机| 欧美国产日本韩| 亚洲国产另类精品专区| 国产乱码精品一区二区三区av| 99精品久久久久久| 欧美一区日韩一区| 综合av第一页| 日本午夜一本久久久综合| 成人免费视频国产在线观看| 欧美性生交片4| 久久久久国产一区二区三区四区| 亚洲色图欧洲色图婷婷| 美国毛片一区二区| 天堂久久一区二区三区| 国产呦精品一区二区三区网站| av一区二区三区在线| 欧美一级搡bbbb搡bbbb| 国产精品成人一区二区艾草 | 国产河南妇女毛片精品久久久| 99久久婷婷国产综合精品| 欧美一级日韩不卡播放免费| 综合久久国产九一剧情麻豆| 黄页视频在线91| 欧美偷拍一区二区| 中文字幕av一区二区三区高| 日韩在线一区二区三区| 色综合天天综合给合国产| 成人免费高清在线| 欧美一级黄色片| 亚洲柠檬福利资源导航| 国产麻豆精品95视频| 91精品国产综合久久香蕉麻豆| 国产精品美女久久久久久久久久久 | 美女视频黄久久| 在线亚洲人成电影网站色www| 久久久精品2019中文字幕之3| 婷婷国产v国产偷v亚洲高清| av电影在线观看一区| 2024国产精品| 日韩电影在线观看电影| 在线精品视频免费播放| 国产精品不卡在线观看| 国产精品香蕉一区二区三区| 欧美videossexotv100| 天天综合天天做天天综合| 色av一区二区| 亚洲天堂精品在线观看| 国产91清纯白嫩初高中在线观看| 日韩午夜小视频| 日韩精品一级中文字幕精品视频免费观看 | 日韩精品亚洲专区| 精品视频在线免费看| 亚洲欧洲综合另类| 成人av在线电影| 国产精品视频免费| 高潮精品一区videoshd| 久久久激情视频| 国产成人在线观看免费网站| 精品黑人一区二区三区久久| 日本欧美韩国一区三区| 91麻豆精品国产自产在线观看一区 | 国产精品欧美精品| 成人午夜视频在线| 国产三级一区二区| 国产不卡一区视频| 国产精品天天看| 不卡高清视频专区| 国产精品久久久久影院亚瑟 | 国产亚洲精品7777| 成人手机电影网| 国产精品久99| 日本精品裸体写真集在线观看| 亚洲精品一卡二卡| 欧美性做爰猛烈叫床潮| 五月天一区二区三区| 777奇米四色成人影色区| 免费亚洲电影在线| 久久久青草青青国产亚洲免观| 国产成人午夜99999| 亚洲国产高清在线观看视频| 91无套直看片红桃| 亚洲成人精品影院| 日韩一区二区麻豆国产| 国产精品一线二线三线| 国产精品天天看| 欧美系列一区二区| 日本不卡一二三区黄网| 久久久久久麻豆| gogo大胆日本视频一区| 亚洲精品一二三区| 日韩欧美国产电影| 高清不卡在线观看av| 一级女性全黄久久生活片免费| 欧美日韩国产一级| 韩国视频一区二区| 亚洲国产精品ⅴa在线观看| 97se亚洲国产综合自在线 | 三级精品在线观看| 欧美大片在线观看一区二区| 国产成人啪免费观看软件| 亚洲乱码日产精品bd| 69p69国产精品| 国产成人在线色| 天堂影院一区二区| 中文字幕av一区二区三区高| 欧美三日本三级三级在线播放| 精品一区二区免费| 亚洲欧洲日韩在线| 日韩一区二区影院| av不卡在线观看| 蜜桃精品视频在线| 亚洲精品一二三四区| 欧美精品一区二区精品网| 色婷婷综合五月| 狠狠狠色丁香婷婷综合激情 | 日本91福利区| 亚洲同性gay激情无套| 日韩手机在线导航| 91亚洲男人天堂| 久久精品国产免费| 亚洲亚洲精品在线观看| 国产性天天综合网| 日韩亚洲欧美综合| 色噜噜久久综合| 国产九色sp调教91| 日韩精品乱码免费| 一区二区三区不卡视频| 日本一区二区免费在线| 欧美一区二区三区电影|