aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xenguest.h
diff options
context:
space:
mode:
authorRoss Philipson <ross.philipson@citrix.com>2013-01-10 17:17:21 +0000
committerRoss Philipson <ross.philipson@citrix.com>2013-01-10 17:17:21 +0000
commitebb3f4943ca4a3ee7f49ca95e506f648627ae583 (patch)
treec13174042a934b11e8bf2e11a38ca42556eba051 /tools/libxc/xenguest.h
parente64c3f71ceb662eb3f403d1f5897cf57257c470b (diff)
downloadxen-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.h14
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,