--- /dev/null
+/**\r
+\r
+Copyright (c) 2005, Intel Corporation \r
+All rights reserved. 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
+Module Name:\r
+ 8259.h\r
+\r
+Abstract:\r
+\r
+ Driver implementing the Tiano Legacy 8259 Protocol\r
+\r
+**/\r
+\r
+#ifndef _8259_H__\r
+#define _8259_H__\r
+\r
+#include <FrameworkDxe.h>\r
+\r
+#include <Protocol/CpuIo.h>\r
+#include <Protocol/Legacy8259.h>\r
+\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DebugLib.h>\r
+\r
+//\r
+// 8259 Hardware definitions\r
+//\r
+#define LEGACY_MODE_BASE_VECTOR_MASTER 0x08\r
+#define LEGACY_MODE_BASE_VECTOR_SLAVE 0x70\r
+\r
+#define PROTECTED_MODE_BASE_VECTOR_MASTER 0x68\r
+#define PROTECTED_MODE_BASE_VECTOR_SLAVE 0x70\r
+\r
+#define LEGACY_8259_CONTROL_REGISTER_MASTER 0x20\r
+#define LEGACY_8259_MASK_REGISTER_MASTER 0x21\r
+#define LEGACY_8259_CONTROL_REGISTER_SLAVE 0xA0\r
+#define LEGACY_8259_MASK_REGISTER_SLAVE 0xA1\r
+#define LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_MASTER 0x4D0\r
+#define LEGACY_8259_EDGE_LEVEL_TRIGGERED_REGISTER_SLAVE 0x4D1\r
+\r
+#define LEGACY_8259_EOI 0x20\r
+\r
+//\r
+// Protocol Function Prototypes\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259SetVectorBase (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN UINT8 MasterBase,\r
+ IN UINT8 SlaveBase\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ MasterBase - TODO: add argument description\r
+ SlaveBase - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259GetMask (\r
+ IN EFI_LEGACY_8259_PROTOCOL * This,\r
+ OUT UINT16 *LegacyMask, OPTIONAL\r
+ OUT UINT16 *LegacyEdgeLevel, OPTIONAL\r
+ OUT UINT16 *ProtectedMask, OPTIONAL\r
+ OUT UINT16 *ProtectedEdgeLevel OPTIONAL\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ LegacyMask - TODO: add argument description\r
+ LegacyEdgeLevel - TODO: add argument description\r
+ ProtectedMask - TODO: add argument description\r
+ ProtectedEdgeLevel - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259SetMask (\r
+ IN EFI_LEGACY_8259_PROTOCOL * This,\r
+ IN UINT16 *LegacyMask, OPTIONAL\r
+ IN UINT16 *LegacyEdgeLevel, OPTIONAL\r
+ IN UINT16 *ProtectedMask, OPTIONAL\r
+ IN UINT16 *ProtectedEdgeLevel OPTIONAL\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ LegacyMask - TODO: add argument description\r
+ LegacyEdgeLevel - TODO: add argument description\r
+ ProtectedMask - TODO: add argument description\r
+ ProtectedEdgeLevel - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259SetMode (\r
+ IN EFI_LEGACY_8259_PROTOCOL * This,\r
+ IN EFI_8259_MODE Mode,\r
+ IN UINT16 *Mask, OPTIONAL\r
+ IN UINT16 *EdgeLevel OPTIONAL\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Mode - TODO: add argument description\r
+ Mask - TODO: add argument description\r
+ EdgeLevel - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259GetVector (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN EFI_8259_IRQ Irq,\r
+ OUT UINT8 *Vector\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Irq - TODO: add argument description\r
+ Vector - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259EnableIrq (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN EFI_8259_IRQ Irq,\r
+ IN BOOLEAN LevelTriggered\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Irq - TODO: add argument description\r
+ LevelTriggered - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259DisableIrq (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN EFI_8259_IRQ Irq\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Irq - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259GetInterruptLine (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN EFI_HANDLE PciHandle,\r
+ OUT UINT8 *Vector\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ PciHandle - TODO: add argument description\r
+ Vector - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+Interrupt8259EndOfInterrupt (\r
+ IN EFI_LEGACY_8259_PROTOCOL *This,\r
+ IN EFI_8259_IRQ Irq\r
+ )\r
+/**\r
+\r
+Routine Description:\r
+\r
+ TODO: Add function description\r
+\r
+Arguments:\r
+\r
+ This - TODO: add argument description\r
+ Irq - TODO: add argument description\r
+\r
+Returns:\r
+\r
+ TODO: add return values\r
+\r
+**/\r
+;\r
+\r
+#endif\r