Abstraction for hardware based interrupt routine
On non IA-32 systems it is common to have a single hardware interrupt vector and a 2nd layer of software that routes the interrupt handlers based on the interrupt source. This protocol enables this routing. The driver implementing this protocol is responsible for clearing the pending interrupt in the interrupt routing hardware. The HARDWARE_INTERRUPT_HANDLER is responsible for clearing interrupt sources from individual devices.
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
typedef EFI_STATUS |
( |
EFIAPI * |
HARDWARE_INTERRUPT_END_OF_INTERRUPT | ) |
|
Register Handler for the specified interrupt source.
- Parameters
-
This | Instance pointer for this protocol |
Source | Hardware source of the interrupt |
Handler | Callback for interrupt. NULL to unregister |
- Return values
-
EFI_SUCCESS | Source was updated to support Handler. |
EFI_DEVICE_ERROR | Hardware could not be programmed. |
Enable interrupt source Source.
- Parameters
-
This | Instance pointer for this protocol |
Source | Hardware source of the interrupt |
- Return values
-
EFI_SUCCESS | Source interrupt enabled. |
EFI_DEVICE_ERROR | Hardware could not be programmed. |
Disable interrupt source Source.
- Parameters
-
This | Instance pointer for this protocol |
Source | Hardware source of the interrupt |
- Return values
-
EFI_SUCCESS | Source interrupt disabled. |
EFI_DEVICE_ERROR | Hardware could not be programmed. |
Return current state of interrupt source Source.
- Parameters
-
This | Instance pointer for this protocol |
Source | Hardware source of the interrupt |
InterruptState | TRUE: source enabled, FALSE: source disabled. |
- Return values
-
EFI_SUCCESS | InterruptState is valid |
EFI_DEVICE_ERROR | InterruptState is not valid |
Signal to the hardware that the End Of Interrupt state has been reached.
- Parameters
-
This | Instance pointer for this protocol |
Source | Hardware source of the interrupt |
- Return values
-
EFI_SUCCESS | Source interrupt EOI'ed. |
EFI_DEVICE_ERROR | Hardware could not be programmed. |