
On 12/05/2013 09:17 AM, Li Zhang wrote:
From: Li Zhang <zhlcindy@linux.vnet.ibm.com>
There is no keyboard for PPC64 platform when grapchic is enabled.
s/grapchic is/graphics are/
It's preferred to add one USB keyboard.
This patch is to add keyboard input device type.
It also splits out 'virDomainDefMaybeAddInput', which would be nicer in a separate commit IMO.
Signed-off-by: Li Zhang <zhlcindy@linux.vnet.ibm.com> --- src/conf/domain_conf.c | 62 +++++++++++++++++++++++++++++++++++------------- src/conf/domain_conf.h | 5 ++++ src/libvirt_private.syms | 1 + 3 files changed, 51 insertions(+), 17 deletions(-)
@@ -10821,6 +10822,41 @@ virDomainDefMaybeAddController(virDomainDefPtr def, return 0; }
+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) { + goto error; + } + input->type = type; + input->bus = bus; +
+ if (VIR_REALLOC_N(def->inputs, def->ninputs + 1) < 0) { + virDomainInputDefFree(input); + goto error; + } + + def->inputs[def->ninputs] = input; + def->ninputs ++;
VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) will do all this and set input to NULL if it was successfully added - you can call InputDefFree unconditionally.
+ return 0; + +error: + virReportOOMError();
*ALLOC and *ELEMENT already set the OOM error.
+ return -1; +} + +
/* Parse a memory element located at XPATH within CTXT, and store the * result into MEM. If REQUIRED, then the value must exist;
Jan