2 This protocol manages the legacy memory regions between 0xc0000 - 0xfffff
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 Module Name: LegacyInterrupt.h
15 @par Revision Reference:
16 This protocol is defined in Framework for EFI Compatibility Support Module spec
21 #ifndef _EFI_LEGACY_INTERRUPT_H_
22 #define _EFI_LEGACY_INTERRUPT_H_
24 #define EFI_LEGACY_INTERRUPT_PROTOCOL_GUID \
26 0x31ce593d, 0x108a, 0x485d, {0xad, 0xb2, 0x78, 0xf2, 0x1f, 0x29, 0x66, 0xbe } \
29 typedef struct _EFI_LEGACY_INTERRUPT_PROTOCOL EFI_LEGACY_INTERRUPT_PROTOCOL
;
32 Get the number of PIRQs this hardware supports.
34 @param This Protocol instance pointer.
35 @param NumberPirsq Number of PIRQs.
37 @retval EFI_SUCCESS Number of PIRQs returned.
42 (EFIAPI
*EFI_LEGACY_INTERRUPT_GET_NUMBER_PIRQS
) (
43 IN EFI_LEGACY_INTERRUPT_PROTOCOL
*This
,
44 OUT UINT8
*NumberPirqs
48 Gets the PCI location associated with this protocol.
50 @param This Protocol instance pointer.
52 @param Device PCI Device
53 @param Function PCI Function
55 @retval EFI_SUCCESS Bus/Device/Function returned
60 (EFIAPI
*EFI_LEGACY_INTERRUPT_GET_LOCATION
) (
61 IN EFI_LEGACY_INTERRUPT_PROTOCOL
*This
,
68 Read the PIRQ register and return the data
70 @param This Protocol instance pointer.
71 @param PirqNumber PIRQ register to read
72 @param PirqData Data read
74 @retval EFI_SUCCESS Data was read
75 @retval EFI_INVALID_PARAMETER Invalid PIRQ number
80 (EFIAPI
*EFI_LEGACY_INTERRUPT_READ_PIRQ
) (
81 IN EFI_LEGACY_INTERRUPT_PROTOCOL
*This
,
87 Write the specified PIRQ register with the given data.
89 @param This Protocol instance pointer.
90 @param PirqNumber PIRQ register to read.
91 @param PirqData Data written.
93 @retval EFI_SUCCESS Table pointer returned
94 @retval EFI_INVALID_PARAMETER Invalid PIRQ number
99 (EFIAPI
*EFI_LEGACY_INTERRUPT_WRITE_PIRQ
) (
100 IN EFI_LEGACY_INTERRUPT_PROTOCOL
*This
,
106 @par Protocol Description:
107 Abstracts the PIRQ programming from the generic EFI Compatibility Support Modules
109 @param GetNumberPirqs
110 Gets the number of PIRQs supported.
113 Gets the PCI bus, device, and function that associated with this protocol.
116 Reads the indicated PIRQ register.
119 Writes to the indicated PIRQ register.
122 struct _EFI_LEGACY_INTERRUPT_PROTOCOL
{
123 EFI_LEGACY_INTERRUPT_GET_NUMBER_PIRQS GetNumberPirqs
;
124 EFI_LEGACY_INTERRUPT_GET_LOCATION GetLocation
;
125 EFI_LEGACY_INTERRUPT_READ_PIRQ ReadPirq
;
126 EFI_LEGACY_INTERRUPT_WRITE_PIRQ WritePirq
;
129 extern EFI_GUID gEfiLegacyInterruptProtocolGuid
;