]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/Legacy8259Dxe/8259.h
Add legacy8259 module for PcAt.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / Legacy8259Dxe / 8259.h
diff --git a/IntelFrameworkModulePkg/Universal/Legacy8259Dxe/8259.h b/IntelFrameworkModulePkg/Universal/Legacy8259Dxe/8259.h
new file mode 100644 (file)
index 0000000..18bd37b
--- /dev/null
@@ -0,0 +1,293 @@
+/**\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