DevHelp EOI: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:DevHelp_EOI}} | |||
This service issues an End-Of-Interrupt (EOI) to the master/slave 8259 interrupt controllers as appropriate to the interrupt level. | This service issues an End-Of-Interrupt (EOI) to the master/slave 8259 interrupt controllers as appropriate to the interrupt level. | ||
Latest revision as of 02:33, 4 May 2025
This service issues an End-Of-Interrupt (EOI) to the master/slave 8259 interrupt controllers as appropriate to the interrupt level.
Syntax
- C
USHORT APIENTRY DevHelp_EOI (USHORT IRQLevel)
- Assembler
MOV AL,IRQnum ; Interrupt level number (0-F) MOV DL,DevHlp_EOI CALL [Device_Help]
Parameters
C
- IRQLevel (USHORT) - Input
- Interrupt level number (0 - F)
Assembler
MOV AL,IRQnum ; Interrupt level number (0-F) MOV DL,DevHlp_EOI CALL [Device_Help]
Return Code
- C
Possible errors: None.
- Assembler
None.
Remarks
This function is used to issue an End-Of-Interrupt to the 8259 interrupt controllers for a physical device driver interrupt handler. If the specified interrupt level is for the slave 8259 interrupt controller, then this service issues the EOI to both the master and slave 8259s. Physical device drivers must use this service in their interrupt handlers for upward compatibility.
This DevHlp does not change the state of the interrupt flag. If the physical device driver returns to the operating system immediately after issuing the EOI, then it should disable interrupts prior to the EOI. Disabling interrupts prior to issuing the EOI allows the processing for this interrupt level to be completed before the system services the next interrupt. This reduces the risk of excessive nested interrupts causing a system stack overflow. If any post-EOI work is done by the interrupt handler, it should be limited to the first or non-nested interrupt. Nested interrupt processing should be done only prior to the EOI.
Notice that this routine can be called at initialization time for interrupt processing.
Example Code
- C
#include "dhcalls.h" USHORT APIENTRY DevHelp_EOI (USHORT IRQLevel)