PERFORCE change 161825 for review
Sylvestre Gallon
syl at FreeBSD.org
Sat May 9 09:35:08 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=161825
Change 161825 by syl at syl_atuin on 2009/05/09 09:34:37
- Implement libusb_kernel_driver_active.
- Add some style change.
- Return INVALID_PARAMETERS instead of NO_MEM on null parameters.
- Rename all device_handle to devh.
Affected files ...
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#6 edit
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#8 edit
Differences ...
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#6 (text+ko) ====
@@ -158,13 +158,17 @@
* open_with_pid_vid use some node of list after the free_device_list.
*/
void
-libusb_free_device_list(libusb_device ** list, int unref_devices)
+libusb_free_device_list(libusb_device **list, int unref_devices)
{
int i;
+ if (list == NULL)
+ return (NULL);
+
for (i = 0; list[i] != NULL; i++) {
libusb_unref_device(list[i]);
}
+
free(list);
return;
}
@@ -172,7 +176,7 @@
uint8_t
libusb_get_bus_number(libusb_device * dev)
{
- if (!dev)
+ if (dev == NULL)
return (LIBUSB_ERROR_NO_DEVICE);
return (dev->bus_number);
}
@@ -180,7 +184,7 @@
uint8_t
libusb_get_device_address(libusb_device * dev)
{
- if (!dev)
+ if (dev == NULL)
return (LIBUSB_ERROR_NO_DEVICE);
return (dev->device_address);
}
@@ -194,6 +198,9 @@
struct libusb_endpoint_descriptor *pdend;
int i, j, k, ret;
+ if (dev == NULL)
+ return (LIBUSB_ERROR_NO_DEVICE);
+
if (libusb_get_active_config_descriptor(dev, &pdconf) < 0)
return (LIBUSB_ERROR_OTHER);
@@ -220,22 +227,26 @@
libusb_device *
libusb_ref_device(libusb_device * dev)
{
- if (!dev)
+ if (dev == NULL)
return (NULL);
+
pthread_mutex_lock(&dev->lock);
dev->refcnt++;
pthread_mutex_unlock(&dev->lock);
+
return (dev);
}
void
libusb_unref_device(libusb_device * dev)
{
- if (!dev)
+ if (dev == NULL)
return;
+
pthread_mutex_lock(&dev->lock);
dev->refcnt--;
pthread_mutex_unlock(&dev->lock);
+
if (dev->refcnt == 0) {
libusb20_dev_free(dev->os_priv);
free(dev);
@@ -243,14 +254,14 @@
}
int
-libusb_open(libusb_device * dev, libusb_device_handle ** handle)
+libusb_open(libusb_device * dev, libusb_device_handle **devh)
{
libusb_context *ctx = dev->ctx;
struct libusb20_device *pdev = dev->os_priv;
libusb_device_handle *hdl;
int err;
- if (handle == NULL)
+ if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
hdl = malloc(sizeof(*hdl));
@@ -273,7 +284,7 @@
LIST_ADD(&hdl->list, &ctx->open_devs);
pthread_mutex_unlock(&ctx->open_devs_lock);
- *handle = hdl;
+ *devh = hdl;
/*
* XXX Some poll things to implement.
@@ -325,20 +336,23 @@
}
libusb_device *
-libusb_get_device(libusb_device_handle * dev_handle)
+libusb_get_device(libusb_device_handle * devh)
{
- if (!dev_handle)
+ if (devh == NULL)
return (NULL);
- return (dev_handle->dev);
+
+ return (devh->dev);
}
int
libusb_get_configuration(libusb_device_handle * devh, int *config)
{
- if (!devh)
+ if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
+
*config = libusb20_dev_get_config_index((struct libusb20_device *)
devh->dev->os_priv);
+
return (0);
}
@@ -348,7 +362,7 @@
{
struct libusb20_device *pdev;
- if (!devh)
+ if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
pdev = (struct libusb20_device *)devh->dev->os_priv;
@@ -364,7 +378,7 @@
int ret = 0;
if (interface_number >= sizeof(dev->claimed_interfaces) * 8)
- return LIBUSB_ERROR_INVALID_PARAM;
+ return (LIBUSB_ERROR_INVALID_PARAM);
pthread_mutex_lock(&(dev->lock));
if (dev->claimed_interfaces & (1 << interface_number))
@@ -383,7 +397,7 @@
int ret;
if (interface_number >= sizeof(dev->claimed_interfaces) * 8)
- return LIBUSB_ERROR_INVALID_PARAM;
+ return (LIBUSB_ERROR_INVALID_PARAM);
pthread_mutex_lock(&(dev->lock));
if (!(dev->claimed_interfaces & (1 << interface_number)))
@@ -413,7 +427,7 @@
libusb_reset_device(libusb_device_handle * dev)
{
if (dev == NULL)
- return (LIBUSB20_ERROR_NO_MEM);
+ return (LIBUSB20_ERROR_INVALID_PARAM);
libusb20_dev_reset(dev->os_priv);
return (0);
@@ -422,10 +436,10 @@
int
libusb_kernel_driver_active(libusb_device_handle * devh, int interface)
{
- if (!devh)
+ if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
- return (0);
+ return (libusb20_dev_kernel_driver_active(devh->os_priv, interface));
}
int
@@ -433,7 +447,7 @@
{
struct libusb20_device *pdev;
- if (!devh)
+ if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
pdev = (struct libusb20_device *)devh->dev->os_priv;
@@ -447,6 +461,8 @@
int
libusb_attach_kernel_driver(libusb_device_handle * devh, int interface)
{
+ if (devh == NULL)
+ return (LIBUSB_ERROR_INVALID_PARAM);
return (0);
}
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#8 (text+ko) ====
@@ -43,7 +43,7 @@
struct libusb20_device *pdev;
if ((dev == NULL) || (desc == NULL))
- return (LIBUSB_ERROR_NO_MEM);
+ return (LIBUSB_ERROR_INVALID_PARAM);
pdev = dev->os_priv;
pdesc = libusb20_dev_get_device_desc(pdev);
@@ -95,7 +95,7 @@
uint8_t nif, nend, nalt, i, j;
if (dev == NULL || config == NULL)
- return (LIBUSB_ERROR_NO_MEM);
+ return (LIBUSB_ERROR_INVALID_PARAM);
pdev = dev->os_priv;
pconf = libusb20_dev_alloc_config(pdev, config_index);
@@ -188,7 +188,7 @@
int i;
if (dev == NULL || config == NULL)
- return (LIBUSB_ERROR_NO_MEM);
+ return (LIBUSB_ERROR_INVALID_PARAM);
pdev = dev->os_priv;
pdesc = libusb20_dev_get_device_desc(pdev);
@@ -220,7 +220,7 @@
int ret;
if (dev == NULL || data == NULL)
- return (LIBUSB20_ERROR_NO_MEM);
+ return (LIBUSB20_ERROR_INVALID_PARAM);
pdev = dev->os_priv;
if (libusb20_dev_req_string_simple_sync(pdev, desc_index,
More information about the p4-projects
mailing list