Date: Thu, 14 Oct 2010 20:04:36 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r213848 - head/lib/libusb Message-ID: <201010142004.o9EK4aWu035417@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: hselasky Date: Thu Oct 14 20:04:36 2010 New Revision: 213848 URL: http://svn.freebsd.org/changeset/base/213848 Log: LibUSB (new API): - Add a new API function to check the connected status of the USB handle in the LibUSB v1.0 and LibUSB v0.1 interfaces. Approved by: thompsa (mentor) Modified: head/lib/libusb/libusb.3 head/lib/libusb/libusb.h head/lib/libusb/libusb10.c head/lib/libusb/libusb20_compat01.c head/lib/libusb/usb.h Modified: head/lib/libusb/libusb.3 ============================================================================== --- head/lib/libusb/libusb.3 Thu Oct 14 20:04:05 2010 (r213847) +++ head/lib/libusb/libusb.3 Thu Oct 14 20:04:36 2010 (r213848) @@ -231,6 +231,14 @@ been disconnected and a LIBUSB_ERROR cod .Pp . .Ft int +.Fn libusb_check_connected "libusb_device_handle *devh" +Test if USB device is still connected. Returns 0 on success, +LIBUSB_ERROR_NO_DEVICE if has been disconnected and a LIBUSB_ERROR +code on failure. +. +.Pp +. +.Ft int .Fn libusb_kernel_driver_active "libusb_device_handle *devh" "int interface" Determine if a driver is active on a interface. Returns 0 if no kernel driver is active, returns 1 if a kernel driver is active, returns LIBUSB_ERROR_NO_DEVICE @@ -488,6 +496,7 @@ The library is also compliant with LibUS .Fn usb_find_devices .Fn usb_device .Fn usb_get_busses +.Fn usb_check_connected . .Sh SEE ALSO .Xr libusb20 3 , Modified: head/lib/libusb/libusb.h ============================================================================== --- head/lib/libusb/libusb.h Thu Oct 14 20:04:05 2010 (r213847) +++ head/lib/libusb/libusb.h Thu Oct 14 20:04:36 2010 (r213848) @@ -316,6 +316,7 @@ int libusb_set_configuration(libusb_devi int libusb_claim_interface(libusb_device_handle * devh, int interface_number); int libusb_release_interface(libusb_device_handle * devh, int interface_number); int libusb_reset_device(libusb_device_handle * devh); +int libusb_check_connected(libusb_device_handle * devh); int libusb_kernel_driver_active(libusb_device_handle * devh, int interface); int libusb_detach_kernel_driver(libusb_device_handle * devh, int interface); int libusb_attach_kernel_driver(libusb_device_handle * devh, int interface); Modified: head/lib/libusb/libusb10.c ============================================================================== --- head/lib/libusb/libusb10.c Thu Oct 14 20:04:05 2010 (r213847) +++ head/lib/libusb/libusb10.c Thu Oct 14 20:04:36 2010 (r213848) @@ -663,6 +663,21 @@ libusb_reset_device(struct libusb20_devi } int +libusb_check_connected(struct libusb20_device *pdev) +{ + libusb_device *dev; + int err; + + dev = libusb_get_device(pdev); + if (dev == NULL) + return (LIBUSB_ERROR_INVALID_PARAM); + + err = libusb20_dev_check_connected(pdev); + + return (err ? LIBUSB_ERROR_NO_DEVICE : 0); +} + +int libusb_kernel_driver_active(struct libusb20_device *pdev, int interface) { if (pdev == NULL) Modified: head/lib/libusb/libusb20_compat01.c ============================================================================== --- head/lib/libusb/libusb20_compat01.c Thu Oct 14 20:04:05 2010 (r213847) +++ head/lib/libusb/libusb20_compat01.c Thu Oct 14 20:04:36 2010 (r213848) @@ -795,6 +795,19 @@ usb_reset(usb_dev_handle * dev) return (usb_close(dev)); } +int +usb_check_connected(usb_dev_handle * dev) +{ + int err; + + err = libusb20_dev_check_connected((void *)dev); + + if (err) + return (-1); + + return (0); +} + const char * usb_strerror(void) { Modified: head/lib/libusb/usb.h ============================================================================== --- head/lib/libusb/usb.h Thu Oct 14 20:04:05 2010 (r213847) +++ head/lib/libusb/usb.h Thu Oct 14 20:04:36 2010 (r213848) @@ -291,6 +291,7 @@ int usb_set_altinterface(usb_dev_handle int usb_resetep(usb_dev_handle * dev, unsigned int ep); int usb_clear_halt(usb_dev_handle * dev, unsigned int ep); int usb_reset(usb_dev_handle * dev); +int usb_check_connected(usb_dev_handle * dev); const char *usb_strerror(void); void usb_init(void); void usb_set_debug(int level);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010142004.o9EK4aWu035417>