Xen Test Framework
include
xen
arch-x86
hvm
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
50
struct
xen_hvm_start_info
{
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
};
62
typedef
struct
xen_hvm_start_info
xen_pvh_start_info_t
;
63
64
struct
xen_hvm_modlist_entry
{
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. */
68
uint64_t
reserved
;
69
};
70
71
#endif
/* XEN_PUBLIC_ARCH_X86_HVM_START_INFO_H */
uint32_t
__UINT32_TYPE__ uint32_t
Definition:
stdint.h:16
uint64_t
__UINT64_TYPE__ uint64_t
Definition:
stdint.h:17
xen_hvm_modlist_entry
Definition:
start_info.h:64
xen_hvm_modlist_entry::cmdline_paddr
uint64_t cmdline_paddr
Definition:
start_info.h:67
xen_hvm_modlist_entry::reserved
uint64_t reserved
Definition:
start_info.h:68
xen_hvm_modlist_entry::paddr
uint64_t paddr
Definition:
start_info.h:65
xen_hvm_modlist_entry::size
uint64_t size
Definition:
start_info.h:66
xen_hvm_start_info
Definition:
start_info.h:50
xen_hvm_start_info::rsdp_paddr
uint64_t rsdp_paddr
Definition:
start_info.h:59
xen_hvm_start_info::magic
uint32_t magic
Definition:
start_info.h:51
xen_hvm_start_info::flags
uint32_t flags
Definition:
start_info.h:54
xen_hvm_start_info::cmdline_paddr
uint64_t cmdline_paddr
Definition:
start_info.h:58
xen_hvm_start_info::nr_modules
uint32_t nr_modules
Definition:
start_info.h:55
xen_hvm_start_info::version
uint32_t version
Definition:
start_info.h:53
xen_hvm_start_info::modlist_paddr
uint64_t modlist_paddr
Definition:
start_info.h:56
Generated by
1.9.4