]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/XenBusDxe/XenBusDxe.h
OvmfPkg: Introduce XenBus Protocol.
[mirror_edk2.git] / OvmfPkg / XenBusDxe / XenBusDxe.h
1 /** @file
2 Function declaration and internal data for XenBusDxe.
3
4 Copyright (C) 2014, Citrix Ltd.
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __EFI_XENBUS_DXE_H__
17 #define __EFI_XENBUS_DXE_H__
18
19 #include <Uefi.h>
20
21 //
22 // Xen interface version used
23 //
24 #define __XEN_INTERFACE_VERSION__ 0x00040400
25
26 //
27 // Libraries
28 //
29 #include <Library/UefiBootServicesTableLib.h>
30 #include <Library/MemoryAllocationLib.h>
31 #include <Library/BaseMemoryLib.h>
32 #include <Library/BaseLib.h>
33 #include <Library/UefiLib.h>
34 #include <Library/DevicePathLib.h>
35 #include <Library/DebugLib.h>
36
37
38 //
39 // UEFI Driver Model Protocols
40 //
41 #include <Protocol/DriverBinding.h>
42
43
44 //
45 // Consumed Protocols
46 //
47 #include <Protocol/PciIo.h>
48
49
50 //
51 // Produced Protocols
52 //
53 #include <Protocol/XenBus.h>
54
55
56 //
57 // Driver Version
58 //
59 #define XENBUS_DXE_VERSION 0x00000010
60
61
62 //
63 // Protocol instances
64 //
65 extern EFI_DRIVER_BINDING_PROTOCOL gXenBusDxeDriverBinding;
66 extern EFI_COMPONENT_NAME2_PROTOCOL gXenBusDxeComponentName2;
67 extern EFI_COMPONENT_NAME_PROTOCOL gXenBusDxeComponentName;
68
69
70 //
71 // Include files with function prototypes
72 //
73 #include "DriverBinding.h"
74 #include "ComponentName.h"
75
76 //
77 // Other stuff
78 //
79 #include <IndustryStandard/Xen/xen.h>
80
81 #define PCI_VENDOR_ID_XEN 0x5853
82 #define PCI_DEVICE_ID_XEN_PLATFORM 0x0001
83
84
85 typedef struct _XENBUS_DEVICE XENBUS_DEVICE;
86
87 // Have the state of the driver.
88 #define XENBUS_DEVICE_SIGNATURE SIGNATURE_32 ('X','B','s','t')
89 struct _XENBUS_DEVICE {
90 UINT32 Signature;
91 EFI_DRIVER_BINDING_PROTOCOL *This;
92 EFI_HANDLE ControllerHandle;
93 EFI_PCI_IO_PROTOCOL *PciIo;
94 EFI_EVENT ExitBootEvent;
95
96 VOID *Hyperpage;
97 shared_info_t *SharedInfo;
98 };
99
100 #endif