On 10/21/2015 11:08 AM, Chunyan Liu wrote:
Add pvusb APIs, including:
- attach/detach (create/destroy) virtual usb controller.
- attach/detach usb device
- list usb controller and usb devices
- some other helper functions
Signed-off-by: Chunyan Liu <cy...@suse.com>
Signed-off-by: Simon Cao <caobosi...@gmail.com>
---
changes:
- update COMPARE_USB to compare ctrl and port
- add check in usb_add/remove to disable non-Dom0 backend so that
not worring about codes which are effective on Dom0 but not
compatible on non-Dom0 backend.
- define READ_SUBPATH macro within functions
- do not initialize rc but give it value in each return case
- libxl__strdup gc or NOGC update, internal function using gc,
external using NOGC.
- address other comments from George and Ian J.
tools/libxl/Makefile | 2 +-
tools/libxl/libxl.c | 53 ++
tools/libxl/libxl.h | 74 ++
tools/libxl/libxl_device.c | 5 +-
tools/libxl/libxl_internal.h | 18 +
tools/libxl/libxl_osdeps.h | 13 +
tools/libxl/libxl_pvusb.c | 1451 ++++++++++++++++++++++++++++++++++
tools/libxl/libxl_types.idl | 57 ++
tools/libxl/libxl_types_internal.idl | 1 +
tools/libxl/libxl_utils.c | 16 +
tools/libxl/libxl_utils.h | 5 +
11 files changed, 1693 insertions(+), 2 deletions(-)
create mode 100644 tools/libxl/libxl_pvusb.c
...
diff --git a/tools/libxl/libxl_pvusb.c b/tools/libxl/libxl_pvusb.c
new file mode 100644
index 0000000..aa1a653
--- /dev/null
+++ b/tools/libxl/libxl_pvusb.c
@@ -0,0 +1,1451 @@
+/*
+ * Copyright (C) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
Hmm, shouldn't this be just "SUSE LINUX GmbH, ..."?
+ * Author Chunyan Liu <cy...@suse.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; version 2.1 only. with the special
+ * exception on linking described in file LICENSE.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
...
+/* Encode usb interface so that it could be written to xenstore as a key.
+ *
+ * Since xenstore key cannot include '.' or ':', we'll change '.' to '_',
+ * change ':' to '-'. For example, 3-1:2.1 will be encoded to 3-1-2_1.
+ * This will be used to save original driver of USB device to xenstore.
+ */
+static char *usb_interface_xenstore_encode(char *busid)
+{
+ char *str = strdup(busid);
+ int i, len = strlen(str);
+
+ for (i = 0; i < len; i++) {
+ if (str[i] == '.')
+ str[i] = '_';
+ if (str[i] == ':')
Indentation.
+ str[i] = '-';
+ }
+ return str;
+}
...
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index 9c5c4d0..706a0c1 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -1270,6 +1270,22 @@ int libxl__random_bytes(libxl__gc *gc, uint8_t *buf,
size_t len)
return ret;
}
+void libxl_device_usbctrl_list_free(libxl_device_usbctrl *list, int nr)
+{
+ int i;
Blank line.
+ for (i = 0; i < nr; i++)
+ libxl_device_usbctrl_dispose(&list[i]);
+ free(list);
+}
+
+void libxl_device_usb_list_free(libxl_device_usb *list, int nr)
+{
+ int i;
Blank line.
+ for (i = 0; i < nr; i++)
+ libxl_device_usb_dispose(&list[i]);
+ free(list);
+}
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel