TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | _EFI_LEGACY_8259_PROTOCOL |
Macros | |
#define | EFI_LEGACY_8259_PROTOCOL_GUID |
Variables | |
EFI_GUID | gEfiLegacy8259ProtocolGuid |
This protocol abstracts the 8259 interrupt controller. This includes PCI IRQ routing needed to program the PCI Interrupt Line register.
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Legacy8259.h.
#define EFI_LEGACY_8259_PROTOCOL_GUID |
Definition at line 17 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_DISABLE_IRQ) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_8259_IRQ Irq) |
Disable Irq by masking interrupt in 8259
This | The protocol instance pointer. |
Irq | 8259 IRQ0 - IRQ15. |
EFI_SUCCESS | The Irq was disabled on 8259. |
EFI_INVALID_PARAMETER | The Irq is not valid. |
Definition at line 198 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_ENABLE_IRQ) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_8259_IRQ Irq, IN BOOLEAN LevelTriggered) |
Enable Irq by unmasking interrupt in 8259
This | The protocol instance pointer. |
Irq | 8259 IRQ0 - IRQ15. |
LevelTriggered | TRUE if level triggered. FALSE if edge triggered. |
EFI_SUCCESS | The Irq was enabled on 8259. |
EFI_INVALID_PARAMETER | The Irq is not valid. |
Definition at line 180 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_END_OF_INTERRUPT) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_8259_IRQ Irq) |
Send an EOI to 8259
This | The protocol instance pointer. |
Irq | 8259 IRQ0 - IRQ15. |
EFI_SUCCESS | EOI was successfully sent to 8259. |
EFI_INVALID_PARAMETER | The Irq isnot valid. |
Definition at line 237 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_GET_INTERRUPT_LINE) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_HANDLE PciHandle, OUT UINT8 *Vector) |
PciHandle represents a PCI config space of a PCI function. Vector represents Interrupt Pin (from PCI config space) and it is the data that is programmed into the Interrupt Line (from the PCI config space) register.
This | The protocol instance pointer. |
PciHandle | The PCI function to return the vector for. |
Vector | The vector for the function it matches. |
EFI_SUCCESS | A valid Vector was returned. |
EFI_INVALID_PARAMETER | PciHandle not valid. |
Definition at line 219 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_GET_MASK) (IN EFI_LEGACY_8259_PROTOCOL *This, OUT UINT16 *LegacyMask OPTIONAL, OUT UINT16 *LegacyEdgeLevel OPTIONAL, OUT UINT16 *ProtectedMask OPTIONAL, OUT UINT16 *ProtectedEdgeLevel OPTIONAL) |
Get the 8259 interrupt masks for Irq0 - Irq15. A different mask exists for the legacy mode mask and the protected mode mask. The base address for the 8259 is different for legacy and protected mode, so two masks are required.
This | The protocol instance pointer. |
LegacyMask | Bit 0 is Irq0 - Bit 15 is Irq15. |
LegacyEdgeLevel | Bit 0 is Irq0 - Bit 15 is Irq15. |
ProtectedMask | Bit 0 is Irq0 - Bit 15 is Irq15. |
ProtectedEdgeLevel | Bit 0 is Irq0 - Bit 15 is Irq15. |
EFI_SUCCESS | 8259 status returned. |
EFI_DEVICE_ERROR | Error reading 8259. |
Definition at line 87 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_GET_VECTOR) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_8259_IRQ Irq, OUT UINT8 *Vector) |
Convert from IRQ to processor interrupt vector number.
This | The protocol instance pointer. |
Irq | 8259 IRQ0 - IRQ15. |
Vector | The processor vector number that matches an Irq. |
EFI_SUCCESS | The Vector matching Irq is returned. |
EFI_INVALID_PARAMETER | The Irq not valid. |
Definition at line 161 of file Legacy8259.h.
typedef struct _EFI_LEGACY_8259_PROTOCOL EFI_LEGACY_8259_PROTOCOL |
Definition at line 22 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_SET_MASK) (IN EFI_LEGACY_8259_PROTOCOL *This, IN UINT16 *LegacyMask OPTIONAL, IN UINT16 *LegacyEdgeLevel OPTIONAL, IN UINT16 *ProtectedMask OPTIONAL, IN UINT16 *ProtectedEdgeLevel OPTIONAL) |
Set the 8259 interrupt masks for Irq0 - Irq15. A different mask exists for the legacy mode mask and the protected mode mask. The base address for the 8259 is different for legacy and protected mode, so two masks are required. Also set the edge/level masks.
This | The protocol instance pointer. |
LegacyMask | Bit 0 is Irq0 - Bit 15 is Irq15. |
LegacyEdgeLevel | Bit 0 is Irq0 - Bit 15 is Irq15. |
ProtectedMask | Bit 0 is Irq0 - Bit 15 is Irq15. |
ProtectedEdgeLevel | Bit 0 is Irq0 - Bit 15 is Irq15. |
EFI_SUCCESS | 8259 status returned. |
EFI_DEVICE_ERROR | Error writing 8259. |
Definition at line 113 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_SET_MODE) (IN EFI_LEGACY_8259_PROTOCOL *This, IN EFI_8259_MODE Mode, IN UINT16 *Mask OPTIONAL, IN UINT16 *EdgeLevel OPTIONAL) |
Set the 8259 mode of operation. The base address for the 8259 is different for legacy and protected mode. The legacy mode requires the master 8259 to have a master base of 0x08 and the slave base of 0x70. The protected mode base locations are not defined. Interrupts must be masked by the caller before this function is called. The interrupt mask from the current mode is saved. The interrupt mask for the new mode is Mask, or if Mask does not exist the previously saved mask is used.
This | The protocol instance pointer. |
Mode | The mode of operation. i.e. the real mode or protected mode. |
Mask | Optional interupt mask for the new mode. |
EdgeLevel | Optional trigger mask for the new mode. |
EFI_SUCCESS | 8259 programmed. |
EFI_DEVICE_ERROR | Error writing to 8259. |
Definition at line 141 of file Legacy8259.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_8259_SET_VECTOR_BASE) (IN EFI_LEGACY_8259_PROTOCOL *This, IN UINT8 MasterBase, IN UINT8 SlaveBase) |
Get the 8259 interrupt masks for Irq0 - Irq15. A different mask exists for the legacy mode mask and the protected mode mask. The base address for the 8259 is different for legacy and protected mode, so two masks are required.
This | The protocol instance pointer. |
MasterBase | The base vector for the Master PIC in the 8259 controller. |
SlaveBase | The base vector for the Slave PIC in the 8259 controller. |
EFI_SUCCESS | The new bases were programmed. |
EFI_DEVICE_ERROR | A device error occurred programming the vector bases. |
Definition at line 64 of file Legacy8259.h.
enum EFI_8259_IRQ |
Definition at line 24 of file Legacy8259.h.
enum EFI_8259_MODE |
Definition at line 44 of file Legacy8259.h.