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

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

?? idpcidevices.c

?? Vxworks下的C例子程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* IDpciDevices *//* From: Darnold, Joel R <jrdarno@sandia.gov>   *//* Show information on PCI devices including vendor and parameters *//* See PCIvenCodes.txt for additional information */#include "vxWorks.h"#include "stdio.h"#include "sysLib.h"#include "drv/pci/pciLocalBus.h"#include "drv/pci/pciIomapLib.h"#include "MyPCI.h"STATUS pciDevConfig    (    int		pciBusNo,		/* PCI bus number */    int		pciDevNo,		/* PCI device number */    int		pciFuncNo,		/* PCI function number */    ULONG       devIoBaseAdrs,          /* device IO base address */    ULONG       devMemBaseAdrs,         /* device memory base address */    ULONG       command                 /* command to issue */    );struct ID_PCI_DEVICES	{	int PciVenId;	int PciDevId;	char VendorName[20];	char DeviceName[40];	};/* externs */IMPORT int pciLibInitDone;IMPORT int pciLibInitStatus;IMPORT int pciConfigMech;STATUS IDpciDevices(int busNo){	int i=0;	int deviceNo;	int devices;	union {		int classCode;		char array[4];		} u;	struct pciHeaderDevice DeviceInfo;=20	struct ID_PCI_DEVICES IDpciDevices[NUM_IDS_DEFINED];	IDpciDevices[i].PciVenId = MOTOROLA_VEN_ID;	IDpciDevices[i].PciDevId = RAVEN_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"Motorola");	sprintf(IDpciDevices[i].DeviceName,"Raven MPC/PCI Bridge");	i++;	IDpciDevices[i].PciVenId = SYMPHONY_VEN_ID;	IDpciDevices[i].PciDevId = W83C533_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"Symphony");	sprintf(IDpciDevices[i].DeviceName,"W83C533 PCI/ISA Bridge");	i++;	IDpciDevices[i].PciVenId = TUNDRA_VEN_ID;	IDpciDevices[i].PciDevId = CA91C042_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"Tundra");	sprintf(IDpciDevices[i].DeviceName,"CA91C042 Universe PCI/VME Bridge");	i++;	IDpciDevices[i].PciVenId = DEC_VEN_ID;	IDpciDevices[i].PciDevId = _21140_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"Digital");	sprintf(IDpciDevices[i].DeviceName,"21140 Ethernet");	i++;	IDpciDevices[i].PciVenId = PLX_VEN_ID;	IDpciDevices[i].PciDevId = PCI9050_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"PLX Technology");	sprintf(IDpciDevices[i].DeviceName,"PCI9050 PCI Interface (CLIB)");	i++;	IDpciDevices[i].PciVenId = PENTEK_VEN_ID;	IDpciDevices[i].PciDevId = _7110_DEV_ID;	sprintf(IDpciDevices[i].VendorName,"Pentek");	sprintf(IDpciDevices[i].DeviceName,"7110 C44 DSP PMC Module");	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    dev    func   venID  devID  class description\n");	if (pciConfigMech == PCI_MECHANISM_1)		devices = 0x1f;	else		devices = 0x0f;	for (deviceNo=0; deviceNo < devices; deviceNo++)	{		pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_VENDOR_ID, &DeviceInfo.vendorId);		pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_DEVICE_ID, &DeviceInfo.deviceId);		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;	/* 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 ((unsigned short)DeviceInfo.vendorId != 0xffff)		{			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_VENDOR_ID, &DeviceInfo.vendorId);			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_DEVICE_ID, &DeviceInfo.deviceId);			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_COMMAND, &DeviceInfo.command);			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_STATUS, &DeviceInfo.status);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_REVISION, &DeviceInfo.revisionId);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_PROGRAMMING_IF, &DeviceInfo.classCode);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_SUBCLASS, &DeviceInfo.progIf);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_CLASS, &DeviceInfo.cacheLine);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_CACHE_LINE_SIZE, &DeviceInfo.cacheLine);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_LATENCY_TIMER, &DeviceInfo.latency);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_HEADER_TYPE, &DeviceInfo.headerType);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_BIST, &DeviceInfo.bist);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_0, &DeviceInfo.base0);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_1, &DeviceInfo.base1);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_2, &DeviceInfo.base2);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_3, &DeviceInfo.base3);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_4, &DeviceInfo.base4);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_BASE_ADDRESS_5, &DeviceInfo.base5);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_CIS, &DeviceInfo.cis);			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_SUB_VENDER_ID, &DeviceInfo.subVendorId);			pciConfigInWord (busNo, deviceNo, 0, PCI_CFG_SUB_SYSTEM_ID, &DeviceInfo.subSystemId);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_EXPANSION_ROM, &DeviceInfo.romBase);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_RESERVED_0, &DeviceInfo.reserved0);			pciConfigInLong (busNo, deviceNo, 0, PCI_CFG_RESERVED_1, &DeviceInfo.reserved1);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_DEV_INT_LINE, &DeviceInfo.intLine);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_DEV_INT_PIN, &DeviceInfo.intPin);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_MIN_GRANT, &DeviceInfo.minGrant);			pciConfigInByte (busNo, deviceNo, 0, PCI_CFG_MAX_LATENCY, &DeviceInfo.maxLatency);/*			printf("Found device VendorID %x DeviceID %x\n",DeviceInfo.vendorId,DeviceInfo.deviceId); */			for(i=0; i<NUM_IDS_DEFINED; i++)			{				if(((unsigned short)DeviceInfo.vendorId==(unsigned short)IDpciDevices[i].PciVenId) &&=20					((unsigned short)DeviceInfo.deviceId==(unsigned short)IDpciDevices[i].PciDevId))				{					printf ("%.5x  %.5x  %.5x  %.5x  %.5x  %.5x < %s %s >\n",						busNo, deviceNo, 0,(unsigned short)DeviceInfo.vendorId,						(unsigned short)DeviceInfo.deviceId, u.classCode,						IDpciDevices[i].VendorName,IDpciDevices[i].DeviceName);				}			}			printf("vendorId    0x%.5x\n",(unsigned short)DeviceInfo.vendorId);	/* vendor ID */			printf("deviceId    0x%.5x\n",(unsigned short)DeviceInfo.deviceId);	/* device ID */			printf("command     0x%.5x\n",(unsigned short)DeviceInfo.command);	/* command register */			printf("status      0x%.5x\n",(unsigned short)DeviceInfo.status);	/* status register */			printf("revisionrId 0x%.3x\n",(unsigned char )DeviceInfo.revisionId);	/* revision ID */			printf("classCode   0x%.3x\n",(unsigned char )DeviceInfo.classCode);	/* class code */			printf("subClass    0x%.3x\n",(unsigned char )DeviceInfo.subClass);	/* sub class code */			printf("progIf      0x%.3x\n",(unsigned char )DeviceInfo.progIf);	/* programming interface */			printf("cacheLine   0x%.3x\n",(unsigned char )DeviceInfo.cacheLine);	/* cache line */			printf("latency     0x%.3x\n",(unsigned char )DeviceInfo.latency);	/* latency time */			printf("headerType  0x%.3x\n",(unsigned char )DeviceInfo.headerType);	/* header type */			printf("bist        0x%.3x\n",(unsigned char )DeviceInfo.bist);		/* BIST */			printf("base0       0x%.8x\n",(unsigned int  )DeviceInfo.base0);	/* base address 0 */			printf("base1       0x%.8x\n",(unsigned int  )DeviceInfo.base1);	/* base address 1 */			printf("base2       0x%.8x\n",(unsigned int  )DeviceInfo.base2);	/* base address 2 */			printf("base3       0x%.8x\n",(unsigned int  )DeviceInfo.base3);	/* base address 3 */			printf("base4       0x%.8x\n",(unsigned int  )DeviceInfo.base4);	/* base address 4 */			printf("base5       0x%.8x\n",(unsigned int  )DeviceInfo.base5);	/* base address 5 */			printf("cis         0x%.8x\n",(unsigned int  )DeviceInfo.cis);		/* cardBus CIS pointer */			printf("subVendorId 0x%.5x\n",(unsigned short)DeviceInfo.subVendorId);	/* sub system vendor ID */			printf("subSystemId 0x%.5x\n",(unsigned short)DeviceInfo.subSystemId);	/* sub system ID */			printf("romBase     0x%.8x\n",(unsigned int  )DeviceInfo.romBase);	/* expansion ROM base address */			printf("reserved0   0x%.8x\n",(unsigned int  )DeviceInfo.reserved0);	/* reserved */			printf("reserved1   0x%.8x\n",(unsigned int  )DeviceInfo.reserved1);	/* reserved */			printf("intLine     0x%.3x\n",(unsigned char )DeviceInfo.intLine);	/* interrupt line */			printf("intPin      0x%.3x\n",(unsigned char )DeviceInfo.intPin);	/* interrupt pin */			printf("minGrant    0x%.3x\n",(unsigned char )DeviceInfo.minGrant);	/* min Grant */			printf("maxLatency  0x%.3x\n",(unsigned char )DeviceInfo.maxLatency);	/* max Latency */		}	}	return (OK);}/* This routine writes data to PLX's local configuration      *//* registers.  The data is written as little endian so we do  *//* a 32 bit endian swap before we write the data              *//* Remember.... eprom data requires no data swappage          */void PciDevWriteLocCfgReg(int PCIBase,int RegAddress, int Data){		int SwapData=0;		SwapData = (Data & 0xff) << 24;		SwapData |= (Data & 0xff00) << 8;		SwapData |= (Data & 0xff0000) >> 8;		SwapData |= (Data & 0xff000000) >> 24;		*(volatile int *)(PCIBase+RegAddress) = SwapData;}int PciDevReadLocCfgReg(int PCIBase, int RegAddress){		int SwapData=0,Data;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品黄色在线观看| 亚洲精品免费在线| 色狠狠综合天天综合综合| 天堂蜜桃一区二区三区| 欧美经典一区二区| 欧美色窝79yyyycom| 粉嫩av一区二区三区在线播放| 亚洲国产日韩在线一区模特 | 国产99精品视频| 日韩中文字幕亚洲一区二区va在线 | 成人午夜精品在线| 日韩电影免费一区| 亚洲国产中文字幕在线视频综合| 国产欧美日韩在线看| 91精品国产aⅴ一区二区| 色综合天天综合狠狠| 国产麻豆精品95视频| 日韩av电影天堂| 亚洲一区二三区| 亚洲男同性恋视频| 国产精品久久久久久久午夜片| 欧美大度的电影原声| 欧美日韩国产综合久久| 91黄色免费观看| 99久久精品费精品国产一区二区| 国产美女精品一区二区三区| 视频一区欧美日韩| 偷偷要91色婷婷| 午夜精品久久久久久久99水蜜桃| 亚洲青青青在线视频| 中文字幕中文字幕一区| 国产亚洲女人久久久久毛片| 精品对白一区国产伦| 日韩美女主播在线视频一区二区三区| 欧美三级日本三级少妇99| 一本色道亚洲精品aⅴ| av在线一区二区| 91丨porny丨首页| 色综合久久99| 精品视频免费在线| 欧美精品日韩一本| 日韩欧美国产一区在线观看| 日韩视频一区二区| 精品国产99国产精品| 2021国产精品久久精品| 精品国产乱子伦一区| 久久久久亚洲综合| 日本一区二区高清| 亚洲天堂2016| 亚洲午夜国产一区99re久久| 五月激情六月综合| 捆绑调教美女网站视频一区| 奇米色777欧美一区二区| 极品尤物av久久免费看| 国产成人在线网站| 91在线免费视频观看| 欧美日韩一区国产| 欧美sm美女调教| 欧美高清在线一区二区| 亚洲乱码中文字幕| 日韩高清在线电影| 国产精品羞羞答答xxdd | 日韩欧美高清dvd碟片| 精品黑人一区二区三区久久| 国产人成亚洲第一网站在线播放| 国产精品福利av| 亚洲成a人片在线不卡一二三区| 日韩综合在线视频| 丰满少妇久久久久久久| 91福利资源站| 欧美成人video| 国产精品国产自产拍高清av王其 | 国产欧美日韩精品a在线观看| 亚洲色图欧洲色图婷婷| 五月婷婷欧美视频| 国产福利精品导航| 欧美日韩免费一区二区三区视频| 精品国产乱码久久久久久影片| 国产精品久久三区| 日韩av网站在线观看| 国产·精品毛片| 欧美亚洲精品一区| 国产欧美精品日韩区二区麻豆天美| 亚洲精品午夜久久久| 加勒比av一区二区| 欧美综合亚洲图片综合区| 日韩久久精品一区| 亚洲女性喷水在线观看一区| 久久精品国产久精国产爱| av动漫一区二区| 欧美一区2区视频在线观看| 国产精品二区一区二区aⅴ污介绍| 亚洲1区2区3区视频| 国产91清纯白嫩初高中在线观看| 欧美日韩第一区日日骚| 一区在线中文字幕| 国产一区二区三区在线观看免费 | 欧美一区二区三区公司| 中文字幕一区二区三区在线观看| 日本不卡一二三| 日本韩国精品在线| 亚洲国产精品黑人久久久| 人人精品人人爱| 在线观看视频一区二区 | 中文字幕免费不卡| 麻豆精品在线看| 欧美精品一级二级三级| 国产精品不卡在线| 国产成人在线免费观看| 日韩三级免费观看| 偷窥国产亚洲免费视频| 色老头久久综合| 亚洲视频你懂的| jlzzjlzz亚洲女人18| 欧美精品一区二区三区蜜桃| 亚洲成人精品一区二区| 色婷婷国产精品| 中文字幕亚洲不卡| 不卡视频在线看| 国产欧美一区二区精品久导航 | 国产乱妇无码大片在线观看| 欧美高清视频www夜色资源网| 亚洲免费观看高清在线观看| 成人一区在线看| 国产色一区二区| 国产成人精品1024| 国产日韩欧美综合一区| 国产成人av在线影院| 久久综合九色欧美综合狠狠| 免费在线看成人av| 欧美一区二区三区免费大片| 日韩精品1区2区3区| 欧美日韩一区不卡| 无码av免费一区二区三区试看| 欧美日韩一区二区三区免费看 | 麻豆精品在线播放| 精品国产一区二区三区四区四| 婷婷夜色潮精品综合在线| 欧美日韩一区视频| 蜜桃av一区二区| 精品国产91乱码一区二区三区| 国产综合久久久久影院| 亚洲精品在线三区| 国产在线精品一区二区夜色 | 国产精品久久久久三级| 99精品热视频| 亚洲综合在线视频| 欧美日韩国产高清一区二区三区| 日韩电影一区二区三区四区| 欧美一级二级在线观看| 久久精品国产99久久6| 久久久久久黄色| 91色porny在线视频| 亚洲午夜久久久久久久久久久| 欧美一区永久视频免费观看| 蜜桃视频在线观看一区| 国产午夜精品在线观看| 成人高清免费在线播放| 一区二区三区视频在线看| 欧美亚洲尤物久久| 精品一区二区三区的国产在线播放| 欧美精品一区二区三区在线| 成人一区在线观看| 亚洲www啪成人一区二区麻豆| 欧美一卡二卡三卡四卡| 丁香激情综合国产| 亚洲高清免费观看高清完整版在线观看 | 日韩欧美的一区| 波多野结衣在线aⅴ中文字幕不卡| 亚洲精品高清视频在线观看| 制服.丝袜.亚洲.另类.中文| 国产一区二区三区| 亚洲综合色在线| 精品国产成人系列| 色八戒一区二区三区| 美女视频一区二区三区| 国产精品女上位| 欧美一区二区三区四区五区| 国产电影一区在线| 亚洲电影一级片| 国产清纯白嫩初高生在线观看91| 91久久人澡人人添人人爽欧美| 美腿丝袜亚洲一区| 亚洲欧美国产77777| 精品少妇一区二区三区在线视频| 99精品久久久久久| 国产一区二区不卡在线 | 午夜精品久久久| 国产精品久久久一本精品| 制服丝袜成人动漫| 91无套直看片红桃| 国模一区二区三区白浆| 亚洲制服丝袜在线| 国产精品欧美一区喷水| 正在播放一区二区| 91成人在线精品| eeuss国产一区二区三区| 美脚の诱脚舐め脚责91 | 日本美女视频一区二区| 亚洲丝袜自拍清纯另类|