歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Solaris的pciutils


最近在Solaris上成功編譯了pciutils,想試試的朋友可以從下面的地址下載:
一直覺得PCI很神秘,看看了pciutils的代碼和PCI Local Bus Specification後,對PCI稍微有了點了解,我覺得pciutils有兩個關鍵的函數,一個conf1_read,另外一個是conf1_write。這兩個函數完全是根據PCI Local Bus Specification下面這一節編寫的:
3.2.2.3.2. Software Generation of Configuration Transactions
conf1_read(struct pci_dev *d, int pos, byte *buf, int len)
{
...
outl(0x80000000 | ((d->bus & 0xff) << 16) | (PCI_DEVFN(d->dev, d->func) << 8) | (pos&~3), 0xcf8);
...
}
bit31: enable
bit16-bit23: Bus Number
bit11-bit15: Device Number
bit8-bit10: Function Number
bit2-bit7: Register Number
將這些位在I/O Port 0xcf8設定好之後,就可以從I/O port 0xcfc讀出相應的值了。
當然進行這些操作之前需要改變I/O privilege level
SunOS: sysi86(SI86V86, V86SC_IOPL, PS_IOPL)
Linux: iopl(3)
Copyright © Linux教程網 All Rights Reserved