diff options
author | Ross Philipson <ross.philipson@citrix.com> | 2013-01-10 17:17:21 +0000 |
---|---|---|
committer | Ross Philipson <ross.philipson@citrix.com> | 2013-01-10 17:17:21 +0000 |
commit | ebb3f4943ca4a3ee7f49ca95e506f648627ae583 (patch) | |
tree | c13174042a934b11e8bf2e11a38ca42556eba051 /tools/libxc/xenguest.h | |
parent | e64c3f71ceb662eb3f403d1f5897cf57257c470b (diff) | |
download | xen-ebb3f4943ca4a3ee7f49ca95e506f648627ae583.tar.gz xen-ebb3f4943ca4a3ee7f49ca95e506f648627ae583.tar.bz2 xen-ebb3f4943ca4a3ee7f49ca95e506f648627ae583.zip |
HVM firmware passthrough control tools support
Xen control tools support for loading the firmware passthrough blocks
during domain construction. SMBIOS and ACPI blocks are passed in using
the new xc_hvm_build_args structure. Each block is read and loaded
into the new domain address space behind the HVMLOADER image. The base
address for the two blocks is returned as an out parameter to the
caller via the args structure.
Signed-off-by: Ross Philipson <ross.philipson@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/libxc/xenguest.h')
-rw-r--r-- | tools/libxc/xenguest.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/libxc/xenguest.h b/tools/libxc/xenguest.h index 707e31cc5f..1597e5c93c 100644 --- a/tools/libxc/xenguest.h +++ b/tools/libxc/xenguest.h @@ -211,11 +211,23 @@ int xc_linux_build_mem(xc_interface *xch, unsigned int console_evtchn, unsigned long *console_mfn); +struct xc_hvm_firmware_module { + uint8_t *data; + uint32_t length; + uint64_t guest_addr_out; +}; + struct xc_hvm_build_args { uint64_t mem_size; /* Memory size in bytes. */ uint64_t mem_target; /* Memory target in bytes. */ uint64_t mmio_size; /* Size of the MMIO hole in bytes. */ const char *image_file_name; /* File name of the image to load. */ + + /* Extra ACPI tables passed to HVMLOADER */ + struct xc_hvm_firmware_module acpi_module; + + /* Extra SMBIOS structures passed to HVMLOADER */ + struct xc_hvm_firmware_module smbios_module; }; /** @@ -228,7 +240,7 @@ struct xc_hvm_build_args { * are optional. */ int xc_hvm_build(xc_interface *xch, uint32_t domid, - const struct xc_hvm_build_args *hvm_args); + struct xc_hvm_build_args *hvm_args); int xc_hvm_build_target_mem(xc_interface *xch, uint32_t domid, |