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

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

?? syspci.c

?? 嵌入式操作系統VxWorks中板級支持包文件
?? C
字號:
/* sysPci.c - template PCI autoconfig support *//* Copyright 2002 Wind River Systems, Inc. All Rights Reserved *//*modification history--------------------01a,21may02,scm written.*//*   TODO - Fill in this file with I/O addresses and related constants for the          template BSP. Anything with "template" as a prefix needs to examined           and re-named to id the BSP (i.e. iq80321, iq80310, etc.) *//*DESCRIPTIONThis module contains the "non-generic" or "board specific" PCI-PCIbridge initialization code.*//* includes */#include "vxWorks.h"#include "config.h"#include "stdio.h"#include "logLib.h"#include "taskLib.h"#include "end.h"#ifdef  INCLUDE_PCI/* defines *//* global */IMPORT END_TBL_ENTRY endDevTbl[];END_TBL_ENTRY   *pendDevTbl = endDevTbl;/* include */#include "drv/pci/pciConfigLib.h"#include "drv/pci/pciConfigLib.c"#ifdef INCLUDE_SHOW_ROUTINES#include "drv/pci/pciConfigShow.c" /* display of PCI config space */#endiftypedef struct{    UINT32    pciVend;    UINT32    pciDevice;}SYS_PCI_IDENT;/* local *//* forward declarations */LOCAL UINT32 sysPciEncode (UINT32 bus, UINT32 dev, UINT32 func);STATUS sysPciCfgWrite (int bus, int dev, int func, int offset, int size, UINT32 data);STATUS sysPciCfgRead (int bus, int dev, int func, int offset, int size, void *data);STATUS sysPciFindDevices (SYS_PCI_IDENT * pDeviceList, int index, int * pBusNo,                          int * pDeviceNo, UINT16 * pVendorId, UINT16 * pDeviceId);void sysPciInit (void);void sysPciInit2 (void);void sysPciAbortsClear(void);/********************************************************************************* sysPciEncode - encode parameters for the Configuration Address Register** This routine packs three parameters into one integer for accessing the* Configuration Address Register** RETURNS: integer encoded version of bus, device, and function numbers.*/LOCAL UINT32 sysPciEncode (    UINT32 bus,    UINT32 dev,    UINT32 func    )    {    if(bus == 0)        {         return (( 1 << ((dev & 0x1f) + 16)) | ((dev & 0x1f) << 11) | ((func & 7) << 8));        }    return (((bus & 0xff) << 16) | ((dev & 0x1f) << 11) | ((func & 7) << 8) | 1);    }/********************************************************************************* sysPciCfgWrite - write to one PCI configuration register location of the*                  specified size (1, 2 or 4 bytes).** This routine writes one PCI configuration space location** RETURNS: OK or ERROR**/STATUS sysPciCfgWrite(    int bus,    int dev,    int func,    int offset,    int size,    UINT32 data    )    {    volatile UINT32 pciDevice;    int            lockKey;    STATUS         rc;    unsigned short dus;    unsigned char  duc;/*  * TODO -  * supply correct OCCAR & OCCDR reg definitions for template */    pciDevice = sysPciEncode(bus,dev,func);    /* write cfg space data */    switch(size)        {        case 4:            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_WRITE, 4, (char *)&data);            intUnlock(lockKey);            break;        case 2:            dus = (unsigned short)data;            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_WRITE, 2, (char *)&dus);            intUnlock(lockKey);            break;        default:            duc = (unsigned char)data;            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_WRITE, 1, (char *)&duc);            intUnlock(lockKey);        }    return rc;    }/********************************************************************************* sysPciCfgRead - reads one PCI configuration space register location of the*                 specified size (1, 2 or 4 bytes).** This routine reads one PCI configuration register location** RETURNS : OK or ERROR*/STATUS sysPciCfgRead(    int bus,    int dev,    int func,    int offset,    int size,    void *data    )    {    volatile UINT32 pciDevice;    int       lockKey;    STATUS    rc;/*  * TODO -  * supply correct OCCAR & OCCDR reg definitions for template */    pciDevice = sysPciEncode(bus,dev,func);    /* read cfg space data */    switch(size)        {        case 4:            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_READ, 4, (char *)data);            intUnlock(lockKey);            break;        case 2:            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_READ, 2, (char *)data);            intUnlock(lockKey);            break;        default:            lockKey = intLock();            *((volatile UINT32 *)(template_OCCAR_REG)) = (pciDevice | (offset & ~3));            rc = vxMemProbe ((char *)template_OCCDR_REG, VX_READ, 1, (char *)data);            intUnlock(lockKey);        }    return rc;}/********************************************************************************* sysPciFindDevice - find the nth device with the given device & vendor ID** This routine finds the nth device with the given device & vendor ID.** RETURNS:* OK, or ERROR if the deviceId and vendorId didn't match.*/STATUS sysPciFindDevices(    SYS_PCI_IDENT * pDeviceList,/* ptr to array vend/device ID */    int             index,        /* desired instance of device */    int           * pBusNo,        /* bus number */    int           * pDeviceNo,    /* device number */    UINT16        * pVendorId,  /* vendor ID */    UINT16        * pDeviceId   /* device ID */    )    {    STATUS            status = ERROR;    int                bus,dev,func=0;    UINT32            devId,vendId;    SYS_PCI_IDENT * pDev;    for(bus = 0; bus < PCI_MAX_BUS; ++bus)        {        for(dev = 0;dev < PCI_MAX_DEV; ++dev)            {            pciConfigInLong(bus,dev,func,PCI_CFG_VENDOR_ID,&vendId);            if((vendId & 0x0000ffff) != 0x0000FFFF)                {                devId = (vendId >> 16) & 0xffff;                vendId &= 0x0000FFFF;                pDev = pDeviceList;                while(pDev->pciVend && pDev->pciDevice)                    {                    if(vendId == pDev->pciVend && devId == pDev->pciDevice && index-- == 0)                        {                        *pBusNo        = bus;                        *pDeviceNo    = dev;                        *pVendorId    = (UINT16)vendId;                        *pDeviceId    = (UINT16)devId;                        return OK;                        }                    ++pDev;                    }                }            }        }    return status;    }/***************************************************************************** sysPciInit - PCI Configuration LIbrary Initialization*** RETURNS: None** NOMANUAL*/void sysPciInit(void)    {    /* PCI Configuration Library Initialization MECHANISM_0 */    pciConfigLibInit(PCI_MECHANISM_0,(int)sysPciCfgRead,(int)sysPciCfgWrite,0);    return;    }/***************************************************************************** sysPciInit2 - Second PCI Initialization*** RETURNS: None** NOMANUAL*/void sysPciInit2(void)    {    sysPciAbortsClear();    }/***************************************************************************** sysPciAbortsClear - Clear Target Aborts in PCI status Register*** RETURNS: None** NOMANUAL*/void sysPciAbortsClear(void)    {  UINT32 tmp;/*  * TODO -  * ATU Status Register -clear, * ATU Interrupt Status Register -clear  */    }#endif /* INCLUDE_PCI */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.成人网.com| 日韩专区一卡二卡| 国产99久久久国产精品免费看| 日韩亚洲欧美成人一区| 偷拍日韩校园综合在线| 欧美性大战久久久久久久蜜臀| 亚洲综合色自拍一区| 欧美色图天堂网| 日日夜夜精品视频免费| 日韩欧美电影一区| 国产一区在线视频| 国产精品久久久久久妇女6080| 成人性生交大片免费| 国产精品久久久久婷婷 | 国产精品综合视频| 国产视频一区二区三区在线观看| 成人动漫一区二区三区| 日韩理论片网站| 欧美色大人视频| 久草精品在线观看| 国产精品麻豆久久久| 91精品办公室少妇高潮对白| 日韩激情av在线| 久久久影视传媒| 制服丝袜激情欧洲亚洲| 久久av老司机精品网站导航| 国产精品五月天| 欧美日韩亚州综合| 国产精品一区二区久久不卡 | 久久久蜜桃精品| 成人av电影观看| 日韩电影在线观看电影| 久久精品一区二区三区四区 | 9191成人精品久久| 国产一区二区调教| 亚洲精品网站在线观看| 精品久久久影院| 91视视频在线观看入口直接观看www | 一区二区三区国产精品| 日韩精品一区二区三区三区免费| www.成人网.com| 久久精品99国产精品日本| 亚洲色图制服诱惑 | 欧美精品一区二区三区蜜臀| 91麻豆自制传媒国产之光| 男女男精品网站| 亚洲精品乱码久久久久久| 国产日韩欧美麻豆| 欧美一级理论片| 一本大道综合伊人精品热热| 精品无人区卡一卡二卡三乱码免费卡 | 精品国产精品一区二区夜夜嗨| 色婷婷综合久久久中文一区二区| 久久99精品久久久| 亚洲动漫第一页| 亚洲欧洲国产日韩| 久久久无码精品亚洲日韩按摩| 717成人午夜免费福利电影| 99国产欧美另类久久久精品| 国产一区二区三区| 日产欧产美韩系列久久99| 亚洲精选免费视频| 中文字幕一区二区三区视频| 日韩美女一区二区三区| 欧美日韩一级二级| 91精品91久久久中77777| 成人听书哪个软件好| 黑人巨大精品欧美黑白配亚洲| 亚洲一区二区在线免费看| 亚洲免费观看高清在线观看| 欧美国产综合色视频| 国产欧美视频在线观看| 精品国产乱码久久久久久1区2区 | 精品国产露脸精彩对白| 91精品国产欧美一区二区成人| 欧美色男人天堂| 欧美性视频一区二区三区| 色系网站成人免费| 色网综合在线观看| 欧美亚洲综合久久| 欧美日韩日日夜夜| 欧美一区二区三区视频在线| 91 com成人网| 欧美一区二区视频免费观看| 欧美精品在线观看播放| 制服丝袜亚洲精品中文字幕| 在线成人av网站| 日韩欧美一区二区三区在线| 日韩午夜激情av| 亚洲精品在线观| 国产日韩欧美高清在线| 亚洲欧洲美洲综合色网| 亚洲人成伊人成综合网小说| 一区二区三区四区高清精品免费观看 | 色婷婷狠狠综合| 欧美久久一二区| 欧美成人video| 中文天堂在线一区| 亚洲精品五月天| 日韩电影免费一区| 国产精品12区| 99精品欧美一区二区三区小说| 欧美羞羞免费网站| 日韩女优av电影| 日本一区二区三区四区| 亚洲天堂免费看| 午夜精品福利一区二区三区蜜桃| 免费看欧美女人艹b| 丁香婷婷深情五月亚洲| 色婷婷亚洲婷婷| 日韩欧美高清一区| 国产精品看片你懂得| 亚洲国产综合视频在线观看| 免费在线看成人av| 粉嫩aⅴ一区二区三区四区五区| 一本久久精品一区二区| 欧美一级黄色录像| 亚洲免费电影在线| 久久国内精品自在自线400部| 国产1区2区3区精品美女| 欧美日韩激情在线| 久久久.com| 亚洲.国产.中文慕字在线| 国产精品一二一区| 欧美日韩国产成人在线91| 国产欧美一区二区精品婷婷 | 91精品国产综合久久精品图片| 久久久久久久久99精品| 亚洲综合丁香婷婷六月香| 国产一区在线观看视频| 在线一区二区三区四区五区| 精品精品欲导航| 一区二区三区欧美在线观看| 国产盗摄视频一区二区三区| 欧美二区三区91| 亚洲区小说区图片区qvod| 国产一区二区日韩精品| 337p亚洲精品色噜噜狠狠| 亚洲男人的天堂在线观看| 国产在线精品一区二区夜色| 精品视频一区二区不卡| 国产精品视频在线看| 理论片日本一区| 欧美日韩亚洲另类| 亚洲欧美国产77777| 国产一区二区三区四| 日韩一卡二卡三卡国产欧美| 一区二区三区蜜桃| av在线一区二区三区| 精品免费一区二区三区| 午夜欧美视频在线观看| 99国产精品久| 久久奇米777| 激情文学综合丁香| 日韩欧美色综合| 蜜臀精品一区二区三区在线观看| 色综合色狠狠综合色| 国产精品久99| 成人理论电影网| 国产午夜精品在线观看| 国产在线麻豆精品观看| 欧美zozozo| 麻豆91在线观看| 日韩午夜在线观看| 日韩vs国产vs欧美| 91精品国产色综合久久不卡蜜臀| 午夜精品久久久久久久久| 欧美视频一区二区三区| 亚洲猫色日本管| 91麻豆国产自产在线观看| 亚洲图片欧美激情| 91福利国产成人精品照片| 亚洲伦理在线精品| 色激情天天射综合网| 国产精品短视频| 色综合久久中文综合久久97| 亚洲丝袜制服诱惑| 91黄视频在线观看| 亚洲一区日韩精品中文字幕| 91久久奴性调教| 亚洲电影第三页| 欧美一区二区三区四区五区| 久久成人免费网站| 欧美精品一区二区高清在线观看| 麻豆传媒一区二区三区| 久久精品男人天堂av| 成人av资源下载| 一区二区三区四区在线播放 | 精品一区二区在线观看| 久久久www成人免费毛片麻豆 | 久久精品99国产国产精| 久久九九国产精品| 色综合色综合色综合色综合色综合| 一区二区三区四区在线播放| 在线不卡a资源高清| 精品一区二区久久| 亚洲日本电影在线| 欧美嫩在线观看| 国产精品资源在线看| 一区二区三区免费网站|