From: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
This patch is to add one new interface to add input devices.
Signed-off-by: Li Zhang <zhlcindy(a)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