diff --git a/kvm-all.c b/kvm-all.c index 7b34c8d6cd..824bb4ccb5 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -63,6 +63,8 @@ struct KVMState #ifdef KVM_CAP_SET_GUEST_DEBUG struct kvm_sw_breakpoint_head kvm_sw_breakpoints; #endif + int irqchip_in_kernel; + int pit_in_kernel; }; static KVMState *kvm_state; @@ -162,6 +164,17 @@ static void on_vcpu(CPUState *env, void (*func)(void *data), void *data) abort(); } +int kvm_irqchip_in_kernel(void) +{ + return kvm_state->irqchip_in_kernel; +} + +int kvm_pit_in_kernel(void) +{ + return kvm_state->pit_in_kernel; +} + + int kvm_init_vcpu(CPUState *env) { KVMState *s = kvm_state; diff --git a/kvm.h b/kvm.h index 96b4d72609..0d4dd53ef7 100644 --- a/kvm.h +++ b/kvm.h @@ -60,6 +60,9 @@ int kvm_remove_breakpoint(CPUState *current_env, target_ulong addr, void kvm_remove_all_breakpoints(CPUState *current_env); int kvm_update_guest_debug(CPUState *env, unsigned long reinject_trap); +int kvm_pit_in_kernel(void); +int kvm_irqchip_in_kernel(void); + /* internal API */ struct KVMState;