From: Paolo Bonzini Date: Tue, 10 May 2011 11:24:15 +0000 (+0200) Subject: libxl: support enabling the HPET X-Git-Tag: CVE-2011-2178~265 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fd3fac53765dedc6343d47e588a83300d6d9333;p=thirdparty%2Flibvirt.git libxl: support enabling the HPET libxl accepts hpet configuration in its domain info struct. Parse the domain definition's element in order to set the value. Signed-off-by: Paolo Bonzini --- diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 5054422cf6..ae527f3887 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -377,6 +377,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, libxl_domain_config *d_config) { libxl_domain_build_info *b_info = &d_config->b_info; int hvm = STREQ(def->os.type, "hvm"); + int i; libxl_init_build_info(b_info, &d_config->c_info); @@ -402,6 +403,13 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, libxl_domain_config *d_config) b_info->u.hvm.pae = def->features & (1 << VIR_DOMAIN_FEATURE_PAE); b_info->u.hvm.apic = def->features & (1 << VIR_DOMAIN_FEATURE_APIC); b_info->u.hvm.acpi = def->features & (1 << VIR_DOMAIN_FEATURE_ACPI); + for (i = 0; i < def->clock.ntimers; i++) { + if (def->clock.timers[i]->name == VIR_DOMAIN_TIMER_NAME_HPET && + def->clock.timers[i]->present == 1) { + b_info->u.hvm.acpi.hpet = 1; + } + } + /* * The following comment and calculation were taken directly from * libxenlight's internal function libxl_get_required_shadow_memory():