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

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

?? pciiomapshow.c

?? workbench下vxworks6.6的ARM920T核對應的BSP源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* pciIomapShow.c - Show routines of PCI bus(IO mapped) library *//* * Copyright (c) 2000, 2004, 2005, 2007 Wind River Systems, Inc. * * The right to copy, distribute or otherwise make use of this software * may be licensed only pursuant to the terms of an applicable Wind River * license agreement. *//*modification history--------------------01e,26sep07,mdo  Clear out apigen errors/warnings01d,27sep05,h_k  cleaned up Diab compiler warning. (SPR #112110)01c,20dec04,rec  correct more compiler warnings01b,16aug04,scm  correct diab warnings...01a,13jan00,pr   Adapted from cma220.*//*DESCRIPTIONThis module contains show routine to see all devices and bridges on the PCI bus.This module works in conjunction with pciIomapLib.o.There are two ways to find out an empty device.  - check Master Abort bit after the access.  - check whether the read value is 0xffff.It uses the second method, since I didn't see the Master Abort bit ofthe host/PCI bridge changing.INCLUDE FILES: pciIomapLib.h*/#if (defined(INCLUDE_PCI) && defined(INCLUDE_SHOW_ROUTINES))#include <vxWorks.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dllLib.h>/* * We currently wish to include this from locally rather than from there as that * version is out-dated. However, as it has been included in sysLib.c already, * this will do no harm. */#include "pciIomapLib.h"/* defines *//* externs */IMPORT int pciLibInitStatus;IMPORT int pciConfigMech;/* globals *//* locals *//* forward declarations */LOCAL void pciDheaderPrint	(PCI_HEADER_DEVICE * pD);LOCAL void pciBheaderPrint	(PCI_HEADER_BRIDGE * pB);/********************************************************************************* pciIomapShowInit - initialize the show routines.** This routine is used to pull in all routines in this library.** RETURNS: N/A** \NOMANUAL*/void pciIomapShowInit (void)    {    }/********************************************************************************* pciDeviceShow - print information about PCI devices** This routine prints information about PCI devices* There are two ways to find out an empty device.*   - check Master Abort bit after the access.*   - check whether the read value is 0xffff.* It uses the second method, since I didn't see the Master Abort bit of* the host/PCI bridge changing.** RETURNS:* OK, or ERROR if the library is not initialized.*/STATUS pciDeviceShow    (    int	busNo		/* bus number */    )    {    int deviceNo;    int devices;    ushort_t vendorId;    ushort_t deviceId;    union	{	int classCode;	char array[4];	} u;    if (pciLibInitStatus != OK)			/* sanity check */        return (ERROR);    printf ("Scanning function 0 of each PCI device on bus %d\n", busNo);    printf ("Using configuration mechanism %d\n", pciConfigMech);    printf ("bus       device    function  vendorID  deviceID  class\n");    if (pciConfigMech == PCI_MECHANISM_1)	devices = 0x1f;    else	devices = 0x0f;    if (busNo != 0)	{	if (devices > 0x0f)	    devices = 0x0f;	}    if (devices > PCI_MAX_DEV)	devices = PCI_MAX_DEV;    for (deviceNo=0; deviceNo < devices; deviceNo++)	{	pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_VENDOR_ID, (short *) &vendorId);	pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_DEVICE_ID, (short *) &deviceId);#if (_BYTE_ORDER == _BIG_ENDIAN)	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_PROGRAMMING_IF,			 &u.array[3]);	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_SUBCLASS, &u.array[2]);	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_CLASS, &u.array[1]);	u.array[0] = 0;#else	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_PROGRAMMING_IF,			 &u.array[0]);	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_SUBCLASS, &u.array[1]);	pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_CLASS, &u.array[2]);	u.array[3] = 0;#endif	/*	 * There are two ways to find out an empty device.	 *   1. check Master Abort bit after the access.	 *   2. check whether the read value is 0xffff.	 * Since I didn't see the Master Abort bit of the host/PCI bridge	 * changing, I use the second method.	 */	if (vendorId != 0xffff)	    printf ("%.8x  %.8x  %.8x  %.8x  %.8x  %.8x\n",		    busNo, deviceNo, 0, vendorId, deviceId, u.classCode);	}    return (OK);    }/********************************************************************************* pciHeaderShow - print a header of the specified PCI device** This routine prints a header of the PCI device specified by busNo, deviceNo,* and funcNo.** RETURNS:* OK, or ERROR if this library is not initialized.*/STATUS pciHeaderShow    (    int	busNo,		/* bus number */    int	deviceNo,	/* device number */    int	funcNo		/* function number */    )    {    PCI_HEADER_DEVICE headerDevice;    PCI_HEADER_BRIDGE headerBridge;    PCI_HEADER_DEVICE * pD = &headerDevice;    PCI_HEADER_BRIDGE * pB = &headerBridge;    if (pciLibInitStatus != OK)			/* sanity check */        return (ERROR);    pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_HEADER_TYPE,		     &pD->headerType);    if (pD->headerType & 0x01)		/* PCI-to-PCI bridge */	{        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_VENDOR_ID,			 &pB->vendorId);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_DEVICE_ID,			 &pB->deviceId);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_COMMAND,			 &pB->command);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_STATUS,			 &pB->status);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_REVISION,			 &pB->revisionId);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_PROGRAMMING_IF,			 &pB->progIf);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_SUBCLASS,			 &pB->subClass);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_CLASS,			 &pB->classCode);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_CACHE_LINE_SIZE,			 &pB->cacheLine);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_LATENCY_TIMER,			 &pB->latency);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_HEADER_TYPE,			 &pB->headerType);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_BIST,			 &pB->bist);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_0,			 &pB->base0);        pciConfigInLong (busNo, deviceNo, funcNo, PCI_CFG_BASE_ADDRESS_1,			 &pB->base1);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_PRIMARY_BUS,			 &pB->priBus);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_SECONDARY_BUS,			 &pB->secBus);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_SUBORDINATE_BUS,			 &pB->subBus);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_SEC_LATENCY,			 &pB->secLatency);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_IO_BASE,			 &pB->ioBase);        pciConfigInByte (busNo, deviceNo, funcNo, PCI_CFG_IO_LIMIT,			 &pB->ioLimit);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_SEC_STATUS,			 &pB->secStatus);        pciConfigInWord (busNo, deviceNo, funcNo, PCI_CFG_MEM_BASE,			 &pB->memBase);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91色porny蝌蚪| 精品一区二区三区久久| 国产亚洲污的网站| 精品国产一区二区三区久久久蜜月 | 婷婷丁香久久五月婷婷| 有坂深雪av一区二区精品| 一区二区三区精品| 一区二区三区 在线观看视频| 一区二区三区四区乱视频| 亚洲一区二区三区视频在线 | 欧美电影影音先锋| 欧美美女视频在线观看| 欧美成人精品二区三区99精品| 欧美大片免费久久精品三p| 精品国产乱码久久久久久免费| 久久综合五月天婷婷伊人| 欧美不卡123| 国产精品美女久久久久久2018| 亚洲男同1069视频| 香蕉加勒比综合久久| 蜜桃视频一区二区| 成人午夜免费av| 欧美伊人久久大香线蕉综合69| 56国语精品自产拍在线观看| 久久久久久久久免费| 亚洲色图视频网| 免费精品99久久国产综合精品| 国产自产高清不卡| 91浏览器打开| 日韩欧美www| 中文字幕在线不卡国产视频| 丝袜美腿亚洲色图| 国产.欧美.日韩| 欧美日韩一区二区不卡| 国产视频亚洲色图| 香蕉加勒比综合久久| 欧美色手机在线观看| 欧美一区二区三区免费观看视频| 欧美精品一区二区久久婷婷| 亚洲猫色日本管| 久久精品国产一区二区| 欧洲精品在线观看| 中文字幕 久热精品 视频在线| 日韩国产在线观看| 色婷婷久久综合| 久久久亚洲高清| 男男视频亚洲欧美| 91久久人澡人人添人人爽欧美| 久久久久综合网| 天天综合网 天天综合色| 97se亚洲国产综合自在线 | 久久99精品国产麻豆不卡| 色一情一伦一子一伦一区| 久久精品男人天堂av| 人人精品人人爱| 欧美亚洲日本一区| 日韩美女啊v在线免费观看| 国产精品自拍av| 久久综合久久综合亚洲| 午夜天堂影视香蕉久久| 在线观看av不卡| 亚洲女人的天堂| 成人国产精品视频| 欧美激情综合在线| 成人午夜av在线| 欧美国产精品一区| 风流少妇一区二区| 欧美激情一区二区在线| 国产精品亚洲一区二区三区妖精| 精品国产一区二区三区不卡| 蜜臀91精品一区二区三区| 欧美一级日韩免费不卡| 天天色综合成人网| 制服丝袜av成人在线看| 蜜臀av亚洲一区中文字幕| 欧美一区二区三区在线观看视频| 亚洲在线成人精品| 欧美日精品一区视频| 午夜精品久久久久久不卡8050| 欧美色综合天天久久综合精品| 亚洲一区二区在线免费看| 欧美日韩精品免费观看视频| 日韩不卡一二三区| 欧美videos中文字幕| 国产精品综合一区二区三区| 国产丝袜在线精品| 91香蕉视频污| 亚洲成人av中文| 精品久久久久久久久久久院品网| 免费成人美女在线观看| 久久久www成人免费毛片麻豆| 盗摄精品av一区二区三区| 国产精品电影一区二区| 欧美无乱码久久久免费午夜一区 | 国产盗摄视频一区二区三区| 中文字幕不卡在线播放| 欧洲亚洲国产日韩| 日本美女一区二区三区视频| 亚洲乱码精品一二三四区日韩在线| 91色在线porny| 日韩精品一二区| 国产网站一区二区| 欧美三区在线观看| 国产精品综合二区| 亚洲精品欧美在线| 欧美成人aa大片| 91香蕉国产在线观看软件| 日韩电影在线观看一区| 中文字幕av资源一区| 欧美三级欧美一级| 国产成人精品午夜视频免费| 一区二区三区影院| 久久蜜臀中文字幕| 在线日韩一区二区| 国产剧情在线观看一区二区| 亚洲线精品一区二区三区| xnxx国产精品| 欧美日韩一级二级| 不卡的电视剧免费网站有什么| 免费成人小视频| 亚洲永久精品大片| 国产精品乱子久久久久| 欧美不卡一区二区| 欧美二区乱c少妇| 在线免费精品视频| 成人动漫av在线| 蜜桃视频在线观看一区二区| 亚洲国产日韩av| 亚洲女人的天堂| 国产精品久久久久影院色老大| 精品国产一区二区三区忘忧草| 欧美性猛交xxxxxxxx| 99riav久久精品riav| 国产经典欧美精品| 免费欧美日韩国产三级电影| 亚洲精品久久7777| 中文字幕一区二区三区不卡在线 | 欧美aⅴ一区二区三区视频| 亚洲影院久久精品| 国产精品看片你懂得| 日本一区二区免费在线| 久久精品视频一区| 国产欧美一区二区三区沐欲| 久久亚洲综合av| 久久久www免费人成精品| 亚洲人成网站精品片在线观看| 国产日韩欧美综合在线| 日韩久久久精品| 欧美岛国在线观看| 日韩视频一区二区三区| 日韩欧美中文字幕制服| 欧美大片顶级少妇| 欧美精品一区二区三区一线天视频| 日韩一区二区不卡| 亚洲精品一区二区在线观看| 精品国产91九色蝌蚪| 久久青草国产手机看片福利盒子| 日韩欧美国产不卡| 久久午夜老司机| 久久久99免费| 国产精品热久久久久夜色精品三区 | 午夜精品免费在线观看| 日韩av在线播放中文字幕| 久久99精品久久久久久久久久久久| 日本不卡1234视频| 国产传媒久久文化传媒| 成人av免费观看| 欧美体内she精视频| 91麻豆精品国产91久久久久久久久 | 麻豆精品一区二区av白丝在线| 久久精品国产第一区二区三区| 国产精品亚洲第一| 91偷拍与自偷拍精品| 欧美三级电影网| 久久久蜜桃精品| 亚洲精品国产精品乱码不99| 免费成人在线视频观看| 懂色av中文字幕一区二区三区| 欧洲精品在线观看| 日韩欧美一二区| 国产精品久久久久久亚洲伦| 图片区小说区区亚洲影院| 国产另类ts人妖一区二区| 色网综合在线观看| 日韩美女视频一区二区在线观看| 国产精品久久看| 美女视频黄免费的久久| 99精品在线观看视频| 精品日韩一区二区三区免费视频| 亚洲国产成人自拍| 日韩黄色免费网站| 国产白丝精品91爽爽久久| 欧美色视频在线| 亚洲国产精品传媒在线观看| 日韩中文字幕区一区有砖一区| 国产成人av一区二区三区在线 | 日韩免费福利电影在线观看| 亚洲欧美怡红院| 精品一区二区三区免费播放| 色哟哟欧美精品|