Revert "xen: change the sizes of fields in the HVM start info layout to be 64bits"
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 8 Apr 2016 17:07:10 +0000 (18:07 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Fri, 8 Apr 2016 17:07:10 +0000 (18:07 +0100)
This reverts commit 1aee836fe2829c39775c6434bf914f752521cfa7.

This patch was nacked after commit.  Jan writes:

 And already applied as I see. I think rushing things in like this is
 not a solution, no matter that we want to freeze the tree today.
 Changes like this should be free to go in as de-facto bug fixes
 after the freeze date.

tools/libxc/include/xc_dom.h
xen/include/public/xen.h

index 746cce2d40988a17d83e2b5fe3a1ced14b6e246b..6ebe946bfbe9fb1cf28283612e6ce72265ca3d08 100644 (file)
@@ -227,16 +227,16 @@ struct xc_dom_image {
  * be required in the future if there are alignment changes.
  */
 struct hvm_start_info {
-    uint64_t magic;         /* Contains the magic value 0x746f6f62336ec578   */
-                            /* ("xEn3boot" with the 0x80 bit of the "E" set).*/
-    uint64_t version;       /* Version of this structure.                    */
-    uint64_t flags;         /* SIF_xxx flags.                                */
-    uint64_t cmdline_paddr; /* Physical address of the command line.         */
-    uint64_t nr_modules;    /* Number of modules passed to the kernel.       */
-    uint64_t modlist_paddr; /* Physical address of an array of               */
-                            /* hvm_modlist_entry.                            */
-    uint64_t rsdp_paddr;    /* Physical address of the RSDP ACPI data        */
-                            /* structure.                                    */
+    uint32_t magic;             /* Contains the magic value 0x336ec578       */
+                                /* ("xEn3" with the 0x80 bit of the "E" set).*/
+    uint32_t version;           /* Version of this structure.                */
+    uint32_t flags;             /* SIF_xxx flags.                            */
+    uint32_t cmdline_paddr;     /* Physical address of the command line.     */
+    uint32_t nr_modules;        /* Number of modules passed to the kernel.   */
+    uint32_t modlist_paddr;     /* Physical address of an array of           */
+                                /* hvm_modlist_entry.                        */
+    uint32_t rsdp_paddr;        /* Physical address of the RSDP ACPI data    */
+                                /* structure.                                */
 } __attribute__((packed));
 
 struct hvm_modlist_entry {
index 59f3c2f22817fb970b1cfd8dfbe83e093646198e..435d78902ad3cedaff4e8911b638ab185bb2d53e 100644 (file)
@@ -814,23 +814,23 @@ typedef struct start_info start_info_t;
  *
  *  0 +----------------+
  *    | magic          | Contains the magic value XEN_HVM_START_MAGIC_VALUE
- *    |                | ("xEn3boot" with the 0x80 bit of the "E" set).
- *  8 +----------------+
+ *    |                | ("xEn3" with the 0x80 bit of the "E" set).
+ *  4 +----------------+
  *    | version        | Version of this structure. Current version is 0. New
  *    |                | versions are guaranteed to be backwards-compatible.
- * 16 +----------------+
+ *  8 +----------------+
  *    | flags          | SIF_xxx flags.
- * 24 +----------------+
+ * 12 +----------------+
  *    | cmdline_paddr  | Physical address of the command line,
  *    |                | a zero-terminated ASCII string.
- * 32 +----------------+
+ * 16 +----------------+
  *    | nr_modules     | Number of modules passed to the kernel.
- * 40 +----------------+
+ * 20 +----------------+
  *    | modlist_paddr  | Physical address of an array of modules
  *    |                | (layout of the structure below).
- * 48 +----------------+
+ * 24 +----------------+
  *    | rsdp_paddr     | Physical address of the RSDP ACPI data structure.
- * 56 +----------------+
+ * 28 +----------------+
  *
  * The layout of each entry in the module structure is the following:
  *
@@ -845,12 +845,10 @@ typedef struct start_info start_info_t;
  *    | reserved       |
  * 32 +----------------+
  *
- * The address and sizes are always a 64bit little endian unsigned integer.
- *
- * NB: Xen on x86 will always try to place all the data below the 4GiB
- * boundary.
+ * The address and size of the modules is a 64bit unsigned integer. However
+ * Xen will always try to place all modules below the 4GiB boundary.
  */
-#define XEN_HVM_START_MAGIC_VALUE 0x746f6f62336ec578
+#define XEN_HVM_START_MAGIC_VALUE 0x336ec578
 
 /* New console union for dom0 introduced in 0x00030203. */
 #if __XEN_INTERFACE_VERSION__ < 0x00030203