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

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

?? pciconfigshow.c

?? IXP425的BSP代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    printf ("sub class code =              0x%.2x\n", (uchar_t)pB->subClass);    printf ("programming interface =       0x%.2x\n", (uchar_t)pB->progIf);	    printf ("cache line =                  0x%.2x\n", (uchar_t)pB->cacheLine);    printf ("latency time =                0x%.2x\n", (uchar_t)pB->latency);    printf ("header type =                 0x%.2x\n", (uchar_t)pB->headerType);    printf ("BIST =                        0x%.2x\n", (uchar_t)pB->bist);    printf ("base address 0 =              0x%.8x\n", pB->base0);	    printf ("base address 1 =              0x%.8x\n", pB->base1);	    printf ("primary bus number =          0x%.2x\n", (uchar_t)pB->priBus);	    printf ("secondary bus number =        0x%.2x\n", (uchar_t)pB->secBus);	    printf ("subordinate bus number =      0x%.2x\n", (uchar_t)pB->subBus);	    printf ("secondary latency timer =     0x%.2x\n", (uchar_t)pB->secLatency);    printf ("IO base =                     0x%.2x\n", (uchar_t)pB->ioBase);    printf ("IO limit =                    0x%.2x\n", (uchar_t)pB->ioLimit);    printf ("secondary status =            0x%.4x\n", (ushort_t)pB->secStatus);    printf ("memory base =                 0x%.4x\n", (ushort_t)pB->memBase);    printf ("memory limit =                0x%.4x\n", (ushort_t)pB->memLimit);	    printf ("prefetch memory base =        0x%.4x\n", (ushort_t)pB->preBase);    printf ("prefetch memory limit =       0x%.4x\n", (ushort_t)pB->preLimit);    printf ("prefetch memory base upper =  0x%.8x\n", pB->preBaseUpper);    printf ("prefetch memory limit upper = 0x%.8x\n", pB->preLimitUpper);    printf ("IO base upper 16 bits =       0x%.4x\n", (ushort_t)pB->ioBaseUpper);    printf ("IO limit upper 16 bits =      0x%.4x\n", (ushort_t)pB->ioLimitUpper);    printf ("expansion ROM base address =  0x%.8x\n", pB->romBase);    printf ("interrupt line =              0x%.2x\n", (uchar_t)pB->intLine);    printf ("interrupt pin =               0x%.2x\n", (uchar_t)pB->intPin);	    printf ("bridge control =              0x%.4x\n", (ushort_t)pB->control);    }/*********************************************************************** pciFuncBarShow - show the value contained in a BAR** This function decodes the value of a single BAR on a single* bus,device,function, and prints the information to the terminal.** RETURNS: N/A.*/LOCAL void pciFuncBarShow    (    int bus,			/* bus */    int device,			/* device */    int function,		/* function */    int barNo			/* BAR index */    )    {    UINT32 barVal;    int space;    int prefetch;    int offset;    offset = PCI_CFG_BASE_ADDRESS_0 + (barNo * sizeof(UINT32));    pciConfigInLong(bus, device, function,	    	offset, &barVal);    /* check if BAR implemented */    if ( barVal == 0 || barVal == 0xffffffff )	return;    if ( ( barVal & 0x01 ) == 0x01 )	printf("\tbar%d in I/O space @ 0x%08x\n",			barNo, (barVal & (~0x00000001)));    else	{	prefetch = ( barVal >> 3 ) & 0x01;	space = (barVal >> 1 ) & 0x03;	barVal = barVal & ~ 0x0f;	printf("\tbar%d in %s%s mem space @ 0x%08x\n", barNo,	    prefetch ? "prefetchable " : "",	    ( space == 0x00 ) ? "32-bit" :	    ( space == 0x02) ? "64-bit" :	    "reserved",	    barVal);	}    }/*********************************************************************** pciStatusWordShow - show the decoded value of the status word.** This routine reads the status word from the specified* bus,device,function, and prints it in a human-readable format.** RETURNS: OK, always.*/LOCAL STATUS pciStatusWordShow    (    int bus,		/* bus */    int device,		/* device */    int function	/* function */    )    {    UINT16 status;    pciConfigInWord (bus, device, function, PCI_CFG_STATUS, &status);    printf("\tstatus=0x%04x (", status);    if ( status & PCI_STATUS_NEW_CAP )	printf(" CAP");    if ( status & PCI_STATUS_66_MHZ )	printf(" 66MHZ");    if ( status & PCI_STATUS_UDF )	printf(" UDF");    if ( status & PCI_STATUS_FAST_BB )	printf(" FBTB");    if ( status & PCI_STATUS_DATA_PARITY_ERR )	printf(" DATA_PARITY_ERR");    printf(" DEVSEL=%x", ((status & 0x0600) >> 9 ));    if ( status & PCI_STATUS_TARGET_ABORT_GEN )	printf(" TGT_ABORT_GEN");    if ( status & PCI_STATUS_TARGET_ABORT_RCV )	printf(" TGT_ABORT_RCV");    if ( status & PCI_STATUS_MASTER_ABORT_RCV )	printf(" MSTR_ABORT_RCV");    if ( status & PCI_STATUS_ASSERT_SERR )	printf(" ASSERT_SERR");    if ( status & PCI_STATUS_PARITY_ERROR )	printf(" PARITY_ERR");    printf(" )\n");    return(OK);    }/*********************************************************************** pciCmdWordShow - show the decoded value of the command word** This routine reads the command word from the specified* bus,device,function, and prints the value in a human readable* format.** RETURNS: OK, always.*/LOCAL STATUS pciCmdWordShow    (    int bus,		/* bus */    int device,		/* device */    int function	/* function */    )    {    UINT16 command;    pciConfigInWord (bus,device,function,		PCI_CFG_COMMAND, &command);    printf("\tcommand=0x%04x (", command);    if ( command & PCI_CMD_IO_ENABLE )	printf(" IO_ENABLE");    if ( command & PCI_CMD_MEM_ENABLE )	printf(" MEM_ENABLE");    if ( command & PCI_CMD_MASTER_ENABLE )	printf(" MASTER_ENABLE");    if ( command & PCI_CMD_MON_ENABLE )	printf(" MON_ENABLE");    if ( command & PCI_CMD_WI_ENABLE )	printf(" WI_ENABLE");    if ( command & PCI_CMD_SNOOP_ENABLE )	printf(" SNOOP_ENABLE");    if ( command & PCI_CMD_PERR_ENABLE )	printf(" PERR_ENABLE");    if ( command & PCI_CMD_WC_ENABLE )	printf(" WC_ENABLE");    if ( command & PCI_CMD_SERR_ENABLE )	printf(" SERR_ENABLE");    if ( command & PCI_CMD_FBTB_ENABLE )	printf(" FBTB_ENABLE");    printf(" )\n");    return(OK);    }/*********************************************************************** pciConfigStatusWordShow - show the decoded value of the status word** This routine reads the value of the status word for the specified* bus,device,function and prints the value in a human-readable format.** RETURNS: OK, always.*/STATUS pciConfigStatusWordShow    (    int bus,		/* bus */    int device,		/* device */    int function,	/* function */    void *pArg		/* ignored */    )    {    printf("[%d,%d,%d] ",bus,device,function);    pciStatusWordShow(bus,device,function);    return(OK);    }/*********************************************************************** pciConfigCmdWordShow - show the decoded value of the command word** This routine reads the value of the command word for the specified* bus,device,function and prints the value in a human-readable format.** RETURNS: OK, always.*/STATUS pciConfigCmdWordShow    (    int bus,		/* bus */    int device,		/* device */    int function,	/* function */    void *pArg		/* ignored */    )    {    printf("[%d,%d,%d] ",bus,device,function);    pciCmdWordShow(bus,device,function);    return(OK);    }/*********************************************************************** pciConfigFuncShow - show configuration details about a function** This routine reads various information from the specified* bus,device,function, and prints the information in a human-readable* format.** RETURNS: OK, always.*/STATUS pciConfigFuncShow    (    int bus,		/* bus */    int device,		/* device */    int function,	/* function */    void *pArg		/* ignored */    )    {    UINT8  clsCode;    UINT8  subClass;    UINT8  secBus;    int    numBars = 6;	/* most devices have 6, but not bridges */    UINT16 memBase;    UINT16 memLimit;    UINT32 memBaseU;    UINT32 memLimitU;    UINT8  ioBase;    UINT8  ioLimit;    UINT16 ioBaseU;    UINT16 ioLimitU;    UINT8  headerType;    UINT16 cmdReg;    printf("[%d,%d,%d] type=",bus,device,function);    pciConfigInByte (bus, device, function,			     PCI_CFG_CLASS, &clsCode);    pciConfigInByte(bus,device,function,			     PCI_CFG_HEADER_TYPE, &headerType);    if ( ( headerType & PCI_HEADER_TYPE_MASK ) == 1 )	{	/* type 1 header has only 2 BARs */	numBars = 2;	}    switch (clsCode)        {	case PCI_CLASS_PRE_PCI20: printf("BEFORE_STD\n"); break;	case PCI_CLASS_MASS_STORAGE: printf("MASS STORAGE\n"); break;	case PCI_CLASS_NETWORK_CTLR: printf("NET_CNTLR\n"); break;	case PCI_CLASS_DISPLAY_CTLR: printf("DISP_CNTLR\n"); break;	case PCI_CLASS_MMEDIA_DEVICE: printf("MULTI_MEDIA\n"); break;	case PCI_CLASS_MEM_CTLR: printf("MEM_CNTLR\n"); break;	case PCI_CLASS_COMM_CTLR: printf("COMMUNICATION\n"); break;	case PCI_CLASS_BASE_PERIPH: printf("PERIPHERAL\n"); break;	case PCI_CLASS_INPUT_DEVICE: printf("INPUT\n"); break;	case PCI_CLASS_DOCK_DEVICE: printf("DOCKING STATION\n"); break;	case PCI_CLASS_PROCESSOR: printf("PROCESSOR\n"); break;	case PCI_CLASS_SERIAL_BUS: printf("SERIAL BUS\n"); break;	case PCI_CLASS_WIRELESS: printf("WIRELESS\n"); break;	case PCI_CLASS_INTLGNT_IO: printf("INTELLIGENT_IO\n"); break;	case PCI_CLASS_SAT_COMM: printf("SATELLITE\n"); break;	case PCI_CLASS_EN_DECRYPTION: printf("ENCRYPTION DEV\n"); break;	case PCI_CLASS_DAQ_DSP: printf("DATA ACQUISITION DEV\n"); break;	case PCI_CLASS_UNDEFINED: printf("OTHER DEVICE\n"); break;	case PCI_CLASS_BRIDGE_CTLR:	    secBus = 0;	    pciConfigInByte (bus, device, function,				 PCI_CFG_SUBCLASS, &subClass);	    switch (subClass)		{		case PCI_SUBCLASS_HOST_PCI_BRIDGE: 		    printf("HOST"); 		    break;		case PCI_SUBCLASS_ISA_BRIDGE:		    printf("ISA");		    break;		case PCI_SUBCLASS_BRDG_EISA:		    printf("EISA");		    break;		case PCI_SUBCLASS_BRDG_MCA:		    printf("MC");		    break;		case PCI_SUBCLASS_P2P_BRIDGE:		    printf("P2P");		    pciConfigInByte (bus, device, function,				PCI_CFG_SECONDARY_BUS, &secBus);		    break;		case PCI_SUBCLASS_PCMCIA_BRIDGE:		    printf("PCMCIA");		    break;		case PCI_SUBCLASS_BRDG_CARDBUS:		    printf("CARDBUS");		    break;		case PCI_SUBCLASS_BRDG_RACEWAY:		    printf("RACEWAY");		    break;		default:		    printf("UNKNOWN (0x%02x)", subClass);		    break;		}	    printf(" BRIDGE");	    if ( secBus != 0 )		{		printf(" to [%d,0,0]", secBus); 		printf("\n");		pciConfigInWord(bus,device,function,				PCI_CFG_COMMAND, &cmdReg);		if ( cmdReg & PCI_CMD_MEM_ENABLE )		    {		    pciConfigInWord(bus,device,function,				PCI_CFG_MEM_BASE, &memBase);		    pciConfigInWord(bus,device,function,				PCI_CFG_MEM_LIMIT, &memLimit);		    printf("\tbase/limit:\n");		    printf("\t  mem=   0x%04x0000/0x%04xffff\n",			    memBase & 0xfff0, memLimit | 0x000f);		    pciConfigInWord(bus,device,function,				PCI_CFG_PRE_MEM_BASE, &memBase);		    pciConfigInWord(bus,device,function,				PCI_CFG_PRE_MEM_LIMIT, &memLimit);		    if ( ( memBase & 0x000f ) == 0x0001 )			{			/* 64-bit memory */			pciConfigInLong(bus,device,function,					PCI_CFG_PRE_MEM_BASE_U,					&memBaseU);			pciConfigInLong(bus,device,function,					PCI_CFG_PRE_MEM_LIMIT_U,					&memLimitU);			printf("\t  preMem=0x%08x%04x0000/"			       "0x%08x%04xffff\n",			    		memBaseU, memBase & 0xfff0, 			    		memLimitU, memLimit | 0x000f);			}		    else			printf("\t  preMem=0x%04x0000/0x%04xffff\n",			    memBase & 0xfff0, memLimit | 0x000f);		    }		if ( cmdReg & PCI_CMD_IO_ENABLE )		    {		    pciConfigInByte(bus,device,function,					PCI_CFG_IO_BASE, &ioBase);		    pciConfigInByte(bus,device,function,					PCI_CFG_IO_LIMIT, &ioLimit);		    if ( ( ioBase & 0x0f ) == 0x01 )			{			/* 32-bit I/O */			pciConfigInWord(bus,device,function,					PCI_CFG_IO_BASE_U, &ioBaseU);			pciConfigInWord(bus,device,function,					PCI_CFG_IO_LIMIT_U, &ioLimitU);			printf("\t  I/O=   0x%04x%02x00/0x%04x%02xff\n",					ioBaseU, (ioBase & 0xf0),					ioLimitU, (ioLimit | 0x0f));			}		    else			printf("\t  I/O=   0x%02x00/0x%02xff\n",			    (ioBase & 0xf0), (ioLimit | 0x0f));		    }		}	    else		printf("\n");	    break;	default:	    printf("UNKNOWN!\n");        }    pciStatusWordShow(bus, device, function);    pciCmdWordShow(bus, device, function);    pciFuncBarShow(bus, device, function, 0);    pciFuncBarShow(bus, device, function, 1);    if ( numBars > 2 )	{        pciFuncBarShow(bus, device, function, 2);        pciFuncBarShow(bus, device, function, 3);        pciFuncBarShow(bus, device, function, 4);        pciFuncBarShow(bus, device, function, 5);	}    return(OK);    }/*********************************************************************** pciConfigTopoShow - show PCI topology** This routine traverses the PCI bus and prints assorted information* about every device found.  The information is intended to present* the topology of the PCI bus.  In includes: (1) the device type, (2)* the command and status words, (3) for PCI to PCI bridges the memory* and I/O space configuration, and (4) the values of all implemented* BARs.** RETURNS: N/A.*/void pciConfigTopoShow()    {    pciConfigFuncShow(0,0,0,NULL);    pciConfigForeachFunc(0,TRUE,pciConfigFuncShow,NULL);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网站免费| 精品一二线国产| 欧美亚洲综合一区| 亚洲va欧美va人人爽午夜| 欧美综合亚洲图片综合区| 亚洲国产精品嫩草影院| 欧美日韩国产不卡| 久久精品国产999大香线蕉| 精品国产3级a| 不卡的av电影在线观看| 洋洋av久久久久久久一区| 欧美性色综合网| 麻豆国产欧美日韩综合精品二区| 欧美大片日本大片免费观看| 国产老女人精品毛片久久| 国产精品国产成人国产三级| 在线观看一区二区精品视频| 免费在线观看日韩欧美| 国产免费观看久久| 色一情一乱一乱一91av| 毛片av一区二区| 国产精品国产三级国产aⅴ无密码| 91福利国产精品| 国内精品伊人久久久久av影院 | 久久蜜桃av一区二区天堂| 国产91精品久久久久久久网曝门| 亚洲欧美一区二区三区久本道91 | 欧美四级电影网| 国产一区二区三区黄视频| 亚洲日本一区二区| 欧美一级淫片007| gogo大胆日本视频一区| 日本欧美加勒比视频| 中文字幕一区二区三区蜜月| 欧美怡红院视频| 成人免费看的视频| 视频一区二区三区在线| 国产精品美女久久久久久2018| 欧美三级电影在线看| 韩国女主播一区| 亚洲午夜精品网| 中文字幕av一区二区三区免费看| 欧美高清激情brazzers| www.视频一区| 国产在线播放一区二区三区| 亚洲午夜久久久久久久久久久| 国产精品污www在线观看| 91精品国产高清一区二区三区蜜臀 | 日韩一级完整毛片| 欧美在线看片a免费观看| 国产激情视频一区二区三区欧美 | 99久久国产免费看| 日韩国产一二三区| 国产亚洲福利社区一区| 欧美亚洲一区二区在线观看| 国产不卡在线视频| 麻豆精品精品国产自在97香蕉| 亚洲最新视频在线播放| 欧美国产在线观看| 色综合久久久久综合体桃花网| 成人午夜免费电影| 在线视频国内自拍亚洲视频| 欧美女孩性生活视频| 日韩欧美精品在线视频| 2019国产精品| 亚洲人成小说网站色在线| 亚洲成人免费看| 国产一区二区三区精品视频| 成人国产在线观看| 欧美中文字幕一区二区三区| 91.com视频| 国产丝袜在线精品| 伊人婷婷欧美激情| 日韩高清在线电影| 国产精品一区二区免费不卡| av不卡在线观看| 欧美一区二区视频网站| 久久综合久久鬼色中文字| 国产精品久久久久7777按摩| 亚洲图片有声小说| 国产米奇在线777精品观看| 色噜噜狠狠成人网p站| 欧美一区二区大片| 亚洲欧洲国产日本综合| 奇米四色…亚洲| 99在线视频精品| 日韩免费成人网| 亚洲欧美另类综合偷拍| 美女高潮久久久| 91久久精品日日躁夜夜躁欧美| 日韩一卡二卡三卡四卡| 亚洲欧美另类久久久精品2019| 蜜桃视频一区二区三区| 94-欧美-setu| 久久综合色8888| 亚洲国产日韩a在线播放| 国产黄人亚洲片| 欧美一区二区在线视频| 最新国产の精品合集bt伙计| 美女视频黄频大全不卡视频在线播放| 成人av电影在线| 精品欧美久久久| 亚洲午夜免费视频| 99久久免费精品高清特色大片| 日韩免费成人网| 亚洲成人中文在线| 91一区一区三区| 国产日韩欧美一区二区三区乱码| 蜜臀久久99精品久久久画质超高清 | 日韩三级中文字幕| 亚洲激情自拍偷拍| 国产成人午夜片在线观看高清观看| 欧美老年两性高潮| 亚洲日本青草视频在线怡红院| 国产一区二区久久| 日韩欧美专区在线| 亚洲成人黄色影院| 欧美中文字幕一区二区三区 | 国产在线播放一区二区三区| 正在播放一区二区| 亚洲一级二级在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日本韩国一区二区| 国产精品三级久久久久三级| 韩国毛片一区二区三区| 日韩一区二区三区电影| 亚洲bt欧美bt精品777| 色一情一伦一子一伦一区| 国产精品亲子乱子伦xxxx裸| 国产一区二区三区免费在线观看| 精品成人在线观看| 久久精工是国产品牌吗| 欧美成人女星排行榜| 日本aⅴ精品一区二区三区| 在线成人免费视频| 日韩一区欧美二区| 日韩午夜av电影| 韩国av一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲综合一区二区| 在线中文字幕一区二区| 洋洋av久久久久久久一区| 欧美在线999| 亚洲一级二级在线| 欧美精品色综合| 美女视频网站黄色亚洲| 精品处破学生在线二十三| 国产电影一区二区三区| 中文字幕免费观看一区| av在线这里只有精品| 亚洲欧美欧美一区二区三区| 欧美午夜精品久久久久久孕妇| 午夜精品久久久久| 日韩精品中午字幕| 国产精品一区二区三区99| 国产精品久久久久精k8| 在线精品亚洲一区二区不卡| 首页综合国产亚洲丝袜| 精品成人一区二区三区| 不卡av在线免费观看| 洋洋av久久久久久久一区| 欧美一区二区三区精品| 国产精品1区2区3区| 亚洲视频免费看| 欧美片在线播放| 国产大片一区二区| 一区二区三区高清在线| 91麻豆精品国产91久久久| 韩国女主播一区二区三区| 国产精品美女久久久久aⅴ| 色菇凉天天综合网| 男男成人高潮片免费网站| 国产欧美视频在线观看| 欧洲激情一区二区| 国产一区中文字幕| 一区二区三区毛片| 精品欧美一区二区三区精品久久| 97aⅴ精品视频一二三区| 日韩黄色免费电影| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩一区在线| 国产精品一二三四区| 亚洲综合视频在线| 久久精品一区二区三区四区| 欧洲一区在线观看| 久草这里只有精品视频| 亚洲激情综合网| 欧美激情一区三区| 6080国产精品一区二区| 成人18视频在线播放| 美女性感视频久久| 亚洲精品成a人| 中文字幕+乱码+中文字幕一区| 欧美男生操女生| 91日韩一区二区三区| 国产呦精品一区二区三区网站| 五月天激情综合网| 自拍偷自拍亚洲精品播放| 精品国产乱码久久久久久牛牛| 欧美性受xxxx黑人xyx性爽|