PCI バスアクセス用サポート関数

C++ (OlsDef.h) *マクロ

// Bus Number, Device Number and Function Number to PCI Device Address
#define PciBusDevFunc(Bus, Dev, Func) ((Bus&0xFF)<<8) | ((Dev&0x1F)<<3) | (Func&7) // PCI Device Address to Bus Number #define PciGetBus(address) ((address>>8) & 0xFF) // PCI Device Address to Device Number
#define PciGetDev(address) ((address>>3) & 0x1F) // PCI Device Address to Function Number #define PciGetFunc(address) (address&7)

C# (OpenLibSys.cs)

// Bus Number, Device Number and Function Number to PCI Device Address
public uint PciBusDevFunc(uint bus, uint dev, uint func) { return ((bus&0xFF)<<8) | ((dev&0x1F)<<3) | (func&7); } // PCI Device Address to Bus Number
public uint PciGetBus(uint address) { return ((address>>8) & 0xFF); } // PCI Device Address to Device Number
public uint PciGetDev(uint address) { return ((address>>3) & 0x1F); } // PCI Device Address to Function Number
public uint PciGetFunc(uint address) { return (address&7); }

PCI デバイスアドレス

bit 説明
0- 2
ファンクション番号
3- 7
デバイス番号
8-15
PCI バス番号
16-31
未使用

対応情報