+++ /dev/null
-/*++\r
-\r
-Copyright (c) 1999 - 2006, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-\r
-Module Name:\r
-\r
- LegacyInterrupt.h\r
- \r
-Abstract:\r
-\r
- This protocol manages the PIRQ for PCI devices\r
-\r
-Revision History\r
-\r
- The EFI Legacy Interrupt Protocol is compliant with CSM spec 0.96.\r
-\r
---*/\r
-\r
-#ifndef _EFI_LEGACY_INTERRUPT_H_\r
-#define _EFI_LEGACY_INTERRUPT_H_\r
-\r
-#define EFI_LEGACY_INTERRUPT_PROTOCOL_GUID \\r
- { \\r
- 0x31ce593d, 0x108a, 0x485d, {0xad, 0xb2, 0x78, 0xf2, 0x1f, 0x29, 0x66, 0xbe} \\r
- }\r
-\r
-EFI_FORWARD_DECLARATION (EFI_LEGACY_INTERRUPT_PROTOCOL);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_LEGACY_INTERRUPT_GET_NUMBER_PIRQS) (\r
- IN EFI_LEGACY_INTERRUPT_PROTOCOL * This,\r
- OUT UINT8 *NumberPirqs\r
- );\r
-\r
-/*++\r
-\r
- Routine Description:\r
- Return the number of PIRQs this hardware supports.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- NumberPirsq - Number of PIRQs.\r
-\r
- Returns:\r
- EFI_SUCCESS - Number of PIRQs returned.\r
-\r
---*/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_LEGACY_INTERRUPT_GET_LOCATION) (\r
- IN EFI_LEGACY_INTERRUPT_PROTOCOL * This,\r
- OUT UINT8 *Bus,\r
- OUT UINT8 *Device,\r
- OUT UINT8 *Function\r
- );\r
-\r
-/*++\r
-\r
- Routine Description:\r
- Return PCI location of this device. $PIR table requires this info.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- Bus - PCI Bus\r
- Device - PCI Device\r
- Function - PCI Function\r
-\r
- Returns:\r
- EFI_SUCCESS - Bus/Device/Function returned\r
-\r
---*/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_LEGACY_INTERRUPT_READ_PIRQ) (\r
- IN EFI_LEGACY_INTERRUPT_PROTOCOL * This,\r
- IN UINT8 PirqNumber,\r
- OUT UINT8 *PirqData\r
- );\r
-\r
-/*++\r
-\r
- Routine Description:\r
- Read the PIRQ register and return the data\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- PirqNumber - PIRQ register to read\r
- PirqData - Data read\r
-\r
- Returns:\r
- EFI_SUCCESS - Data was read\r
- EFI_INVALID_PARAMETER - Invalid PIRQ number\r
-\r
---*/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_LEGACY_INTERRUPT_WRITE_PIRQ) (\r
- IN EFI_LEGACY_INTERRUPT_PROTOCOL * This,\r
- IN UINT8 PirqNumber,\r
- IN UINT8 PirqData\r
- );\r
-\r
-/*++\r
-\r
- Routine Description:\r
- Write the specified PIRQ register with the given data.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- PirqNumber - PIRQ register to read.\r
- PirqData - Data written.\r
-\r
- Returns:\r
- EFI_SUCCESS - Table pointer returned\r
- EFI_INVALID_PARAMETER - Invalid PIRQ number\r
-\r
---*/\r
-struct _EFI_LEGACY_INTERRUPT_PROTOCOL {\r
- EFI_LEGACY_INTERRUPT_GET_NUMBER_PIRQS GetNumberPirqs;\r
- EFI_LEGACY_INTERRUPT_GET_LOCATION GetLocation;\r
- EFI_LEGACY_INTERRUPT_READ_PIRQ ReadPirq;\r
- EFI_LEGACY_INTERRUPT_WRITE_PIRQ WritePirq;\r
-};\r
-\r
-extern EFI_GUID gEfiLegacyInterruptProtocolGuid;\r
-\r
-#endif\r