Signed-off-by: Igor Mammedov <imamm...@redhat.com> --- include/sysemu/kvm.h | 1 + kvm-all.c | 14 ++++++++++++++ kvm-stub.c | 5 +++++ 3 files changed, 20 insertions(+)
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h index 22e42ef..a49c1cd 100644 --- a/include/sysemu/kvm.h +++ b/include/sysemu/kvm.h @@ -163,6 +163,7 @@ extern KVMState *kvm_state; /* external API */ +int kvm_free_slot_count(MachineState *ms); bool kvm_has_free_slot(MachineState *ms); int kvm_has_sync_mmu(void); int kvm_has_vcpu_events(void); diff --git a/kvm-all.c b/kvm-all.c index c24e74b..bb61f0d 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -132,6 +132,20 @@ static const KVMCapabilityInfo kvm_required_capabilites[] = { KVM_CAP_LAST_INFO }; +int kvm_free_slot_count(MachineState *ms) +{ + int i, count; + KVMState *s = KVM_STATE(ms->accelerator); + + for (i = 0, count = 0; i < s->nr_slots; i++) { + if (s->slots[i].memory_size == 0) { + ++count; + } + } + + return count; +} + static KVMSlot *kvm_get_free_slot(KVMState *s) { int i; diff --git a/kvm-stub.c b/kvm-stub.c index 7ba90c5..e49d732 100644 --- a/kvm-stub.c +++ b/kvm-stub.c @@ -152,4 +152,9 @@ bool kvm_has_free_slot(MachineState *ms) { return false; } + +int kvm_free_slot_count(MachineState *ms) +{ + return INT_MAX; +} #endif -- 1.8.3.1