Commit 6f725c139ae975646c44ace77bf796318a5783da

Authored by Glauber Costa
Committed by Anthony Liguori
1 parent 609f2fab

provide tests for pit in kernel and irqchip in kernel

KVM can have an in-kernel pit or irqchip. While we don't implement it
yet, having a way for test for it (that always returns zero) will allow us
to reuse code in qemu-kvm that tests for it.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing 2 changed files with 16 additions and 0 deletions
kvm-all.c
@@ -63,6 +63,8 @@ struct KVMState @@ -63,6 +63,8 @@ struct KVMState
63 #ifdef KVM_CAP_SET_GUEST_DEBUG 63 #ifdef KVM_CAP_SET_GUEST_DEBUG
64 struct kvm_sw_breakpoint_head kvm_sw_breakpoints; 64 struct kvm_sw_breakpoint_head kvm_sw_breakpoints;
65 #endif 65 #endif
  66 + int irqchip_in_kernel;
  67 + int pit_in_kernel;
66 }; 68 };
67 69
68 static KVMState *kvm_state; 70 static KVMState *kvm_state;
@@ -162,6 +164,17 @@ static void on_vcpu(CPUState *env, void (*func)(void *data), void *data) @@ -162,6 +164,17 @@ static void on_vcpu(CPUState *env, void (*func)(void *data), void *data)
162 abort(); 164 abort();
163 } 165 }
164 166
  167 +int kvm_irqchip_in_kernel(void)
  168 +{
  169 + return kvm_state->irqchip_in_kernel;
  170 +}
  171 +
  172 +int kvm_pit_in_kernel(void)
  173 +{
  174 + return kvm_state->pit_in_kernel;
  175 +}
  176 +
  177 +
165 int kvm_init_vcpu(CPUState *env) 178 int kvm_init_vcpu(CPUState *env)
166 { 179 {
167 KVMState *s = kvm_state; 180 KVMState *s = kvm_state;
@@ -60,6 +60,9 @@ int kvm_remove_breakpoint(CPUState *current_env, target_ulong addr, @@ -60,6 +60,9 @@ int kvm_remove_breakpoint(CPUState *current_env, target_ulong addr,
60 void kvm_remove_all_breakpoints(CPUState *current_env); 60 void kvm_remove_all_breakpoints(CPUState *current_env);
61 int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap); 61 int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap);
62 62
  63 +int kvm_pit_in_kernel(void);
  64 +int kvm_irqchip_in_kernel(void);
  65 +
63 /* internal API */ 66 /* internal API */
64 67
65 struct KVMState; 68 struct KVMState;