]> xenbits.xensource.com Git - libvirt.git/commitdiff
libxl: support enabling the HPET
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 10 May 2011 11:24:15 +0000 (13:24 +0200)
committerEric Blake <eblake@redhat.com>
Tue, 10 May 2011 22:28:09 +0000 (16:28 -0600)
libxl accepts hpet configuration in its domain info struct.  Parse the
domain definition's <clock> element in order to set the value.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
src/libxl/libxl_conf.c

index 5054422cf60c2913bd84e35497972365721389e8..ae527f38877ac8cc90acf14b5bf067f071b34cc3 100644 (file)
@@ -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():