|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 15/15] libxl_usb: Use usbctrl instead of usbctrlinfo
The functions that calls usbctrl_getinfo() only needs information that
can be found in a `libxl_device_usbctrl'. So avoid calling
libxl_device_usbctrl_getinfo and call libxl_devid_to_device_usbctrl
instead. (libxl_device_usbctrl_getinfo needs a `libxl_device_usbctrl'
anyway.)
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
tools/libxl/libxl_usb.c | 49 +++++++++++------------------------------
1 file changed, 13 insertions(+), 36 deletions(-)
diff --git a/tools/libxl/libxl_usb.c b/tools/libxl/libxl_usb.c
index de49f8620c..3d69379c20 100644
--- a/tools/libxl/libxl_usb.c
+++ b/tools/libxl/libxl_usb.c
@@ -518,13 +518,10 @@ void libxl__initiate_device_usbctrl_remove(libxl__egc
*egc,
uint32_t domid = aodev->dev->domid;
int usbctrl_devid = aodev->dev->devid;
libxl_device_usbctrl usbctrl;
- libxl_usbctrlinfo usbctrlinfo;
libxl_device_usbctrl_init(&usbctrl);
- libxl_usbctrlinfo_init(&usbctrlinfo);
- usbctrl.devid = usbctrl_devid;
-
- rc = libxl_device_usbctrl_getinfo(CTX, domid, &usbctrl, &usbctrlinfo);
+ rc = libxl_devid_to_device_usbctrl(CTX, domid, usbctrl_devid,
+ &usbctrl);
if (rc) goto out;
/* Remove usb devices first */
@@ -541,7 +538,7 @@ void libxl__initiate_device_usbctrl_remove(libxl__egc *egc,
}
}
- if (usbctrlinfo.type == LIBXL_USBCTRL_TYPE_DEVICEMODEL) {
+ if (usbctrl.type == LIBXL_USBCTRL_TYPE_DEVICEMODEL) {
rc = libxl__device_usbctrl_del_hvm(gc, domid, usbctrl_devid);
if (!rc)
libxl__device_usbctrl_del_xenstore(gc, domid, &usbctrl);
@@ -549,7 +546,6 @@ void libxl__initiate_device_usbctrl_remove(libxl__egc *egc,
}
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
/* Remove usbctrl */
libxl__initiate_device_generic_remove(egc, aodev);
@@ -557,7 +553,6 @@ void libxl__initiate_device_usbctrl_remove(libxl__egc *egc,
out:
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
aodev->rc = rc;
aodev->callback(egc, aodev);
return;
@@ -1531,16 +1526,12 @@ static int do_usbdev_add(libxl__gc *gc, uint32_t domid,
int rc;
char *busid;
libxl_device_usbctrl usbctrl;
- libxl_usbctrlinfo usbctrlinfo;
libxl_device_usbctrl_init(&usbctrl);
- libxl_usbctrlinfo_init(&usbctrlinfo);
- usbctrl.devid = usbdev->ctrl;
-
- rc = libxl_device_usbctrl_getinfo(CTX, domid, &usbctrl, &usbctrlinfo);
+ rc = libxl_devid_to_device_usbctrl(CTX, domid, usbdev->ctrl, &usbctrl);
if (rc) goto out;
- switch (usbctrlinfo.type) {
+ switch (usbctrl.type) {
case LIBXL_USBCTRL_TYPE_PV:
busid = usbdev_busaddr_to_busid(gc, usbdev->u.hostdev.hostbus,
usbdev->u.hostdev.hostaddr);
@@ -1591,7 +1582,6 @@ static int do_usbdev_add(libxl__gc *gc, uint32_t domid,
out:
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
return rc;
}
@@ -1620,21 +1610,19 @@ static void libxl__device_usbdev_add(libxl__egc *egc,
uint32_t domid,
libxl_device_usbdev *assigned;
int num_assigned;
libxl_device_usbctrl usbctrl;
- libxl_usbctrlinfo usbctrlinfo;
libxl_device_usbctrl_init(&usbctrl);
- libxl_usbctrlinfo_init(&usbctrlinfo);
/* Currently only support adding USB device from Dom0 backend.
* So, if USB controller is specified, check its backend domain,
* if it's not Dom0, report error.
*/
if (usbdev->ctrl != -1) {
- usbctrl.devid = usbdev->ctrl;
- rc = libxl_device_usbctrl_getinfo(CTX, domid, &usbctrl, &usbctrlinfo);
+ rc = libxl_devid_to_device_usbctrl(CTX, domid, usbdev->ctrl,
+ &usbctrl);
if (rc) goto out;
- if (usbctrlinfo.backend_id != LIBXL_TOOLSTACK_DOMID) {
+ if (usbctrl.backend_domid != LIBXL_TOOLSTACK_DOMID) {
LOGD(ERROR, domid,
"Don't support adding USB device from non-Dom0 backend");
rc = ERROR_INVAL;
@@ -1674,7 +1662,6 @@ static void libxl__device_usbdev_add(libxl__egc *egc,
uint32_t domid,
out:
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
aodev->rc = rc;
aodev->callback(egc, aodev);
return;
@@ -1689,18 +1676,14 @@ static int do_usbdev_remove(libxl__gc *gc, uint32_t
domid,
int rc;
char *busid;
libxl_device_usbctrl usbctrl;
- libxl_usbctrlinfo usbctrlinfo;
libxl_device_usbctrl_init(&usbctrl);
- libxl_usbctrlinfo_init(&usbctrlinfo);
- usbctrl.devid = usbdev->ctrl;
-
- rc = libxl_device_usbctrl_getinfo(CTX, domid, &usbctrl, &usbctrlinfo);
+ rc = libxl_devid_to_device_usbctrl(CTX, domid, usbdev->ctrl, &usbctrl);
if (rc) goto out;
- switch (usbctrlinfo.type) {
+ switch (usbctrl.type) {
case LIBXL_USBCTRL_TYPE_PV:
- busid = usbdev_busid_from_ctrlport(gc, domid, usbdev,
usbctrlinfo.type);
+ busid = usbdev_busid_from_ctrlport(gc, domid, usbdev, usbctrl.type);
if (!busid) {
rc = ERROR_FAIL;
goto out;
@@ -1772,7 +1755,6 @@ static int do_usbdev_remove(libxl__gc *gc, uint32_t domid,
out:
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
return rc;
}
@@ -1787,7 +1769,6 @@ static int do_usbdev_remove(libxl__gc *gc, uint32_t domid,
static int libxl__device_usbdev_remove(libxl__gc *gc, uint32_t domid,
libxl_device_usbdev *usbdev)
{
- libxl_usbctrlinfo usbctrlinfo;
libxl_device_usbctrl usbctrl;
int rc;
@@ -1797,13 +1778,10 @@ static int libxl__device_usbdev_remove(libxl__gc *gc,
uint32_t domid,
}
libxl_device_usbctrl_init(&usbctrl);
- libxl_usbctrlinfo_init(&usbctrlinfo);
- usbctrl.devid = usbdev->ctrl;
-
- rc = libxl_device_usbctrl_getinfo(CTX, domid, &usbctrl, &usbctrlinfo);
+ rc = libxl_devid_to_device_usbctrl(CTX, domid, usbdev->ctrl, &usbctrl);
if (rc) goto out;
- if (usbctrlinfo.backend_id != LIBXL_TOOLSTACK_DOMID) {
+ if (usbctrl.backend_domid != LIBXL_TOOLSTACK_DOMID) {
LOGD(ERROR, domid,
"Don't support removing USB device from non-Dom0 backend");
rc = ERROR_INVAL;
@@ -1815,7 +1793,6 @@ static int libxl__device_usbdev_remove(libxl__gc *gc,
uint32_t domid,
out:
libxl_device_usbctrl_dispose(&usbctrl);
- libxl_usbctrlinfo_dispose(&usbctrlinfo);
return rc;
}
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |