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 */
__UINT32_TYPE__ uint32_t
Definition: stdint.h:16
__UINT64_TYPE__ uint64_t
Definition: stdint.h:17
Definition: start_info.h:64
uint64_t cmdline_paddr
Definition: start_info.h:67
uint64_t reserved
Definition: start_info.h:68
uint64_t paddr
Definition: start_info.h:65
uint64_t size
Definition: start_info.h:66
uint64_t rsdp_paddr
Definition: start_info.h:59
uint64_t cmdline_paddr
Definition: start_info.h:58
uint32_t nr_modules
Definition: start_info.h:55
uint32_t version
Definition: start_info.h:53
uint64_t modlist_paddr
Definition: start_info.h:56