[Spice-devel] [PATCH 1/3] usb: use native libusb procedure for getting error name

Yuri Benditovich yuri.benditovich at daynix.com
Thu Apr 11 11:57:21 UTC 2019


On Thu, Apr 11, 2019 at 12:35 PM Victor Toso <victortoso at redhat.com> wrote:
>
> Hi,
>
> On Wed, Apr 10, 2019 at 10:31:37PM +0300, Yuri Benditovich wrote:
> > libusb has libusb_error_name procedure that returns name
> > for any error that libusb may return, so we do not need
> > to analyze error values by ourselves.
> >
> > Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
>
> Before applying the series:
>
> (master 15e06ead) $ grepi "spice_usbutil_libusb_strerror" src/
> src/win-usb-dev.c:116:        const char *errstr = spice_usbutil_libusb_strerror(rc);
> src/win-usb-dev.c:173:        const char *errstr = spice_usbutil_libusb_strerror(rc);
> src/channel-usbredir.c:312: spice_usbutil_libusb_strerror(rc), rc);
> src/usbutil.c:62:const char *spice_usbutil_libusb_strerror(enum libusb_error error_code)
> src/usbutil.h:31:const char *spice_usbutil_libusb_strerror(enum libusb_error error_code);
> src/usb-device-manager.c:284:        const char *desc = spice_usbutil_libusb_strerror(rc);
> src/usb-device-manager.c:311:        const char *desc = spice_usbutil_libusb_strerror(rc);
> src/usb-device-manager.c:733:        errstr = spice_usbutil_libusb_strerror(errcode);
> src/usb-device-manager.c:1071:            const char *desc = spice_usbutil_libusb_strerror(rc);
>
> After applying the series:
> (yuri-usb-b-layers-v1 5f87d90d) $ grepi "spice_usbutil_libusb_strerror" src/
> (yuri-usb-b-layers-v1 5f87d90d) $
>
> So, I think it makes sense to use this patch to drop this
> function and always use libusb_error_name() instead, agree?

Finally, this series drops this functions and uses libusb_error_name.
It was possible to drop this function in the first patch, but this
would not make too much sense
( as all these new calls to libusb_error_name() would be removed due
to isolation of libusb).

>
> I checked that all above have include <libusb.h>
>
> I'll also be looking into your other patches but it might take
> some time to get familiar with the changes :)
>
> Cheers,
>
> > ---
> >  src/usbutil.c | 32 +-------------------------------
> >  1 file changed, 1 insertion(+), 31 deletions(-)
> >
> > diff --git a/src/usbutil.c b/src/usbutil.c
> > index e96ab11..4aa6ef7 100644
> > --- a/src/usbutil.c
> > +++ b/src/usbutil.c
> > @@ -61,37 +61,7 @@ static usb_vendor_info *usbids_vendor_info = NULL;
> >  G_GNUC_INTERNAL
> >  const char *spice_usbutil_libusb_strerror(enum libusb_error error_code)
> >  {
> > -    switch (error_code) {
> > -    case LIBUSB_SUCCESS:
> > -        return "Success";
> > -    case LIBUSB_ERROR_IO:
> > -        return "Input/output error";
> > -    case LIBUSB_ERROR_INVALID_PARAM:
> > -        return "Invalid parameter";
> > -    case LIBUSB_ERROR_ACCESS:
> > -        return "Access denied (insufficient permissions)";
> > -    case LIBUSB_ERROR_NO_DEVICE:
> > -        return "No such device (it may have been disconnected)";
> > -    case LIBUSB_ERROR_NOT_FOUND:
> > -        return "Entity not found";
> > -    case LIBUSB_ERROR_BUSY:
> > -        return "Resource busy";
> > -    case LIBUSB_ERROR_TIMEOUT:
> > -        return "Operation timed out";
> > -    case LIBUSB_ERROR_OVERFLOW:
> > -        return "Overflow";
> > -    case LIBUSB_ERROR_PIPE:
> > -        return "Pipe error";
> > -    case LIBUSB_ERROR_INTERRUPTED:
> > -        return "System call interrupted (perhaps due to signal)";
> > -    case LIBUSB_ERROR_NO_MEM:
> > -        return "Insufficient memory";
> > -    case LIBUSB_ERROR_NOT_SUPPORTED:
> > -        return "Operation not supported or unimplemented on this platform";
> > -    case LIBUSB_ERROR_OTHER:
> > -        return "Other error";
> > -    }
> > -    return "Unknown error";
> > +    return libusb_error_name(error_code);
> >  }
> >
> >  #ifdef __linux__
> > --
> > 2.17.1
> >
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list