Xen Test Framework
start_info.h
Go to the documentation of this file.
1 #ifndef XEN_PUBLIC_ARCH_X86_HVM_START_INFO_H
2 #define XEN_PUBLIC_ARCH_X86_HVM_START_INFO_H
3 
4 /*
5  * Start of day structure passed to PVH guests and to HVM guests in %ebx.
6  *
7  * NOTE: nothing will be loaded at physical address 0, so a 0 value in any
8  * of the address fields should be treated as not present.
9  *
10  * 0 +----------------+
11  * | magic | Contains the magic value XEN_HVM_START_MAGIC_VALUE
12  * | | ("xEn3" with the 0x80 bit of the "E" set).
13  * 4 +----------------+
14  * | version | Version of this structure. Current version is 0. New
15  * | | versions are guaranteed to be backwards-compatible.
16  * 8 +----------------+
17  * | flags | SIF_xxx flags.
18  * 12 +----------------+
19  * | nr_modules | Number of modules passed to the kernel.
20  * 16 +----------------+
21  * | modlist_paddr | Physical address of an array of modules
22  * | | (layout of the structure below).
23  * 24 +----------------+
24  * | cmdline_paddr | Physical address of the command line,
25  * | | a zero-terminated ASCII string.
26  * 32 +----------------+
27  * | rsdp_paddr | Physical address of the RSDP ACPI data structure.
28  * 40 +----------------+
29  *
30  * The layout of each entry in the module structure is the following:
31  *
32  * 0 +----------------+
33  * | paddr | Physical address of the module.
34  * 8 +----------------+
35  * | size | Size of the module in bytes.
36  * 16 +----------------+
37  * | cmdline_paddr | Physical address of the command line,
38  * | | a zero-terminated ASCII string.
39  * 24 +----------------+
40  * | reserved |
41  * 32 +----------------+
42  *
43  * The address and sizes are always a 64bit little endian unsigned integer.
44  *
45  * NB: Xen on x86 will always try to place all the data below the 4GiB
46  * boundary.
47  */
48 #define XEN_HVM_START_MAGIC_VALUE 0x336ec578
49 
51  uint32_t magic; /* Contains the magic value 0x336ec578 */
52  /* ("xEn3" with the 0x80 bit of the "E" set).*/
53  uint32_t version; /* Version of this structure. */
54  uint32_t flags; /* SIF_xxx flags. */
55  uint32_t nr_modules; /* Number of modules passed to the kernel. */
56  uint64_t modlist_paddr; /* Physical address of an array of */
57  /* hvm_modlist_entry. */
58  uint64_t cmdline_paddr; /* Physical address of the command line. */
59  uint64_t rsdp_paddr; /* Physical address of the RSDP ACPI data */
60  /* structure. */
61 };
63 
65  uint64_t paddr; /* Physical address of the module. */
66  uint64_t size; /* Size of the module in bytes. */
67  uint64_t cmdline_paddr; /* Physical address of the command line. */
69 };
70 
71 #endif /* XEN_PUBLIC_ARCH_X86_HVM_START_INFO_H */
uint64_t modlist_paddr
Definition: start_info.h:56
uint32_t nr_modules
Definition: start_info.h:55
uint32_t version
Definition: start_info.h:53
uint64_t cmdline_paddr
Definition: start_info.h:58
uint64_t rsdp_paddr
Definition: start_info.h:59
uint64_t reserved
Definition: start_info.h:68
__UINT64_TYPE__ uint64_t
Definition: stdint.h:17
__UINT32_TYPE__ uint32_t
Definition: stdint.h:16
uint64_t paddr
Definition: start_info.h:65
Definition: start_info.h:64
uint64_t cmdline_paddr
Definition: start_info.h:67
uint64_t size
Definition: start_info.h:66