X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FXenBusDxe%2FXenBusDxe.h;h=953e4b72e85e67992380e6a7a698b1ff89c22259;hb=9062ab47870ea728307e32cdd939586a4ec67fc6;hp=6be5c58d920f11b065a72359afeedefbacf995d1;hpb=02a6bcff71e2f11be851b3bd62518a62e58e71f5;p=mirror_edk2.git diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.h b/OvmfPkg/XenBusDxe/XenBusDxe.h index 6be5c58d92..953e4b72e8 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.h +++ b/OvmfPkg/XenBusDxe/XenBusDxe.h @@ -18,11 +18,6 @@ #include -// -// Xen interface version used -// -#define __XEN_INTERFACE_VERSION__ 0x00040400 - // // Libraries // @@ -44,7 +39,7 @@ // // Consumed Protocols // -#include +#include // @@ -78,10 +73,7 @@ extern EFI_COMPONENT_NAME_PROTOCOL gXenBusDxeComponentName; // #include -#define PCI_VENDOR_ID_XEN 0x5853 -#define PCI_DEVICE_ID_XEN_PLATFORM 0x0001 - - +typedef struct _XENBUS_DEVICE_PATH XENBUS_DEVICE_PATH; typedef struct _XENBUS_DEVICE XENBUS_DEVICE; // Have the state of the driver. @@ -90,13 +82,30 @@ struct _XENBUS_DEVICE { UINT32 Signature; EFI_DRIVER_BINDING_PROTOCOL *This; EFI_HANDLE ControllerHandle; - EFI_PCI_IO_PROTOCOL *PciIo; + XENIO_PROTOCOL *XenIo; EFI_EVENT ExitBootEvent; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + LIST_ENTRY ChildList; - VOID *Hyperpage; shared_info_t *SharedInfo; }; +// There is one of this struct allocated for every child. +#define XENBUS_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('X', 'B', 'p', 'd') +typedef struct { + UINTN Signature; + LIST_ENTRY Link; + EFI_HANDLE Handle; + XENBUS_PROTOCOL XenBusIo; + XENBUS_DEVICE *Dev; + XENBUS_DEVICE_PATH *DevicePath; +} XENBUS_PRIVATE_DATA; + +#define XENBUS_PRIVATE_DATA_FROM_THIS(a) \ + CR (a, XENBUS_PRIVATE_DATA, XenBusIo, XENBUS_PRIVATE_DATA_SIGNATURE) +#define XENBUS_PRIVATE_DATA_FROM_LINK(a) \ + CR (a, XENBUS_PRIVATE_DATA, Link, XENBUS_PRIVATE_DATA_SIGNATURE) + /* * Helpers */ @@ -113,7 +122,7 @@ INT32 EFIAPI TestAndClearBit ( IN INT32 Bit, - IN volatile VOID *Address + IN VOID *Address ); CHAR8*