[libvirt] [PATCH v9 1/7] conf: Add one interface to add default input devices

Li Zhang zhlcindy at gmail.com
Mon Feb 17 10:17:52 UTC 2014


From: Li Zhang <zhlcindy at linux.vnet.ibm.com>

This patch is to add one new interface to add input devices.

Signed-off-by: Li Zhang <zhlcindy at linux.vnet.ibm.com>
---
 src/conf/domain_conf.c   | 29 +++++++++++++++++++++++++++++
 src/conf/domain_conf.h   |  4 ++++
 src/libvirt_private.syms |  1 +
 3 files changed, 34 insertions(+)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index fc9615f..1c24440 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -11050,6 +11050,35 @@ virDomainDefMaybeAddController(virDomainDefPtr def,
 }
 
 
+
+int
+virDomainDefMaybeAddInput(virDomainDefPtr def,
+                               int type,
+                               int bus)
+{
+    size_t i;
+    virDomainInputDefPtr input;
+
+    for (i = 0; i < def->ninputs; i++) {
+        if (def->inputs[i]->type == type &&
+            def->inputs[i]->bus == bus)
+            return 0;
+    }
+
+    if (VIR_ALLOC(input) < 0)
+        return -1;
+
+    input->type = type;
+    input->bus = bus;
+
+    if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) {
+        VIR_FREE(input);
+        return -1;
+    }
+
+    return 0;
+}
+
 /* Parse a memory element located at XPATH within CTXT, and store the
  * result into MEM.  If REQUIRED, then the value must exist;
  * otherwise, the value is optional.  The value is in blocks of 1024.
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 24cbec3..b8cfee9 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2805,6 +2805,10 @@ virDomainDefMaybeAddController(virDomainDefPtr def,
                                int type,
                                int idx,
                                int model);
+int
+virDomainDefMaybeAddInput(virDomainDefPtr def,
+                          int type,
+                          int bus);
 
 char *virDomainDefGetDefaultEmulator(virDomainDefPtr def, virCapsPtr caps);
 
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 67d20ed..e560a21 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -165,6 +165,7 @@ virDomainDefGenSecurityLabelDef;
 virDomainDefGetDefaultEmulator;
 virDomainDefGetSecurityLabelDef;
 virDomainDefMaybeAddController;
+virDomainDefMaybeAddInput;
 virDomainDefNew;
 virDomainDefParseFile;
 virDomainDefParseNode;
-- 
1.8.2.1




More information about the libvir-list mailing list