PERFORCE change 165343 for review
Sylvestre Gallon
syl at FreeBSD.org
Sun Jun 28 11:47:40 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=165343
Change 165343 by syl at syl_atuin on 2009/06/28 11:47:24
- Update test3 transfer function.
- move dprintf to a macro.
- update libusb_proxy to use usb_handle_transfer_completion.
- Add more transfer debug.
Affected files ...
.. //depot/projects/soc2009/syl_usb/libusb-tests/transfers/test3/test3.c#5 edit
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#50 edit
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.h#12 edit
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#17 edit
.. //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#18 edit
Differences ...
==== //depot/projects/soc2009/syl_usb/libusb-tests/transfers/test3/test3.c#5 (text+ko) ====
@@ -52,14 +52,15 @@
#define EP_OUT 0x2
-void
+int
do_io(unsigned char ep, void *buff, uint32_t len, uint32_t timeout)
{
int transferred = 0;
+ int ret= 0;
printf("do_io\n");
- libusb_bulk_transfer(devh, ep, buff, len, &transferred, timeout);
- while(!transferred);
+ ret = libusb_bulk_transfer(devh, ep, buff, len, &transferred, timeout);
+ return ret;
}
void
@@ -67,6 +68,7 @@
{
umass_bbb_cbw_t cbw;
umass_bbb_csw_t csw;
+ int ret = 0;
printf("do_msc\n");
bzero(&cbw, sizeof(cbw));
@@ -80,11 +82,24 @@
cbw.bCDBLength = cmdlen;
bcopy(pcmd, cbw.CBWCDB, cmdlen);
- do_io(EP_OUT, &cbw, sizeof(cbw), 10000);
+ ret = do_io(EP_OUT, &cbw, sizeof(cbw), 10000);
+ if (ret != sizeof(cbw))
+ printf("CBW write failed\n");
+
if (datalen != 0) {
do_io(EP_IN, buffer, datalen, 10000);
}
- do_io(EP_IN, &csw, sizeof(csw), 10000);
+ ret = do_io(EP_IN, &csw, sizeof(csw), 10000);
+ if (ret != sizeof(csw)) {
+ libusb_clear_halt(devh, EP_IN);
+ ret = do_io(EP_IN, &csw, sizeof(csw), 10000);
+ if (ret != sizeof(csw)) {
+ printf("Could not read CSW\n");
+ return ;
+ }
+
+ }
+
if (csw.bCSWStatus != 0) {
printf("command (0x%02x) cursig=0x%08x failed\n", pcmd[0], cursig);
} else {
@@ -179,7 +194,7 @@
for (i = 0 ; i < BLOCK_SIZE ; i++) {
if (i != 0 && (i % 0x10) == 0)
printf("\n");
- printf("0.2x ", buffer[i]);
+ printf("0x%.2x ", buffer[i]);
}
printf("\n");
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.c#50 (text+ko) ====
@@ -44,28 +44,6 @@
/* Library initialisation / deinitialisation */
-UNEXPORTED void
-dprintf(libusb_context *ctx, int debug, char *str)
-{
- if (ctx->debug != debug)
- return ;
-
- switch (ctx->debug) {
- case LIBUSB_DEBUG_NO:
- break ;
- case LIBUSB_DEBUG_FUNCTION:
- printf("LIBUSB FUNCTION : %s\n", str);
- break ;
- case LIBUSB_DEBUG_TRANSFER:
- printf("LIBUSB TRANSFER : %s\n", str);
- break ;
- default:
- printf("LIBUSB UNKNOW DEBUG\n");
- break ;
- }
- return ;
-}
-
void
libusb_set_debug(libusb_context * ctx, int level)
{
@@ -144,7 +122,7 @@
{
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit enter");
usb_remove_pollfd(ctx, ctx->ctrl_pipe[0]);
close(ctx->ctrl_pipe[0]);
close(ctx->ctrl_pipe[1]);
@@ -156,7 +134,7 @@
pthread_mutex_unlock(&default_context_lock);
free(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_exit leave");
}
/* Device handling and initialisation. */
@@ -171,7 +149,7 @@
int i;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list enter");
usb_backend = libusb20_be_alloc_default();
if (usb_backend == NULL)
@@ -228,7 +206,7 @@
(*list)[i] = NULL;
libusb20_be_free(usb_backend);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_list leave");
return (i);
}
@@ -244,7 +222,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list enter");
if (list == NULL)
return ;
@@ -254,7 +232,7 @@
libusb_unref_device(list[i]);
}
free(list);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_device_list leave");
}
uint8_t
@@ -264,11 +242,11 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number enter");
if (dev == NULL)
return (LIBUSB_ERROR_NO_DEVICE);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_bus_number leave");
return (dev->bus_number);
}
@@ -279,11 +257,11 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address enter");
if (dev == NULL)
return (LIBUSB_ERROR_NO_DEVICE);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_address leave");
return (dev->device_address);
}
@@ -299,7 +277,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size enter");
if (dev == NULL)
return (LIBUSB_ERROR_NO_DEVICE);
@@ -324,7 +302,7 @@
out:
libusb_free_config_descriptor(pdconf);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_max_packet_size leave");
return (ret);
}
@@ -335,7 +313,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device enter");
if (dev == NULL)
return (NULL);
@@ -344,7 +322,7 @@
dev->refcnt++;
pthread_mutex_unlock(&dev->lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_ref_device leave");
return (dev);
}
@@ -355,7 +333,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device enter");
if (dev == NULL)
return;
@@ -372,7 +350,7 @@
libusb20_dev_free(dev->os_priv);
free(dev);
}
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unref_device leave");
}
int
@@ -385,7 +363,7 @@
int err;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open enter");
dummy = 1;
if (devh == NULL)
@@ -439,7 +417,7 @@
pthread_mutex_unlock(&ctx->pollfd_modify_lock);
libusb_unlock_events(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open leave");
return (0);
}
@@ -454,7 +432,7 @@
int i, j;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid enter");
devh = NULL;
@@ -473,7 +451,7 @@
}
libusb_free_device_list(devs, 1);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_open_device_width_vid_pid leave");
return (devh);
}
@@ -492,7 +470,7 @@
pdev = devh->os_priv;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close enter");
pthread_mutex_lock(&ctx->pollfd_modify_lock);
ctx->pollfd_modify++;
@@ -532,7 +510,7 @@
pthread_mutex_unlock(&ctx->pollfd_modify_lock);
libusb_unlock_events(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_close leave");
}
libusb_device *
@@ -542,12 +520,12 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device enter");
if (devh == NULL)
return (NULL);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device leave");
return (devh->dev);
}
@@ -558,7 +536,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_configuration enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_configuration enter");
if (devh == NULL || config == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -566,7 +544,7 @@
*config = libusb20_dev_get_config_index((struct libusb20_device *)
devh->dev->os_priv);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_configuration leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_configuration leave");
return (0);
}
@@ -578,7 +556,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_configuration enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_configuration enter");
if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -586,7 +564,7 @@
pdev = (struct libusb20_device *)devh->dev->os_priv;
libusb20_dev_set_config_index(pdev, configuration);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_configuration leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_configuration leave");
return (0);
}
@@ -598,7 +576,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_claim_interface enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_claim_interface enter");
if (dev == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -614,7 +592,7 @@
dev->claimed_interfaces |= (1 << interface_number);
pthread_mutex_unlock(&(dev->lock));
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_claim_interface leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_claim_interface leave");
return (ret);
}
@@ -626,7 +604,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_release_interface enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_release_interface enter");
ret = 0;
if (dev == NULL)
@@ -643,7 +621,7 @@
dev->claimed_interfaces &= ~(1 << interface_number);
pthread_mutex_unlock(&(dev->lock));
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_release_interface leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_release_interface leave");
return (ret);
}
@@ -656,7 +634,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_interface_alt_setting enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_interface_alt_setting enter");
if (dev == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -675,7 +653,7 @@
alternate_setting) != 0)
return (LIBUSB_ERROR_OTHER);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_interface_alt_setting leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_set_interface_alt_setting leave");
return (0);
}
@@ -689,7 +667,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_clear_halt enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_clear_halt enter");
pdev = devh->os_priv;
xfer = libusb20_tr_get_pointer(pdev,
@@ -709,7 +687,7 @@
libusb20_tr_close(xfer);
pthread_mutex_unlock(&libusb20_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_clear_halt leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_clear_halt leave");
return (0);
}
@@ -720,13 +698,13 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_reset_device enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_reset_device enter");
if (dev == NULL)
return (LIBUSB20_ERROR_INVALID_PARAM);
libusb20_dev_reset(dev->os_priv);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_reset_device leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_reset_device leave");
return (0);
}
@@ -737,12 +715,12 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_kernel_driver_active enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_kernel_driver_active enter");
if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_kernel_driver_active leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_kernel_driver_active leave");
return (libusb20_dev_kernel_driver_active(devh->os_priv, interface));
}
@@ -754,7 +732,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_detach_kernel_driver enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_detach_kernel_driver enter");
if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -763,7 +741,7 @@
if (libusb20_dev_detach_kernel_driver(pdev, interface) == LIBUSB20_ERROR_OTHER)
return (LIBUSB_ERROR_OTHER);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_detach_kernel_driver leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_detach_kernel_driver leave");
return (0);
}
@@ -778,12 +756,12 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_attach_kernel_driver enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_attach_kernel_driver enter");
if (devh == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_attach_kernel_driver leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_attach_kernel_driver leave");
return (0);
}
@@ -799,7 +777,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_alloc_transfer enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_alloc_transfer enter");
len = sizeof(struct libusb_transfer) +
sizeof(struct usb_transfer) +
@@ -815,7 +793,7 @@
xfer = (struct libusb_transfer *) ((uint8_t *)bxfer +
sizeof(struct usb_transfer));
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_alloc_transfer leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_alloc_transfer leave");
return (xfer);
}
@@ -827,7 +805,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_transfer enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_transfer enter");
if (xfer == NULL)
return ;
@@ -836,7 +814,7 @@
sizeof(struct usb_transfer));
free(bxfer);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_transfer leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_transfer leave");
return;
}
@@ -861,27 +839,25 @@
switch (status) {
case LIBUSB20_TRANSFER_COMPLETED:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 SUBMIT");
- usb_xfer->actual_length += libusb20_tr_get_actual_length(xfer);
- usb_xfer->callback(usb_xfer);
-
- pthread_mutex_lock(&ctx->flying_transfers_lock);
- LIST_DEL(&usb_backend->list);
- pthread_mutex_unlock(&ctx->flying_transfers_lock);
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 SUBMIT");
+
+ usb_backend->transferred += libusb20_tr_get_actual_length(xfer);
+ usb_handle_transfer_completion(usb_backend, LIBUSB_TRANSFER_COMPLETED);
+
break ;
case LIBUSB20_TRANSFER_START:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 START");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 START");
usb_xfer->actual_length = 0;
switch (usb_xfer->type) {
case LIBUSB_TRANSFER_TYPE_CONTROL:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE CTR");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE CTR");
libusb20_tr_setup_control(xfer, usb_xfer->buffer,
(void *)(((uint8_t *) usb_xfer->buffer) +
sizeof(libusb_control_setup)),
usb_xfer->timeout);
break ;
case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE ISO");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE ISO");
iso_packets = libusb20_tr_get_max_frames(xfer);
if (usb_xfer->num_iso_packets > iso_packets)
usb_xfer->num_iso_packets = iso_packets;
@@ -892,60 +868,54 @@
libusb20_tr_set_total_frames(xfer, i);
break ;
case LIBUSB_TRANSFER_TYPE_BULK:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE BULK");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE BULK");
libusb20_tr_setup_bulk(xfer, usb_xfer->buffer,
usb_xfer->length, usb_xfer->timeout);
break ;
case LIBUSB_TRANSFER_TYPE_INTERRUPT:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE INTR");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "TYPE INTR");
libusb20_tr_setup_intr(xfer, usb_xfer->buffer,
usb_xfer->length, usb_xfer->timeout);
break ;
}
libusb20_tr_submit(xfer);
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 SUBMITED");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20 SUBMITED");
break ;
default:
- if (ctx->debug == LIBUSB_DEBUG_TRANSFER)
- printf("LIBUSB TRANSFER DEFAULT 0x%x\n", status);
- usb_xfer->actual_length = 0;
- usb_xfer->status = LIBUSB_TRANSFER_CANCELLED;
-
- pthread_mutex_lock(&ctx->flying_transfers_lock);
- LIST_DEL(&usb_backend->list);
- pthread_mutex_unlock(&ctx->flying_transfers_lock);
- usb_xfer->callback(usb_xfer);
-
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "TRANSFER DEFAULT 0x%x\n",
+ status);
+ usb_backend->transferred = 0;
+ usb_handle_transfer_completion(usb_backend, LIBUSB_TRANSFER_CANCELLED);
break ;
}
switch (status) {
case LIBUSB20_TRANSFER_COMPLETED:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS COMPLETED");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS COMPLETED");
usb_xfer->status = LIBUSB_TRANSFER_COMPLETED;
break ;
case LIBUSB20_TRANSFER_OVERFLOW:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR OVERFLOW");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR OVERFLOW");
usb_xfer->status = LIBUSB_TRANSFER_OVERFLOW;
break ;
case LIBUSB20_TRANSFER_NO_DEVICE:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR NO DEVICE");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR NO DEVICE");
usb_xfer->status = LIBUSB_TRANSFER_NO_DEVICE;
break ;
case LIBUSB20_TRANSFER_STALL:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR STALL");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR STALL");
usb_xfer->status = LIBUSB_TRANSFER_STALL;
break ;
case LIBUSB20_TRANSFER_CANCELLED:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR CANCELLED");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR CANCELLED");
usb_xfer->status = LIBUSB_TRANSFER_CANCELLED;
break ;
case LIBUSB20_TRANSFER_TIMED_OUT:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR TIMEOUT");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "STATUS TR TIMEOUT");
usb_xfer->status = LIBUSB_TRANSFER_TIMED_OUT;
break ;
case LIBUSB20_TRANSFER_ERROR:
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "ERROR");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "ERROR");
usb_xfer->status = LIBUSB_TRANSFER_ERROR;
break ;
}
@@ -1054,7 +1024,7 @@
ctx = xfer->dev_handle->dev->ctx;
pdev = xfer->dev_handle->os_priv;
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_submit_transfer enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_submit_transfer enter");
usb_backend = (struct usb_transfer *) ((uint8_t *)xfer -
sizeof(struct usb_transfer));
@@ -1135,13 +1105,14 @@
libusb20_tr_set_callback(usb20_xfer[1], libusb10_proxy);
}
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20_TR_START");
libusb20_tr_start(usb20_xfer[0]);
if (xfer->type == LIBUSB_TRANSFER_TYPE_ISOCHRONOUS)
libusb20_tr_start(usb20_xfer[1]);
pthread_mutex_unlock(&libusb20_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_submit_transfer leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_submit_transfer leave");
return (0);
}
@@ -1152,7 +1123,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_cancel_transfer enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_cancel_transfer enter");
if (xfer == NULL)
return (LIBUSB_ERROR_NO_MEM);
@@ -1161,7 +1132,7 @@
libusb20_tr_stop(xfer->os_priv);
pthread_mutex_unlock(&libusb20_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_cancel_transfer leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_cancel_transfer leave");
return (0);
}
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10.h#12 (text+ko) ====
@@ -89,7 +89,20 @@
uint8_t flags;
};
-UNEXPORTED void dprintf(libusb_context *ctx, int debug, char *str);
+#define DPRINTF(ctx, dbg, format, args...) \
+if (ctx->debug == dbg) { \
+ printf("LIBUSB_%s : ", (ctx->debug == LIBUSB_DEBUG_FUNCTION) ? "FUNCTION" : "TRANSFER"); \
+ switch(ctx->debug) { \
+ case LIBUSB_DEBUG_FUNCTION: \
+ printf(format, ## args);\
+ break ; \
+ case LIBUSB_DEBUG_TRANSFER: \
+ printf(format, ## args);\
+ break ; \
+ } \
+ printf("\n"); \
+}
+
UNEXPORTED int usb_add_pollfd(libusb_context *ctx, int fd, short events);
UNEXPORTED void usb_remove_pollfd(libusb_context *ctx, int fd);
UNEXPORTED void usb_handle_transfer_completion(struct usb_transfer *uxfer,
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_desc.c#17 (text+ko) ====
@@ -46,7 +46,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_descriptor enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_descriptor enter");
if ((dev == NULL) || (desc == NULL))
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -69,7 +69,7 @@
desc->iSerialNumber = pdesc->iSerialNumber;
desc->bNumConfigurations = pdesc->bNumConfigurations;
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_descriptor leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_device_descriptor leave");
return (0);
}
@@ -83,12 +83,12 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_active_config_descriptor enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_active_config_descriptor enter");
pdev = dev->os_priv;
idx = libusb20_dev_get_config_index(pdev);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_active_config_descriptor leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_active_config_descriptor leave");
return (libusb_get_config_descriptor(dev, idx, config));
}
@@ -112,7 +112,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor enter");
if (dev == NULL || config == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -224,7 +224,7 @@
}
free(pconf);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor leave");
return (0);
}
@@ -240,7 +240,7 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor_by_value enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor_by_value enter");
if (dev == NULL || config == NULL)
return (LIBUSB_ERROR_INVALID_PARAM);
@@ -258,7 +258,7 @@
free(pconf);
}
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor_by_value leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_config_descriptor_by_value leave");
return (LIBUSB_ERROR_NOT_FOUND);
}
@@ -269,10 +269,10 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_config_descriptor enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_config_descriptor enter");
free(config);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_config_descriptor leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_free_config_descriptor leave");
}
int
@@ -285,13 +285,13 @@
ctx = NULL;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_string_descriptor_ascii enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_string_descriptor_ascii enter");
if (dev == NULL || data == NULL)
return (LIBUSB20_ERROR_INVALID_PARAM);
pdev = dev->os_priv;
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_string_descriptor_ascii leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_get_string_descriptor_ascii leave");
if (libusb20_dev_req_string_simple_sync(pdev, desc_index,
data, length) == 0)
return (strlen(data));
==== //depot/projects/soc2009/syl_usb/src/lib/libusb/libusb10_io.c#18 (text+ko) ====
@@ -245,7 +245,7 @@
int i;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "handle_events enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "handle_events enter");
nfds = 0;
i = -1;
@@ -316,7 +316,7 @@
pthread_mutex_lock(&libusb20_lock);
- dprintf(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20_PROCESS");
+ DPRINTF(ctx, LIBUSB_DEBUG_TRANSFER, "LIBUSB20_PROCESS");
ret = libusb20_dev_process(devh->os_priv);
pthread_mutex_unlock(&libusb20_lock);
@@ -333,7 +333,7 @@
handled:
free(fds);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "handle_events leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "handle_events leave");
return ret;
}
@@ -345,7 +345,7 @@
int ret;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_try_lock_events enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_try_lock_events enter");
pthread_mutex_lock(&ctx->pollfd_modify_lock);
ret = ctx->pollfd_modify;
@@ -361,7 +361,7 @@
ctx->event_handler_active = 1;
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_try_lock_events leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_try_lock_events leave");
return (0);
}
@@ -369,19 +369,19 @@
libusb_lock_events(libusb_context * ctx)
{
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_events enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_events enter");
pthread_mutex_lock(&ctx->events_lock);
ctx->event_handler_active = 1;
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_events leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_events leave");
}
void
libusb_unlock_events(libusb_context * ctx)
{
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_events enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_events enter");
ctx->event_handler_active = 0;
pthread_mutex_unlock(&ctx->events_lock);
@@ -390,7 +390,7 @@
pthread_cond_broadcast(&ctx->event_waiters_cond);
pthread_mutex_unlock(&ctx->event_waiters_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_events leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_events leave");
}
int
@@ -399,7 +399,7 @@
int ret;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handling_ok enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handling_ok enter");
pthread_mutex_lock(&ctx->pollfd_modify_lock);
ret = ctx->pollfd_modify;
@@ -408,7 +408,7 @@
if (ret != 0)
return (0);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handling_ok leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handling_ok leave");
return (1);
}
@@ -418,7 +418,7 @@
int ret;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handler_active enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handler_active enter");
pthread_mutex_lock(&ctx->pollfd_modify_lock);
ret = ctx->pollfd_modify;
@@ -427,7 +427,7 @@
if (ret != 0)
return (1);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handler_active leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_event_handler_active leave");
return (ctx->event_handler_active);
}
@@ -435,22 +435,22 @@
libusb_lock_event_waiters(libusb_context * ctx)
{
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_event_waiters enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_event_waiters enter");
pthread_mutex_lock(&ctx->event_waiters_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_event_waiters leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_lock_event_waiters leave");
}
void
libusb_unlock_event_waiters(libusb_context * ctx)
{
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_event_waiters enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_event_waiters enter");
pthread_mutex_unlock(&ctx->event_waiters_lock);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_event_waiters leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_unlock_event_waiters leave");
}
int
@@ -460,7 +460,7 @@
struct timespec ts;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_wait_for_event enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_wait_for_event enter");
if (tv == NULL) {
pthread_cond_wait(&ctx->event_waiters_cond,
@@ -485,7 +485,7 @@
if (ret == ETIMEDOUT)
return (1);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_wait_for_event leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_wait_for_event leave");
return (0);
}
@@ -497,7 +497,7 @@
int ret;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events_timeout enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events_timeout enter");
ret = get_next_timeout(ctx, tv, &poll_timeout);
if (ret != 0) {
@@ -524,7 +524,7 @@
else if (ret == 1)
return (handle_timeouts(ctx));
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events_timeout leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events_timeout leave");
return (0);
}
@@ -535,13 +535,13 @@
int ret;
GET_CONTEXT(ctx);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events enter");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events enter");
tv.tv_sec = 2;
tv.tv_usec = 0;
ret = libusb_handle_events_timeout(ctx, &tv);
- dprintf(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events leave");
+ DPRINTF(ctx, LIBUSB_DEBUG_FUNCTION, "libusb_handle_events leave");
return (ret);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list