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

See Also

Reference

Required OAL Functions
OEMInit
OEMInterruptHandlerFIQ