diff mbox

[02/11] kvm: provide API to query amount of memory slots supported by KVM

Message ID 1414773522-7756-3-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov Oct. 31, 2014, 4:38 p.m. UTC
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 include/sysemu/kvm.h |  1 +
 kvm-all.c            | 14 ++++++++++++++
 kvm-stub.c           |  5 +++++
 3 files changed, 20 insertions(+)
diff mbox

Patch

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