Home |
RTTarget-32 Programming Manual System Management BIOS (SMBIOS) Advanced Programmable Interrupt Controller (APIC) Function RTMPSetIOAPICVector Function RTMPTablePCIInterrupt |
Function RTMPSetIOAPICVectorRTMPSetIOAPICVector programs one interrupt input pin of an IOAPIC: void RTMPSetIOAPICVector(UINT IoApicIndex, BYTE InterruptIndex, BYTE IRQ, UINT LevelTriggered, UINT ActiveLow); ParametersIoApicIndexZero-based index of the desired IOAPIC. RTTarget-32 supports up to 4 (index 0 .. 3) IOAPICs. IOAPICs are numbered starting at zero as they appear in the BIOS MP Floating Pointer Structure. Function RTMPDumpInfo can display this structure. InterruptIndexZero-based index of the interrupt input pin to the specified IOAPIC. For most IOAPICs, this value must be in the range 0 .. 23. Function RTMPDumpInfo displays the number of interrupt input pins of each IOAPIC. Note that in some documentations, interrupt pins of the IOAPICs are call "IRQ". Such IRQs are not the same as the IRQ parameter (see below). IRQThis is the logical IRQ used by the application to handle the interrupt. The IRQ determines to which interrupt vector (0x40 + IRQ) the interrupt is routed. LevelTriggeredIf 1, the device asserts level triggered interrupts; zero specifies an edge-triggered interrupt. ActiveLowIf 1, the device asserts active low interrupts; zero specifies an active high interrupt. This function can be used to reprogram single IOAPIC redirection table entries after the initial programming performed by RTMPSetAPICMode. This may become necessary to correct errors in the BIOS MP Floating Pointer Structure or to change selected interrupt properties. For example, it may be advantageous to operate the real-time clock in level-triggered mode rather than in edge-triggered mode (which is the default for all ISA devices). This could be achieved with: Example:RTMPSetIOAPICVector(0, 8, 8, 1, 0);
|