@@ -1105,6 +1105,7 @@ static int prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,
{
const libxl_version_info *vers;
int rc;
+ uint64_t val;
/* convenience aliases */
xc_domain_configuration_t *xc_config = &state->config;
@@ -1130,7 +1131,12 @@ static int prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,
make_acpi_xsdt(gc, dom);
make_acpi_rsdp(gc, dom);
- return 0;
+ /* Set the value of domain param HVM_PARAM_CALLBACK_IRQ. */
+ val = (uint64_t)HVM_PARAM_CALLBACK_TYPE_PPI << 56;
+ val |= (2 << 8); /* Active-low level-sensitive */
+ val |= GUEST_EVTCHN_PPI & 0xff;
+ return xc_hvm_param_set(dom->xch, dom->guest_domid, HVM_PARAM_CALLBACK_IRQ,
+ val);
}
int libxl__arch_domain_init_hw_description(libxl__gc *gc,