EmbeddedPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
HardwareInterrupt.h File Reference

Data Structures

struct  _EFI_HARDWARE_INTERRUPT_PROTOCOL
 

Macros

#define EFI_HARDWARE_INTERRUPT_PROTOCOL_GGUID   { 0x2890B3EA, 0x053D, 0x1643, { 0xAD, 0x0C, 0xD6, 0x48, 0x08, 0xDA, 0x3F, 0xF1 } }
 

Typedefs

typedef struct
_EFI_HARDWARE_INTERRUPT_PROTOCOL 
EFI_HARDWARE_INTERRUPT_PROTOCOL
 
typedef UINTN HARDWARE_INTERRUPT_SOURCE
 
typedef IN EFI_SYSTEM_CONTEXT SystemContext
 
typedef IN
HARDWARE_INTERRUPT_SOURCE 
Source
 
typedef IN
HARDWARE_INTERRUPT_SOURCE IN
HARDWARE_INTERRUPT_HANDLER 
Handler
 
typedef IN
HARDWARE_INTERRUPT_SOURCE IN
BOOLEAN
InterruptState
 

Functions

typedef VOID (EFIAPI *HARDWARE_INTERRUPT_HANDLER)(IN HARDWARE_INTERRUPT_SOURCE Source
 
typedef EFI_STATUS (EFIAPI *HARDWARE_INTERRUPT_REGISTER)(IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This
 

Variables

EFI_GUID gHardwareInterruptProtocolGuid
 

Detailed Description

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

Macro Definition Documentation

#define EFI_HARDWARE_INTERRUPT_PROTOCOL_GGUID   { 0x2890B3EA, 0x053D, 0x1643, { 0xAD, 0x0C, 0xD6, 0x48, 0x08, 0xDA, 0x3F, 0xF1 } }

Typedef Documentation

typedef IN HARDWARE_INTERRUPT_SOURCE IN HARDWARE_INTERRUPT_HANDLER Handler
typedef IN EFI_SYSTEM_CONTEXT SystemContext

Function Documentation

typedef EFI_STATUS ( EFIAPI *  HARDWARE_INTERRUPT_END_OF_INTERRUPT)

Register Handler for the specified interrupt source.

Parameters
ThisInstance pointer for this protocol
SourceHardware source of the interrupt
HandlerCallback for interrupt. NULL to unregister
Return values
EFI_SUCCESSSource was updated to support Handler.
EFI_DEVICE_ERRORHardware could not be programmed.

Enable interrupt source Source.

Parameters
ThisInstance pointer for this protocol
SourceHardware source of the interrupt
Return values
EFI_SUCCESSSource interrupt enabled.
EFI_DEVICE_ERRORHardware could not be programmed.

Disable interrupt source Source.

Parameters
ThisInstance pointer for this protocol
SourceHardware source of the interrupt
Return values
EFI_SUCCESSSource interrupt disabled.
EFI_DEVICE_ERRORHardware could not be programmed.

Return current state of interrupt source Source.

Parameters
ThisInstance pointer for this protocol
SourceHardware source of the interrupt
InterruptStateTRUE: source enabled, FALSE: source disabled.
Return values
EFI_SUCCESSInterruptState is valid
EFI_DEVICE_ERRORInterruptState is not valid

Signal to the hardware that the End Of Interrupt state has been reached.

Parameters
ThisInstance pointer for this protocol
SourceHardware source of the interrupt
Return values
EFI_SUCCESSSource interrupt EOI'ed.
EFI_DEVICE_ERRORHardware could not be programmed.
typedef VOID ( EFIAPI *  HARDWARE_INTERRUPT_HANDLER)

C Interrupt Handler calledin the interrupt context when Source interrupt is active.

Parameters
SourceSource of the interrupt. Hardware routing off a specific platform defines what source means.
SystemContextPointer to system register context. Mostly used by debuggers and will update the system context after the return from the interrupt if modified. Don't change these values unless you know what you are doing

Variable Documentation

EFI_GUID gHardwareInterruptProtocolGuid