Skip site navigation (1)Skip section navigation (2)
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>