OEMInterruptHandler (Compact 2013)
10/16/2014
This function provides all interrupt service routine (ISR) functionality for ARM-based platforms.
Syntax
int OEMInterruptHandler(
unsigned int ra
);
Parameters
- ra
[in] Instruction counter when the interrupt occurred.
Return Value
Returns a SYSINTR_* value.
Note
The ISR return value of SYSINTR_IST_BGT is mapped to a background interrupt service thread (IST) for unknown interrupt request (IRQ) handling and is only supported on x86 processors.
Remarks
This function is only used by the ARM kernel. You do not need to call HookInterrupt in OEMInit for ARM-based platforms. On all platforms that support a single ISR, the name of the ISR is OEMInterruptHandler.
Before calling this function, the kernel preserves the state of the registers and places the OS in a state in which the OEM can enable nested interrupts.
The OEM must choose a nesting scheme and perform the appropriate masking of the interrupt register in this function before re-enabling interrupts. To do so, call the INTERRUPTS_ON function after the lower priority interrupts have been masked.
This function might call the INTERRUPTS_OFF function again if it requires code that is not re-entrant, but this call is not required because the kernel handles it when returning from this function.
Requirements
Header |
Developer Implemented |
Library |
OEMMain.lib or OEMMain_StaticKITL.lib |