summaryrefslogtreecommitdiff
path: root/OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2014-10-29 06:51:42 +0000
committerjljusten <jljusten@Edk2>2014-10-29 06:51:42 +0000
commitde671da8e43c424ebdcf816c45fd06c43ff44aba (patch)
tree43f88a9f50294abc2c585e869b9bab4a7f6b5705 /OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h
parente86895d9e489dafe904622867b197acff6ef4355 (diff)
downloadedk2-platforms-de671da8e43c424ebdcf816c45fd06c43ff44aba.tar.xz
OvmfPkg/XenPvBlkDxe: Xen PV Block device, initial skeleton
A ParaVirtualize block driver. Change in V4: - Replace the license by the commonly used file header text. - Add brief description for the driver. Change in V3: - enable compilation for Ia32 and Ia32X64 - fix version (driver binding) Change in V2: - Add minimal support for controller name - Remove stuff about BlockIo2 - Little cleanup - Licenses and file headers - Rename XenbusIo into XenBusIo Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16272 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h')
-rw-r--r--OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h b/OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h
new file mode 100644
index 0000000000..47bdcd3bb1
--- /dev/null
+++ b/OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.h
@@ -0,0 +1,82 @@
+/** @file
+ Main header for XenPvBlkDxe
+
+ Copyright (C) 2014, Citrix Ltd.
+
+ This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef __EFI_XEN_PV_BLK_DXE_H__
+#define __EFI_XEN_PV_BLK_DXE_H__
+
+#include <Uefi.h>
+
+//
+// Xen interface version used
+//
+#define __XEN_INTERFACE_VERSION__ 0x00040400
+#define xen_mb() MemoryFence()
+#define xen_rmb() MemoryFence()
+#define xen_wmb() MemoryFence()
+
+//
+// Libraries
+//
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Library/BaseMemoryLib.h>
+#include <Library/BaseLib.h>
+#include <Library/UefiLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/DebugLib.h>
+
+
+//
+// UEFI Driver Model Protocols
+//
+#include <Protocol/DriverBinding.h>
+#include <Protocol/ComponentName2.h>
+#include <Protocol/ComponentName.h>
+
+
+//
+// Consumed Protocols
+//
+#include <Protocol/XenBus.h>
+
+
+//
+// Produced Protocols
+//
+#include <Protocol/BlockIo.h>
+
+
+//
+// Driver Version
+//
+#define XEN_PV_BLK_DXE_VERSION 0x00000010
+
+
+//
+// Protocol instances
+//
+extern EFI_DRIVER_BINDING_PROTOCOL gXenPvBlkDxeDriverBinding;
+extern EFI_COMPONENT_NAME2_PROTOCOL gXenPvBlkDxeComponentName2;
+extern EFI_COMPONENT_NAME_PROTOCOL gXenPvBlkDxeComponentName;
+
+
+//
+// Include files with function prototypes
+//
+#include "DriverBinding.h"
+#include "ComponentName.h"
+
+
+#endif