Add a way to do control transfers on other pipes than the default pipe.
This commit is contained in:
parent
6417d32d9d
commit
d9c7baa183
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: usbdi.c,v 1.76 2000/06/06 11:36:21 augustss Exp $ */
|
/* $NetBSD: usbdi.c,v 1.77 2000/09/23 21:02:04 augustss Exp $ */
|
||||||
/* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */
|
/* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -884,6 +884,14 @@ usbd_do_request(usbd_device_handle dev, usb_device_request_t *req, void *data)
|
||||||
usbd_status
|
usbd_status
|
||||||
usbd_do_request_flags(usbd_device_handle dev, usb_device_request_t *req,
|
usbd_do_request_flags(usbd_device_handle dev, usb_device_request_t *req,
|
||||||
void *data, u_int16_t flags, int *actlen)
|
void *data, u_int16_t flags, int *actlen)
|
||||||
|
{
|
||||||
|
return (usbd_do_request_flags_pipe(dev, dev->default_pipe, req,
|
||||||
|
data, flags, actlen));
|
||||||
|
}
|
||||||
|
|
||||||
|
usbd_status
|
||||||
|
usbd_do_request_flags_pipe(usbd_device_handle dev, usbd_pipe_handle pipe,
|
||||||
|
usb_device_request_t *req, void *data, u_int16_t flags, int *actlen)
|
||||||
{
|
{
|
||||||
usbd_xfer_handle xfer;
|
usbd_xfer_handle xfer;
|
||||||
usbd_status err;
|
usbd_status err;
|
||||||
|
@ -903,7 +911,8 @@ usbd_do_request_flags(usbd_device_handle dev, usb_device_request_t *req,
|
||||||
if (xfer == NULL)
|
if (xfer == NULL)
|
||||||
return (USBD_NOMEM);
|
return (USBD_NOMEM);
|
||||||
usbd_setup_default_xfer(xfer, dev, 0, USBD_DEFAULT_TIMEOUT, req,
|
usbd_setup_default_xfer(xfer, dev, 0, USBD_DEFAULT_TIMEOUT, req,
|
||||||
data, UGETW(req->wLength), flags, 0);
|
data, UGETW(req->wLength), flags, 0);
|
||||||
|
xfer->pipe = pipe;
|
||||||
err = usbd_sync_transfer(xfer);
|
err = usbd_sync_transfer(xfer);
|
||||||
#if defined(USB_DEBUG) || defined(DIAGNOSTIC)
|
#if defined(USB_DEBUG) || defined(DIAGNOSTIC)
|
||||||
if (xfer->actlen > xfer->length)
|
if (xfer->actlen > xfer->length)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: usbdi.h,v 1.43 2000/06/01 14:29:02 augustss Exp $ */
|
/* $NetBSD: usbdi.h,v 1.44 2000/09/23 21:02:04 augustss Exp $ */
|
||||||
/* $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $ */
|
/* $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -142,6 +142,9 @@ usbd_status usbd_do_request_async(usbd_device_handle pipe,
|
||||||
usbd_status usbd_do_request_flags(usbd_device_handle pipe,
|
usbd_status usbd_do_request_flags(usbd_device_handle pipe,
|
||||||
usb_device_request_t *req,
|
usb_device_request_t *req,
|
||||||
void *data, u_int16_t flags, int *);
|
void *data, u_int16_t flags, int *);
|
||||||
|
usbd_status usbd_do_request_flags_pipe(
|
||||||
|
usbd_device_handle dev, usbd_pipe_handle pipe,
|
||||||
|
usb_device_request_t *req, void *data, u_int16_t flags, int *actlen);
|
||||||
usb_interface_descriptor_t *usbd_get_interface_descriptor
|
usb_interface_descriptor_t *usbd_get_interface_descriptor
|
||||||
(usbd_interface_handle iface);
|
(usbd_interface_handle iface);
|
||||||
usb_config_descriptor_t *usbd_get_config_descriptor(usbd_device_handle dev);
|
usb_config_descriptor_t *usbd_get_config_descriptor(usbd_device_handle dev);
|
||||||
|
|
Loading…
Reference in New Issue