/*****************************************************************************
*
* FUNCTION: GetPciInterruptLevel
*
* PARAMETERS: 1. PCI Vendor ID
* 2. PCI Device ID
*
* RETURNS: エンコードされた割り込みレベル、または失敗時 0xffff
*
\*****************************************************************************/
WORD GetPciInterruptLevel(
WORD wPciVendorId,
WORD wPciDeviceId)
{
static const BYTE irq2level[] = {
IRQ0_LEVEL, IRQ1_LEVEL,IRQ2_LEVEL, IRQ3_LEVEL,
IRQ4_LEVEL, IRQ5_LEVEL, IRQ6_LEVEL, IRQ7_LEVEL,
IRQ8_LEVEL, IRQ9_LEVEL, IRQ10_LEVEL, IRQ11_LEVEL,
IRQ12_LEVEL, IRQ13_LEVEL, IRQ14_LEVEL, IRQ15_LEVEL };
PCIDEV dev;
dev.wVendorId = wPciVendorId;
dev.wDeviceId = wPciDeviceId;
dev.wDeviceIndex= 0; // はじめに検出されたデバイス
if (!PciFindDevice(&dev))
return 0xFFFF; // デバイスは見つからない
if (dev.byIntLine > 15)
return 0xFFFF; // このデバイスにはIRQがないか、認められないIRQ値である
return irq2level[dev.byIntLine];
}
|