--- /dev/null
+/*++\r
+\r
+ Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ \r\r
+ This program and the accompanying materials are licensed and made available under\r\r
+ the terms and conditions of the BSD License that accompanies this distribution. \r\r
+ The full text of the license may be found at \r\r
+ http://opensource.org/licenses/bsd-license.php. \r\r
+ \r\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r\r
+ \r\r
+\r
+**/\r
+\r
+#ifndef __MMIO_DEVICE_H__\r
+#define __MMIO_DEVICE_H__\r
+\r
+//\r
+// Protocol to define for the MMIO device\r
+//\r
+typedef struct {\r
+ //\r
+ // Address of a GUID\r
+ //\r
+ EFI_GUID *Guid;\r
+\r
+ //\r
+ // Context for the protocol\r
+ //\r
+ VOID *Context;\r
+} EFI_MMIO_DEVICE_PROTOCOL_ITEM;\r
+\r
+\r
+typedef struct _EFI_MMIO_DEVICE_PROTOCOL EFI_MMIO_DEVICE_PROTOCOL;\r
+\r
+//\r
+// The MMIO device protocol defines a memory mapped I/O device\r
+// for use by the system.\r
+//\r
+struct _EFI_MMIO_DEVICE_PROTOCOL {\r
+ //\r
+ // Pointer to an ACPI_EXTENDED_HID_DEVICE_PATH structure\r
+ // containing HID/HidStr and CID/CidStr values.\r
+ //\r
+ // See the note below associated with the UnitIdentification\r
+ // field.\r
+ //\r
+ CONST ACPI_EXTENDED_HID_DEVICE_PATH *AcpiPath;\r
+\r
+ //\r
+ // Allow the use of a shared template for the AcpiPath.\r
+ //\r
+ // If this value is non-zero UID value then the AcpiPath must\r
+ // be a template which contains only the HID/HidStr and CID/CidStr\r
+ // values. The UID/UidStr values in the AcpiPath must be zero!\r
+ //\r
+ // If this value is zero then the AcpiPath is not shared and\r
+ // must contain either a non-zero UID value or a UidStr value.\r
+ //\r
+ UINT32 UnitIdentification;\r
+\r
+ //\r
+ // Hardware revision - ACPI _HRV value\r
+ //\r
+ UINT32 HardwareRevision;\r
+\r
+ //\r
+ // Pointer to a data structure containing the controller\r
+ // resources and configuration. At a minimum this points\r
+ // to an EFI_PHYSICAL_ADDRESS for the base address of the\r
+ // MMIO device.\r
+ //\r
+ CONST VOID *DriverResources;\r
+\r
+ //\r
+ // Number of protocols in the array\r
+ //\r
+ UINTN ProtocolCount;\r
+\r
+ //\r
+ // List of protocols to define\r
+ //\r
+ CONST EFI_MMIO_DEVICE_PROTOCOL_ITEM *ProtocolArray;\r
+};\r
+\r
+extern EFI_GUID gEfiMmioDeviceProtocolGuid;\r
+\r
+#endif // __MMIO_DEVICE_H__\r