TianoCore EDK2 master
Loading...
Searching...
No Matches
HardwareInterrupt.h File Reference

Go to the source code of this file.

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 VOID(EFIAPI * HARDWARE_INTERRUPT_HANDLER) (IN HARDWARE_INTERRUPT_SOURCE Source, IN EFI_SYSTEM_CONTEXT SystemContext)
 
typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_REGISTER) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source, IN HARDWARE_INTERRUPT_HANDLER Handler)
 
typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_ENABLE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)
 
typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_DISABLE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)
 
typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_INTERRUPT_STATE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source, IN BOOLEAN *InterruptState)
 
typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_END_OF_INTERRUPT) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)
 

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

Definition in file HardwareInterrupt.h.

Macro Definition Documentation

◆ EFI_HARDWARE_INTERRUPT_PROTOCOL_GGUID

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

Definition at line 28 of file HardwareInterrupt.h.

Typedef Documentation

◆ EFI_HARDWARE_INTERRUPT_PROTOCOL

◆ HARDWARE_INTERRUPT_DISABLE

typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_DISABLE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)

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.

Definition at line 99 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_ENABLE

typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_ENABLE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)

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.

Definition at line 82 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_END_OF_INTERRUPT

typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_END_OF_INTERRUPT) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source)

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.

Definition at line 136 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_HANDLER

typedef VOID(EFIAPI * HARDWARE_INTERRUPT_HANDLER) (IN HARDWARE_INTERRUPT_SOURCE Source, IN EFI_SYSTEM_CONTEXT SystemContext)

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

Definition at line 46 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_INTERRUPT_STATE

typedef EFI_STATUS(EFIAPI * HARDWARE_INTERRUPT_INTERRUPT_STATE) (IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This, IN HARDWARE_INTERRUPT_SOURCE Source, IN BOOLEAN *InterruptState)

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

Definition at line 117 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_REGISTER

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

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.

Definition at line 64 of file HardwareInterrupt.h.

◆ HARDWARE_INTERRUPT_SOURCE

typedef UINTN HARDWARE_INTERRUPT_SOURCE

Definition at line 33 of file HardwareInterrupt.h.