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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? showpci.c

?? linux 下的PCI設(shè)備枚舉源碼 此文件非常復(fù)雜
?? C
字號(hào):
#include <linux/config.h>#include <linux/module.h>#include <linux/pci.h>#include <linux/list.h>#include <linux/fs.h>#include <linux/string.h>unsigned short vendor = 0;unsigned short device = 0;unsigned short class = 0;unsigned short detail = 0;static void print_resource( struct resource *res ){	if( res->name && res->flags ) {		//printk( "<1>name:  %s\n", res->name );		printk( "<1>   flags   : 0x%08x   ", (unsigned int)res->flags );		if( res->flags & IORESOURCE_UNSET )			printk( "UNSET " );		if( res->flags & IORESOURCE_AUTO )			printk( "AUTO " );		if( res->flags & IORESOURCE_BUSY )			printk( "BUSY " );		if( res->flags & IORESOURCE_PREFETCH )			printk( "PREFETCH " );		if( res->flags & IORESOURCE_READONLY )			printk( "READONLY " );		if( res->flags & IORESOURCE_CACHEABLE )			printk( "CACHE " );		if( res->flags & IORESOURCE_RANGELENGTH )			printk( "RANGELENGTH " );		if( res->flags & IORESOURCE_SHADOWABLE )			printk( "SHADOW " );		if( res->flags & IORESOURCE_BUS_HAS_VGA )			printk( "BUS_HAS_VGA " );		if( res->flags & IORESOURCE_IO )			printk( "IO " );		if( res->flags & IORESOURCE_MEM ) {			printk( "MEM [ISA: " );			if(res->flags &IORESOURCE_MEM_WRITEABLE )				printk( "WRITE " );			if(res->flags &IORESOURCE_MEM_CACHEABLE )				printk( "CACHE " );			if(res->flags &IORESOURCE_MEM_RANGELENGTH )				printk( "RANGE " );			if(res->flags &IORESOURCE_MEM_TYPE_MASK )				printk( "TYPEMASK " );			if(res->flags &IORESOURCE_MEM_8BIT )				printk( "8BIT " );			if(res->flags &IORESOURCE_MEM_16BIT )				printk( "16BIT " );			if(res->flags &IORESOURCE_MEM_8AND16BIT )				printk( "8AND16BIT " );			if(res->flags &IORESOURCE_MEM_SHADOWABLE )				printk( "SHADOW " );			if(res->flags &IORESOURCE_MEM_EXPANSIONROM )				printk( "EXPANSIONROM " );			printk( "] " );		}		if( res->flags & IORESOURCE_IRQ ) {			printk( "IRQ [ISA:" );			if(res->flags &IORESOURCE_IRQ_HIGHEDGE )				printk( "HIGHEDGE " );			if(res->flags &IORESOURCE_IRQ_LOWEDGE )				printk( "LOWEDGE " );			if(res->flags &IORESOURCE_IRQ_HIGHLEVEL )				printk( "HIGHLEVEL " );			if(res->flags &IORESOURCE_IRQ_LOWLEVEL )				printk( "LOWLEVEL " );			printk( "] " );		}		if( res->flags & IORESOURCE_DMA ) {			printk( "DMA [ISA:" );			if(res->flags &IORESOURCE_DMA_TYPE_MASK )				printk( "TYPEMASK " );			if(res->flags &IORESOURCE_DMA_8BIT )				printk( "8BIT " );			if(res->flags &IORESOURCE_DMA_8AND16BIT )				printk( "8AND16BIT " );			if(res->flags &IORESOURCE_DMA_16BIT )				printk( "16BIT " );			if(res->flags &IORESOURCE_DMA_MASTER )				printk( "MASTER " );			if(res->flags &IORESOURCE_DMA_BYTE )				printk( "BYTE " );			if(res->flags &IORESOURCE_DMA_WORD )				printk( "WORD " );			if(res->flags &IORESOURCE_DMA_SPEED_MASK )				printk( "SPEEDMASK " );			if(res->flags &IORESOURCE_DMA_COMPATIBLE )				printk( "COMPIT " );			if(res->flags &IORESOURCE_DMA_TYPEA )				printk( "TYPEA " );			if(res->flags &IORESOURCE_DMA_TYPEB )				printk( "TYPEB " );			if(res->flags &IORESOURCE_DMA_TYPEF )				printk( "TYPEF " );			printk( "] " );		}		printk( "\n" );		printk( "<1>   range   : 0x%08x--0x%08x\n", (unsigned int)res->start, (unsigned int)res->end );	}}static void printmsg( struct pci_dev *dev ) {	if( detail ) {		printk( "<1>name       : %s\n", dev->name );		printk( "<1>slot name  : %s\n", dev->slot_name );		printk( "<1>slot       : %d, func: %d\n", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn) );		printk( "<1>vendor     : 0x%04x, sub: 0x%04x\n", dev->vendor, dev->subsystem_vendor );		printk( "<1>device     : 0x%04x, sub: 0x%04x\n", dev->device, dev->subsystem_device );		printk( "<1>class      : 0x%04x, prog: 0x%02x\n", (unsigned short)(dev->class>>8), (unsigned char)dev->class );		printk( "<1>irq        : %d\n", dev->irq );		printk( "<1>hdr type   : %d", dev->hdr_type&0x7f );		if( dev->hdr_type&0x80 )			printk( " (Multi Func)\n" );		else			printk( " (Singl Func)\n" );		int i;		printk( "<1>resource   :\n" );		for( i=0; i<DEVICE_COUNT_RESOURCE; i++ ) {			print_resource( &dev->resource[i] );		}		for( i=0; i<DEVICE_COUNT_DMA; i++ ) {			print_resource( &dev->dma_resource[i] );		}		for( i=0; i<DEVICE_COUNT_IRQ; i++ ) {			print_resource( &dev->irq_resource[i] );		}		printk( "\n" );	} else {		printk( "<1>name    : %s\n", dev->name );		printk( "<1>value   : 0x%04x | 0x%04x | 0x%04x | 0x%02x | 0x%02x\n",			dev->vendor,			dev->device,			(unsigned short)(dev->class>>8),			dev->irq,			PCI_SLOT( dev->devfn ) );		printk( "<1>        : vendor | device | class  | irq  | slot\n" );		printk( "\n" );	}}static int __init showpci_init( void ){	struct pci_dev *dev = NULL;	int count = 0;	struct list_head *n = pci_devices.next;	while( n!=&pci_devices ) {		dev = pci_dev_g( n );		n = n->next;		if( !vendor && !device && !class ) {			printmsg( dev );			count ++;			continue;		}		if( !vendor && !device && class ) {			if( class==(unsigned short)((dev->class>>16)&0x0f) ) {				printmsg( dev );				count ++;			}			continue;		}		if( !vendor && device && !class ) {			if( device==dev->device ) {				printmsg( dev );				count ++;			}			continue;		}		if( !vendor && device && class ) {			if( device==dev->device && class==(unsigned short)((dev->class>>16)&0x0f) ) {				printmsg( dev );				count ++;			}			continue;		}		if( vendor && !device && !class ) {			if( vendor==dev->vendor ) {				printmsg( dev );				count ++;			}			continue;		}		if( vendor && !device && class ) {			if( vendor==dev->vendor && class==(unsigned short)((dev->class>>16)&0x0f)) {				printmsg( dev );				count ++;			}			continue;		}		if( vendor && device && !class ) {			if( vendor==dev->vendor && device==dev->device) {				printmsg( dev );				count ++;			}			continue;		}		if( vendor && device && class ) {			if( vendor==dev->vendor && device==dev->device && class==(unsigned short)((dev->class>>16)&0x0f) ) {				printmsg( dev );				count ++;			}			continue;		}	}	printk( "<1>device count: %d\n\n", count );	return 0;}static void __exit showpci_exit( void ){}module_init (showpci_init);module_exit (showpci_exit);MODULE_LICENSE( "GPL" );MODULE_AUTHOR( "enLinux" );MODULE_PARM( vendor, "i" );MODULE_PARM( device, "i" );MODULE_PARM( class, "i" );MODULE_PARM( detail, "i" );

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清成人免费播放| 精品国产一区二区国模嫣然| 国产一区二区三区黄视频 | 国内精品嫩模私拍在线| 亚洲一区二区在线免费观看视频| 久久中文娱乐网| 777xxx欧美| 欧美午夜精品一区二区三区| www.成人在线| 成人一区二区在线观看| 久久不见久久见免费视频7| 午夜欧美大尺度福利影院在线看 | 国产三级一区二区| 日韩精品自拍偷拍| 欧美精品一区二区在线观看| 欧美精品在线视频| 欧美日韩国产电影| 色综合久久综合| 欧美午夜精品久久久久久超碰| gogogo免费视频观看亚洲一| 欧美剧情电影在线观看完整版免费励志电影 | 欧美日韩免费高清一区色橹橹 | 日韩视频永久免费| 欧美理论电影在线| 欧美福利视频一区| 欧美一区二区三区在| 911精品国产一区二区在线| 91精品婷婷国产综合久久竹菊| 欧美日韩精品一区视频| 欧美日韩国产小视频| 欧美日韩卡一卡二| 精品精品国产高清一毛片一天堂| 精品少妇一区二区三区免费观看| 欧美不卡123| 欧美三级韩国三级日本一级| 日韩一级大片在线| 久久这里只有精品6| 国产婷婷精品av在线| ...xxx性欧美| 亚洲一区二区三区四区不卡 | 国产一区二区影院| 99精品久久99久久久久| 色94色欧美sute亚洲线路一久| 在线中文字幕一区二区| 欧美午夜精品久久久久久孕妇| 91精品啪在线观看国产60岁| 日韩欧美激情一区| 久久精品人人做| 亚洲一区二区三区四区五区黄| 亚洲成人午夜电影| 久久精品国产亚洲aⅴ| 成人免费视频网站在线观看| 91蝌蚪porny| 91麻豆精品国产| 日本一区二区三级电影在线观看| 亚洲视频免费看| 日韩高清不卡一区二区| 激情图片小说一区| 在线观看亚洲专区| 日韩一区二区精品葵司在线| 国产午夜一区二区三区| 一区二区视频在线| 蜜臀99久久精品久久久久久软件| 欧美一区二区三区男人的天堂| 岛国精品在线观看| 91色porny在线视频| 777a∨成人精品桃花网| 国产日韩欧美高清| 亚洲国产精品久久久久秋霞影院 | 亚洲日本电影在线| 丝袜美腿亚洲色图| 丁香激情综合五月| 91久久免费观看| 国产日韩精品一区二区三区 | 国产精品99久久久久久久vr| 99精品久久只有精品| 日韩丝袜情趣美女图片| 亚洲综合男人的天堂| 激情小说亚洲一区| 欧美日韩一区二区三区视频| 久久久www成人免费毛片麻豆| 亚洲男人的天堂在线aⅴ视频 | 欧美日韩国产美女| 国产欧美一区视频| 日本欧美久久久久免费播放网| 成人黄色电影在线| 日韩一级完整毛片| 一区二区三区毛片| 国产精品99久久久久久有的能看| 日韩欧美一区二区不卡| 一区二区免费在线| 国产a精品视频| 国内成人自拍视频| 欧美mv日韩mv国产| 午夜在线电影亚洲一区| 91亚洲精品久久久蜜桃| 久久久久久久久久久久久女国产乱| 亚洲大片精品永久免费| 一区二区三区高清不卡| 日韩不卡免费视频| 韩国女主播一区| 欧美精品一卡二卡| 午夜精品久久久久久久久| 色婷婷综合久色| 成人免费在线视频观看| 91亚洲精品一区二区乱码| 国产精品美女一区二区| 不卡的av在线播放| 国产精品久久久久一区二区三区共| 国产高清成人在线| 国产精品情趣视频| av一区二区三区黑人| 亚洲欧洲精品一区二区三区| 成人污视频在线观看| 国产精品久久久久久久浪潮网站| 成人综合婷婷国产精品久久 | 精品国产区一区| 国模冰冰炮一区二区| 久久婷婷综合激情| 成人美女视频在线看| 中文字幕佐山爱一区二区免费| 97久久精品人人爽人人爽蜜臀| 亚洲黄一区二区三区| 欧美私人免费视频| 日韩精彩视频在线观看| 日韩三级.com| 国产乱码精品一区二区三区av| 久久久国产一区二区三区四区小说 | 欧美视频一区在线| 婷婷亚洲久悠悠色悠在线播放 | 五月激情综合网| 欧美一级片在线| 国产大陆a不卡| 亚洲女性喷水在线观看一区| 欧美三区在线视频| 激情五月婷婷综合网| 中文字幕乱码久久午夜不卡 | 欧美精品少妇一区二区三区| 蜜臀精品一区二区三区在线观看| 日韩欧美国产wwwww| 国产激情视频一区二区三区欧美 | 成人app下载| 亚洲午夜影视影院在线观看| 91精品国产91久久久久久最新毛片 | 精品国产91久久久久久久妲己| 丁香桃色午夜亚洲一区二区三区| 亚洲欧美一区二区久久| 欧美疯狂性受xxxxx喷水图片| 国产在线视频一区二区| 综合分类小说区另类春色亚洲小说欧美| 欧美色图天堂网| 国内精品自线一区二区三区视频| 国产精品毛片久久久久久| 欧美亚洲国产bt| 国产乱子轮精品视频| 一区二区久久久久久| 久久老女人爱爱| 在线观看日韩精品| 国产福利一区二区三区在线视频| 亚洲视频电影在线| 精品福利一区二区三区| 欧美中文字幕一区二区三区亚洲| 久久精品国产99国产| 亚洲精品国产精华液| 久久久国产一区二区三区四区小说| 91麻豆精东视频| 国产一区二区精品久久99| 亚洲成在人线在线播放| 欧美国产欧美综合| 日韩欧美一区二区在线视频| 色哟哟亚洲精品| 国产精品影视网| 强制捆绑调教一区二区| 亚洲日本成人在线观看| 国产视频一区在线播放| 日韩一区二区免费在线电影| 色国产综合视频| 成人永久免费视频| 久草在线在线精品观看| 亚洲国产综合在线| 亚洲婷婷综合色高清在线| 久久亚洲免费视频| 日韩亚洲欧美一区| 欧美少妇xxx| 91热门视频在线观看| 国产91综合一区在线观看| 免费成人在线观看视频| 亚洲国产视频直播| 亚洲日本电影在线| 中文字幕一区二区三区在线播放 | 免费成人av在线播放| 亚洲综合一二区| 中文字幕一区免费在线观看| 国产日韩欧美综合一区| www国产成人| 2020国产成人综合网| 精品少妇一区二区三区在线播放 | 中文字幕一区二区三区av| 久久久国产午夜精品| 精品国产青草久久久久福利|