]> xenbits.xensource.com Git - people/liuw/ovmf.git/commitdiff
OvmfPkg: define EFI_XEN_OVMF_INFO and extend XenInfo
authorWei Liu <wei.liu2@citrix.com>
Thu, 14 Nov 2013 18:04:48 +0000 (18:04 +0000)
committerWei Liu <wei.liu2@citrix.com>
Tue, 19 Nov 2013 20:12:27 +0000 (20:12 +0000)
EFI_XEN_OVMF_INFO is defined to accept configurations from hvmloader. It
must match the definition on Xen side.

XenInfo is extended to include those bits as well. Currently only E820
map is in use.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
OvmfPkg/Include/Guid/XenInfo.h

index d512b0b63ff519f1251cf8639e9dc6b33d598fdc..eaeab1ae0f7f74ddbe524963ad4203150941a43c 100644 (file)
@@ -18,6 +18,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define EFI_XEN_INFO_GUID \\r
     { 0xd3b46f3b, 0xd441, 0x1244, {0x9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 0x4d } }\r
 \r
+#pragma pack(1)\r
+typedef struct {\r
+  CHAR8 Signature[11]; /* XenHVMOVMF\0 */\r
+  CHAR8 Padding[3];\r
+  UINT8 Length;     /* Length of this struct */\r
+  UINT8 Checksum;   /* Set such that the sum over bytes 0..length == 0 */\r
+  /*\r
+   * Physical address of an array of tables_nr elements.\r
+   *\r
+   * Each element is a 32 bit value contianing the physical address\r
+   * of a BIOS table.\r
+   */\r
+  UINT32 Tables;\r
+  UINT32 TablesNr;\r
+  /*\r
+   * Physical address of the e820 table, contains e820_nr entries.\r
+   */\r
+  UINT32 E820;\r
+  UINT32 E820Nr;\r
+} EFI_XEN_OVMF_INFO;\r
+#pragma pack()\r
+\r
 typedef struct {\r
   ///\r
   /// Beginning of the hypercall page.\r
@@ -35,6 +57,11 @@ typedef struct {
   /// Hypervisor minor version.\r
   ///\r
   UINT16 VersionMinor;\r
+  ///\r
+  /// E820 map\r
+  ///\r
+  VOID *E820;\r
+  UINT16 E820EntryCount;\r
 } EFI_XEN_INFO;\r
 \r
 extern EFI_GUID gEfiXenInfoGuid;\r