USB_CONTROL_MSG
Section: USB Core APIs (9)
Updated: February 2011
Index
Return to Main Contents
 
NAME
usb_control_msg - Builds a control urb, sends it off and waits for completion
 
SYNOPSIS
- 
int usb_control_msg(struct usb_device * dev, unsigned int pipe, __u8 request, __u8 requesttype, __u16 value, __u16 index, void * data, __u16 size, int timeout);
ARGUMENTS
dev
- 
- pointer to the usb device to send the message to
pipe
- 
endpoint
lqpiperq
to send the message to
request
- 
USB message request value
requesttype
- 
USB message request type value
value
- 
USB message value
index
- 
USB message index value
data
- 
pointer to the data to send
size
- 
length in bytes of the data to send
timeout
- 
time in msecs to wait for the message to complete before timing out (if 0 the wait is forever)
CONTEXT
!in_interrupt ()
 
DESCRIPTION
This function sends a simple control message to a specified endpoint and waits for the message to complete, or timeout.
If successful, it returns the number of bytes transferred, otherwise a negative error number.
Don't use this function from within an interrupt context, like a bottom half handler. If you need an asynchronous message, or need to send a message from within interrupt context, use
usb_submit_urb. If a thread in your driver uses this call, make sure your
disconnect
method can wait for it to complete. Since you don't have a handle on the URB used, you can't cancel the request.
 
COPYRIGHT