by most modern guest Operating Systems. This option is enabled by
default and usually you should omit it. However it may be necessary to
disable ACPI for compatibility with some guest Operating Systems.
+This option is true for x86 while it's false for ARM by default.
=item B<acpi_s3=BOOLEAN>
uint32_t domid,
struct xc_dom_image *dom);
+_hidden
+void libxl__arch_domain_build_info_acpi_setdefault(
+ libxl_domain_build_info *b_info);
+
#if defined(__i386__) || defined(__x86_64__)
#define LAPIC_BASE_ADDRESS 0xfee00000
return 0;
}
+void libxl__arch_domain_build_info_acpi_setdefault(
+ libxl_domain_build_info *b_info)
+{
+ libxl_defbool_setdefault(&b_info->acpi, false);
+}
+
/*
* Local variables:
* mode: C
if (!b_info->event_channels)
b_info->event_channels = 1023;
+ libxl__arch_domain_build_info_acpi_setdefault(b_info);
+
switch (b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT)
localents = libxl__calloc(gc, 9, sizeof(char *));
i = 0;
localents[i++] = "platform/acpi";
- localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" : "0";
+ localents[i++] = libxl__acpi_defbool_val(info) ? "1" : "0";
localents[i++] = "platform/acpi_s3";
localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" : "0";
localents[i++] = "platform/acpi_s4";
if (b_info->u.hvm.soundhw) {
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
- if (libxl_defbool_val(b_info->u.hvm.acpi)) {
+ if (libxl__acpi_defbool_val(b_info)) {
flexarray_append(dm_args, "-acpi");
}
if (b_info->max_vcpus > 1) {
if (b_info->u.hvm.soundhw) {
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
- if (!libxl_defbool_val(b_info->u.hvm.acpi)) {
+ if (!libxl__acpi_defbool_val(b_info)) {
flexarray_append(dm_args, "-no-acpi");
}
if (b_info->max_vcpus > 1) {
#define LIBXL_QEMU_USER_PREFIX "xen-qemuuser"
#define LIBXL_QEMU_USER_BASE LIBXL_QEMU_USER_PREFIX"-domid"
#define LIBXL_QEMU_USER_SHARED LIBXL_QEMU_USER_PREFIX"-shared"
+
+static inline bool libxl__acpi_defbool_val(const libxl_domain_build_info *b_info)
+{
+ return libxl_defbool_val(b_info->acpi) &&
+ libxl_defbool_val(b_info->u.hvm.acpi);
+}
#endif
/*
# Note that the partial device tree should avoid to use the phandle
# 65000 which is reserved by the toolstack.
("device_tree", string),
+ ("acpi", libxl_defbool),
("u", KeyedUnion(None, libxl_domain_type, "type",
[("hvm", Struct(None, [("firmware", string),
("bios", libxl_bios_type),
("pae", libxl_defbool),
("apic", libxl_defbool),
+ # The following acpi field is deprecated.
+ # Please use the unified acpi field above
+ # which works for both x86 and ARM.
("acpi", libxl_defbool),
("acpi_s3", libxl_defbool),
("acpi_s4", libxl_defbool),
return rc;
}
+void libxl__arch_domain_build_info_acpi_setdefault(
+ libxl_domain_build_info *b_info)
+{
+ libxl_defbool_setdefault(&b_info->acpi, true);
+}
+
/*
* Local variables:
* mode: C
b_info->cmdline = parse_cmdline(config);
xlu_cfg_get_defbool(config, "driver_domain", &c_info->driver_domain, 0);
+ xlu_cfg_get_defbool(config, "acpi", &b_info->acpi, 0);
switch(b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
xlu_cfg_get_defbool(config, "pae", &b_info->u.hvm.pae, 0);
xlu_cfg_get_defbool(config, "apic", &b_info->u.hvm.apic, 0);
- xlu_cfg_get_defbool(config, "acpi", &b_info->u.hvm.acpi, 0);
xlu_cfg_get_defbool(config, "acpi_s3", &b_info->u.hvm.acpi_s3, 0);
xlu_cfg_get_defbool(config, "acpi_s4", &b_info->u.hvm.acpi_s4, 0);
xlu_cfg_get_defbool(config, "nx", &b_info->u.hvm.nx, 0);