]> git.proxmox.com Git - mirror_qemu.git/commitdiff
kvm: Add kvm_has_pit_state2 helper
authorJan Kiszka <jan.kiszka@siemens.com>
Fri, 2 Mar 2012 19:28:48 +0000 (20:28 +0100)
committerAvi Kivity <avi@redhat.com>
Wed, 7 Mar 2012 10:27:42 +0000 (12:27 +0200)
To be used for in-kernel PIT emulation.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
kvm-all.c
kvm-stub.c
kvm.h

index 77eadf608f6bb9c23e512f7ebcbb4cf94a2ef9c2..278085fc2ddf0f532d7af946d55b140c005ba30a 100644 (file)
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -76,6 +76,7 @@ struct KVMState
     struct kvm_sw_breakpoint_head kvm_sw_breakpoints;
 #endif
     int pit_in_kernel;
+    int pit_state2;
     int xsave, xcrs;
     int many_ioeventfds;
     int irqchip_inject_ioctl;
@@ -1058,6 +1059,10 @@ int kvm_init(void)
     s->xcrs = kvm_check_extension(s, KVM_CAP_XCRS);
 #endif
 
+#ifdef KVM_CAP_PIT_STATE2
+    s->pit_state2 = kvm_check_extension(s, KVM_CAP_PIT_STATE2);
+#endif
+
     ret = kvm_arch_init(s);
     if (ret < 0) {
         goto err;
@@ -1390,6 +1395,11 @@ int kvm_has_xcrs(void)
     return kvm_state->xcrs;
 }
 
+int kvm_has_pit_state2(void)
+{
+    return kvm_state->pit_state2;
+}
+
 int kvm_has_many_ioeventfds(void)
 {
     if (!kvm_enabled()) {
index f63a0d2c81ba0f68065bc4bbdc508378d29e44b4..1f1c6861ed90b1b195cbd6c20be36a2cb09d5c38 100644 (file)
@@ -78,6 +78,11 @@ int kvm_allows_irq0_override(void)
     return 1;
 }
 
+int kvm_has_pit_state2(void)
+{
+    return 0;
+}
+
 void kvm_setup_guest_memory(void *start, size_t size)
 {
 }
diff --git a/kvm.h b/kvm.h
index f9f1dc86b3e3de40aaf55717702ebf397a82fcc3..8ef44767afa8d340938c28f622e48d39acb1081e 100644 (file)
--- a/kvm.h
+++ b/kvm.h
@@ -54,6 +54,7 @@ int kvm_has_robust_singlestep(void);
 int kvm_has_debugregs(void);
 int kvm_has_xsave(void);
 int kvm_has_xcrs(void);
+int kvm_has_pit_state2(void);
 int kvm_has_many_ioeventfds(void);
 int kvm_has_gsi_routing(void);