|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RESEND][PATCH V9 6/7] xl: add usbdev-assignable-list command
Add xl usbdev-assignable-list command to list assignable USB devices.
Assignable USB device means the USB device type is assignable and
it's not assigned to any guest yet.
Signed-off-by: Chunyan Liu <cyliu@xxxxxxxx>
---
Same as "libxl: add libxl_device_usbdev_assignable_list API" patch,
this patch could be sqaushed to previous one. Split because of
some dispute. Could be squashed if acceptable, otherwise could
be removed.
tools/libxl/xl.h | 1 +
tools/libxl/xl_cmdimpl.c | 28 ++++++++++++++++++++++++++++
tools/libxl/xl_cmdtable.c | 4 ++++
3 files changed, 33 insertions(+)
diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h
index 309627a..8418fff 100644
--- a/tools/libxl/xl.h
+++ b/tools/libxl/xl.h
@@ -92,6 +92,7 @@ int main_blockdetach(int argc, char **argv);
int main_vtpmattach(int argc, char **argv);
int main_vtpmlist(int argc, char **argv);
int main_vtpmdetach(int argc, char **argv);
+int main_usbdev_assignable_list(int argc, char **argv);
int main_usbctrl_attach(int argc, char **argv);
int main_usbctrl_detach(int argc, char **argv);
int main_usbdev_attach(int argc, char **argv);
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index f98e367..dfc3ad5 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -3449,6 +3449,34 @@ int main_cd_insert(int argc, char **argv)
return 0;
}
+static void usbdev_assignable_list(void)
+{
+ libxl_device_usbdev *usbdevs;
+ int num, i;
+
+ usbdevs = libxl_device_usbdev_assignable_list(ctx, &num);
+
+ for (i = 0; i < num; i++) {
+ printf("%d.%d\n",
+ usbdevs[i].u.hostdev.hostbus,
+ usbdevs[i].u.hostdev.hostaddr);
+ }
+
+ libxl_device_usbdev_list_free(usbdevs, num);
+}
+
+int main_usbdev_assignable_list(int argc, char **argv)
+{
+ int opt;
+
+ SWITCH_FOREACH_OPT(opt, "", NULL, "usbdev-assignable-list", 0) {
+ /* No options */
+ }
+
+ usbdev_assignable_list();
+ return 0;
+}
+
int main_usbctrl_attach(int argc, char **argv)
{
uint32_t domid;
diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c
index b14b881..df4f6d9 100644
--- a/tools/libxl/xl_cmdtable.c
+++ b/tools/libxl/xl_cmdtable.c
@@ -578,6 +578,10 @@ struct cmd_spec cmd_table[] = {
"List information about all USB controllers and devices for a domain",
"<Domain>",
},
+ { "usbdev-assignable-list",
+ &main_usbdev_assignable_list, 0, 0,
+ "List all assignable USB devices",
+ },
};
int cmdtable_len = sizeof(cmd_table)/sizeof(struct cmd_spec);
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |