提交 4ab8cd77 编写于 作者: M Marek Marczykowski 提交者: Jim Fehlig

libxl: add tablet/mouse input device support

Signed-off-by: NMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
上级 eb7b6355
......@@ -749,6 +749,50 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
libxl_defbool_set(&b_info->u.hvm.vnc.enable, 0);
libxl_defbool_set(&b_info->u.hvm.sdl.enable, 0);
if (def->ninputs) {
for (i = 0; i < def->ninputs; i++) {
if (def->inputs[i]->bus != VIR_DOMAIN_INPUT_BUS_USB) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("libxenlight supports only USB input"));
return -1;
}
}
#ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST
if (VIR_ALLOC_N(b_info->u.hvm.usbdevice_list, def->ninputs+1) < 0)
return -1;
#else
if (def->ninputs > 1) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("libxenlight supports only one input device"));
return -1;
}
#endif
for (i = 0; i < def->ninputs; i++) {
char **usbdevice;
#ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST
usbdevice = &b_info->u.hvm.usbdevice_list[i];
#else
usbdevice = &b_info->u.hvm.usbdevice;
#endif
switch (def->inputs[i]->type) {
case VIR_DOMAIN_INPUT_TYPE_MOUSE:
VIR_FREE(*usbdevice);
if (VIR_STRDUP(*usbdevice, "mouse") < 0)
return -1;
break;
case VIR_DOMAIN_INPUT_TYPE_TABLET:
VIR_FREE(*usbdevice);
if (VIR_STRDUP(*usbdevice, "tablet") < 0)
return -1;
break;
default:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Unknown input device type"));
return -1;
}
}
}
/*
* The following comment and calculation were taken directly from
* libxenlight's internal function libxl_get_required_shadow_memory():
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册