Hi all,
In looking at the typedefs in usb.h I found devrequest. That's a pretty
generic name for a USB specific typedef :)
So here's a patch against 2.5.2-pre7 that renames the devrequest typedef
to "struct usb_devrequest", adds some documentation for the structure,
and changes all in kernel usages of the devrequest structure.
Does anyone have any problems with this patch?
thanks,
greg k-h
diff -Nru a/arch/cris/drivers/usb-host.c b/arch/cris/drivers/usb-host.c
--- a/arch/cris/drivers/usb-host.c Fri Jan 4 17:11:57 2002
+++ b/arch/cris/drivers/usb-host.c Fri Jan 4 17:11:57 2002
@@ -1981,7 +1981,7 @@
struct usb_device *usb_dev = urb->dev;
etrax_hc_t *hc = usb_dev->bus->hcpriv;
unsigned int pipe = urb->pipe;
- devrequest *cmd = (devrequest *) urb->setup_packet;
+ struct usb_devrequest *cmd = (struct usb_devrequest *) urb->setup_packet;
void *data = urb->transfer_buffer;
int leni = urb->transfer_buffer_length;
int len = 0;
diff -Nru a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
--- a/drivers/bluetooth/hci_usb.c Fri Jan 4 17:11:57 2002
+++ b/drivers/bluetooth/hci_usb.c Fri Jan 4 17:11:57 2002
@@ -437,7 +437,7 @@
static int hci_usb_ctrl_msg(struct hci_usb *husb, struct sk_buff *skb)
{
struct urb *urb = husb->ctrl_urb;
- devrequest *dr = &husb->dev_req;
+ struct usb_devrequest *dr = &husb->dev_req;
int pipe, status;
DBG("%s len %d", husb->hdev.name, skb->len);
diff -Nru a/drivers/char/joystick/iforce.c b/drivers/char/joystick/iforce.c
--- a/drivers/char/joystick/iforce.c Fri Jan 4 17:11:57 2002
+++ b/drivers/char/joystick/iforce.c Fri Jan 4 17:11:57 2002
@@ -134,7 +134,7 @@
#ifdef IFORCE_USB
struct usb_device *usbdev; /* USB transfer */
struct urb irq, out, ctrl;
- devrequest dr;
+ struct usb_devrequest dr;
#endif
/* Force Feedback */
wait_queue_head_t wait;
diff -Nru a/drivers/isdn/hisax/st5481.h b/drivers/isdn/hisax/st5481.h
--- a/drivers/isdn/hisax/st5481.h Fri Jan 4 17:11:57 2002
+++ b/drivers/isdn/hisax/st5481.h Fri Jan 4 17:11:57 2002
@@ -309,7 +309,7 @@
typedef void (*ctrl_complete_t)(void *);
typedef struct ctrl_msg {
- devrequest dr;
+ struct usb_devrequest dr;
ctrl_complete_t complete;
void *context;
} ctrl_msg;
diff -Nru a/drivers/usb/acm.c b/drivers/usb/acm.c
--- a/drivers/usb/acm.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/acm.c Fri Jan 4 17:11:57 2002
@@ -184,7 +184,7 @@
static void acm_ctrl_irq(struct urb *urb)
{
struct acm *acm = urb->context;
- devrequest *dr = urb->transfer_buffer;
+ struct usb_devrequest *dr = urb->transfer_buffer;
unsigned char *data = (unsigned char *)(dr + 1);
int newctrl;
diff -Nru a/drivers/usb/bluetooth.c b/drivers/usb/bluetooth.c
--- a/drivers/usb/bluetooth.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/bluetooth.c Fri Jan 4 17:11:57 2002
@@ -179,7 +179,7 @@
__u8 control_out_bInterfaceNum;
struct urb * control_urb_pool[NUM_CONTROL_URBS];
- devrequest dr[NUM_CONTROL_URBS];
+ struct usb_devrequest dr[NUM_CONTROL_URBS];
unsigned char * interrupt_in_buffer;
struct urb * interrupt_in_urb;
@@ -288,7 +288,7 @@
static int bluetooth_ctrl_msg (struct usb_bluetooth *bluetooth, int request, int
value, const unsigned char *buf, int len)
{
struct urb *urb = NULL;
- devrequest *dr = NULL;
+ struct usb_devrequest *dr = NULL;
int i;
int status;
diff -Nru a/drivers/usb/catc.c b/drivers/usb/catc.c
--- a/drivers/usb/catc.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/catc.c Fri Jan 4 17:11:57 2002
@@ -159,7 +159,7 @@
u8 rx_buf[RX_MAX_BURST * (PKT_SZ + 2)];
u8 irq_buf[2];
u8 ctrl_buf[64];
- devrequest ctrl_dr;
+ struct usb_devrequest ctrl_dr;
struct timer_list timer;
u8 stats_buf[8];
@@ -383,7 +383,7 @@
struct ctrl_queue *q = catc->ctrl_queue + catc->ctrl_tail;
struct usb_device *usbdev = catc->usbdev;
struct urb *urb = &catc->ctrl_urb;
- devrequest *dr = &catc->ctrl_dr;
+ struct usb_devrequest *dr = &catc->ctrl_dr;
int status;
dr->request = q->request;
diff -Nru a/drivers/usb/devio.c b/drivers/usb/devio.c
--- a/drivers/usb/devio.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/devio.c Fri Jan 4 17:11:57 2002
@@ -757,7 +757,7 @@
struct usbdevfs_iso_packet_desc *isopkt = NULL;
struct usb_endpoint_descriptor *ep_desc;
struct async *as;
- devrequest *dr = NULL;
+ struct usb_devrequest *dr = NULL;
unsigned int u, totlen, isofrmlen;
int ret;
@@ -787,7 +787,7 @@
/* min 8 byte setup packet, max arbitrary */
if (uurb.buffer_length < 8 || uurb.buffer_length > PAGE_SIZE)
return -EINVAL;
- if (!(dr = kmalloc(sizeof(devrequest), GFP_KERNEL)))
+ if (!(dr = kmalloc(sizeof(struct usb_devrequest), GFP_KERNEL)))
return -ENOMEM;
if (copy_from_user(dr, (unsigned char*)uurb.buffer, 8)) {
kfree(dr);
diff -Nru a/drivers/usb/hcd/ehci-q.c b/drivers/usb/hcd/ehci-q.c
--- a/drivers/usb/hcd/ehci-q.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/hcd/ehci-q.c Fri Jan 4 17:11:57 2002
@@ -362,7 +362,7 @@
/* SETUP for control urb? */
if (unlikely (QTD_PID (token) == 2))
pci_unmap_single (ehci->hcd.pdev,
- qtd->buf_dma, sizeof (devrequest),
+ qtd->buf_dma, sizeof (struct usb_devrequest),
PCI_DMA_TODEVICE);
/* another queued urb? */
@@ -443,13 +443,13 @@
qtd->buf_dma = pci_map_single (
ehci->hcd.pdev,
urb->setup_packet,
- sizeof (devrequest),
+ sizeof (struct usb_devrequest),
PCI_DMA_TODEVICE);
if (unlikely (!qtd->buf_dma))
goto cleanup;
/* SETUP pid */
- qtd_fill (qtd, qtd->buf_dma, sizeof (devrequest),
+ qtd_fill (qtd, qtd->buf_dma, sizeof (struct usb_devrequest),
token | (2 /* "setup" */ << 8));
/* ... and always at least one more pid */
diff -Nru a/drivers/usb/hcd.c b/drivers/usb/hcd.c
--- a/drivers/usb/hcd.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/hcd.c Fri Jan 4 17:11:57 2002
@@ -268,7 +268,7 @@
/* Root hub control transfers execute synchronously */
static int rh_call_control (struct usb_hcd *hcd, struct urb *urb)
{
- devrequest *cmd = (devrequest *) urb->setup_packet;
+ struct usb_devrequest *cmd = (struct usb_devrequest *) urb->setup_packet;
u16 typeReq, wValue, wIndex, wLength;
const u8 *bufp = 0;
u8 *ubuf = urb->transfer_buffer;
diff -Nru a/drivers/usb/hid.h b/drivers/usb/hid.h
--- a/drivers/usb/hid.h Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/hid.h Fri Jan 4 17:11:57 2002
@@ -367,7 +367,7 @@
#define HID_CONTROL_FIFO_SIZE 8
struct hid_control_fifo {
- devrequest dr;
+ struct usb_devrequest dr;
char buffer[HID_BUFFER_SIZE];
};
diff -Nru a/drivers/usb/kaweth.c b/drivers/usb/kaweth.c
--- a/drivers/usb/kaweth.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/kaweth.c Fri Jan 4 17:11:57 2002
@@ -110,7 +110,7 @@
);
static void kaweth_disconnect(struct usb_device *dev, void *ptr);
int kaweth_internal_control_msg(struct usb_device *usb_dev, unsigned int pipe,
- devrequest *cmd, void *data, int len,
+ struct usb_devrequest *cmd, void *data, int len,
int timeout);
/****************************************************************
@@ -229,7 +229,7 @@
__u16 size,
int timeout)
{
- devrequest *dr;
+ struct usb_devrequest *dr;
kaweth_dbg("kaweth_control()");
@@ -238,7 +238,7 @@
return -EBUSY;
}
- dr = kmalloc(sizeof(devrequest),
+ dr = kmalloc(sizeof(struct usb_devrequest),
in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
if(!dr)
@@ -1015,7 +1015,7 @@
/*-------------------------------------------------------------------*/
// returns status (negative) or length (positive)
int kaweth_internal_control_msg(struct usb_device *usb_dev, unsigned int pipe,
- devrequest *cmd, void *data, int len, int timeout)
+ struct usb_devrequest *cmd, void *data, int len, int
+timeout)
{
urb_t *urb;
int retv;
diff -Nru a/drivers/usb/pegasus.h b/drivers/usb/pegasus.h
--- a/drivers/usb/pegasus.h Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/pegasus.h Fri Jan 4 17:11:57 2002
@@ -108,7 +108,7 @@
int dev_index;
int intr_interval;
struct urb ctrl_urb, rx_urb, tx_urb, intr_urb;
- devrequest dr;
+ struct usb_devrequest dr;
wait_queue_head_t ctrl_wait;
struct semaphore ctrl_sem;
unsigned char ALIGN(rx_buff[PEGASUS_MAX_MTU]);
diff -Nru a/drivers/usb/scanner.c b/drivers/usb/scanner.c
--- a/drivers/usb/scanner.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/scanner.c Fri Jan 4 17:11:57 2002
@@ -746,8 +746,8 @@
case SCANNER_IOCTL_CTRLMSG:
{
struct ctrlmsg_ioctl {
- devrequest req;
- void *data;
+ struct usb_devrequest req;
+ void *data;
} cmsg;
int pipe, nb, ret;
unsigned char buf[64];
diff -Nru a/drivers/usb/scanner.h b/drivers/usb/scanner.h
--- a/drivers/usb/scanner.h Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/scanner.h Fri Jan 4 17:11:57 2002
@@ -230,7 +230,7 @@
#define SCANNER_IOCTL_VENDOR _IOR('U', 0x20, int)
#define SCANNER_IOCTL_PRODUCT _IOR('U', 0x21, int)
/* send/recv a control message to the scanner */
-#define SCANNER_IOCTL_CTRLMSG _IOWR('U', 0x22, devrequest )
+#define SCANNER_IOCTL_CTRLMSG _IOWR('U', 0x22, struct usb_devrequest)
#define SCN_MAX_MNR 16 /* We're allocated 16 minors */
diff -Nru a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
--- a/drivers/usb/storage/transport.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/storage/transport.c Fri Jan 4 17:11:57 2002
@@ -385,10 +385,10 @@
{
struct completion urb_done;
int status;
- devrequest *dr;
+ struct usb_devrequest *dr;
/* allocate the device request structure */
- dr = kmalloc(sizeof(devrequest), GFP_NOIO);
+ dr = kmalloc(sizeof(struct usb_devrequest), GFP_NOIO);
if (!dr)
return -ENOMEM;
diff -Nru a/drivers/usb/uhci.c b/drivers/usb/uhci.c
--- a/drivers/usb/uhci.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/uhci.c Fri Jan 4 17:11:57 2002
@@ -646,7 +646,7 @@
if (usb_pipetype(urb->pipe) == PIPE_CONTROL && urb->setup_packet) {
urbp->setup_packet_dma_handle = pci_map_single(uhci->dev,
- urb->setup_packet, sizeof(devrequest),
+ urb->setup_packet, sizeof(struct usb_devrequest),
PCI_DMA_TODEVICE);
if (!urbp->setup_packet_dma_handle)
return NULL;
@@ -715,7 +715,7 @@
if (urbp->setup_packet_dma_handle)
pci_unmap_single(uhci->dev, urbp->setup_packet_dma_handle,
- sizeof(devrequest), PCI_DMA_TODEVICE);
+ sizeof(struct usb_devrequest), PCI_DMA_TODEVICE);
if (urbp->transfer_buffer_dma_handle)
pci_unmap_single(uhci->dev, urbp->transfer_buffer_dma_handle,
@@ -2013,7 +2013,7 @@
{
struct uhci *uhci = (struct uhci *)urb->dev->bus->hcpriv;
unsigned int pipe = urb->pipe;
- devrequest *cmd = (devrequest *)urb->setup_packet;
+ struct usb_devrequest *cmd = (struct usb_devrequest *)urb->setup_packet;
void *data = urb->transfer_buffer;
int leni = urb->transfer_buffer_length;
int len = 0;
@@ -2276,7 +2276,7 @@
if (urbp->setup_packet_dma_handle)
pci_dma_sync_single(uhci->dev, urbp->setup_packet_dma_handle,
- sizeof(devrequest), PCI_DMA_TODEVICE);
+ sizeof(struct usb_devrequest), PCI_DMA_TODEVICE);
urb->dev = NULL;
if (urb->complete)
diff -Nru a/drivers/usb/usb-ohci.c b/drivers/usb/usb-ohci.c
--- a/drivers/usb/usb-ohci.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/usb-ohci.c Fri Jan 4 17:11:57 2002
@@ -1905,7 +1905,7 @@
struct usb_device * usb_dev = urb->dev;
ohci_t * ohci = usb_dev->bus->hcpriv;
unsigned int pipe = urb->pipe;
- devrequest * cmd = (devrequest *) urb->setup_packet;
+ struct usb_devrequest * cmd = (struct usb_devrequest *) urb->setup_packet;
void * data = urb->transfer_buffer;
int leni = urb->transfer_buffer_length;
int len = 0;
diff -Nru a/drivers/usb/usb-uhci.c b/drivers/usb/usb-uhci.c
--- a/drivers/usb/usb-uhci.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/usb-uhci.c Fri Jan 4 17:11:57 2002
@@ -1085,7 +1085,7 @@
{
if (urb_priv->setup_packet_dma)
pci_dma_sync_single(s->uhci_pci, urb_priv->setup_packet_dma,
- sizeof(devrequest), PCI_DMA_TODEVICE);
+ sizeof(struct usb_devrequest), PCI_DMA_TODEVICE);
if (urb_priv->transfer_buffer_dma)
pci_dma_sync_single(s->uhci_pci, urb_priv->transfer_buffer_dma,
@@ -1099,7 +1099,7 @@
{
if (urb_priv->setup_packet_dma) {
pci_unmap_single(s->uhci_pci, urb_priv->setup_packet_dma,
- sizeof(devrequest), PCI_DMA_TODEVICE);
+ sizeof(struct usb_devrequest), PCI_DMA_TODEVICE);
urb_priv->setup_packet_dma = 0;
}
if (urb_priv->transfer_buffer_dma) {
@@ -1678,7 +1678,7 @@
if (type == PIPE_CONTROL)
urb_priv->setup_packet_dma = pci_map_single(s->uhci_pci,
urb->setup_packet,
- sizeof(devrequest),
PCI_DMA_TODEVICE);
+ sizeof(struct
+usb_devrequest), PCI_DMA_TODEVICE);
if (urb->transfer_buffer_length)
urb_priv->transfer_buffer_dma = pci_map_single(s->uhci_pci,
@@ -1963,7 +1963,7 @@
struct usb_device *usb_dev = urb->dev;
uhci_t *uhci = usb_dev->bus->hcpriv;
unsigned int pipe = urb->pipe;
- devrequest *cmd = (devrequest *) urb->setup_packet;
+ struct usb_devrequest *cmd = (struct usb_devrequest *) urb->setup_packet;
void *data = urb->transfer_buffer;
int leni = urb->transfer_buffer_length;
int len = 0;
diff -Nru a/drivers/usb/usb.c b/drivers/usb/usb.c
--- a/drivers/usb/usb.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/usb.c Fri Jan 4 17:11:57 2002
@@ -1287,7 +1287,7 @@
/*-------------------------------------------------------------------*/
// returns status (negative) or length (positive)
int usb_internal_control_msg(struct usb_device *usb_dev, unsigned int pipe,
- devrequest *cmd, void *data, int len, int timeout)
+ struct usb_devrequest *cmd, void *data, int len, int
+timeout)
{
urb_t *urb;
int retv;
@@ -1331,7 +1331,7 @@
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)
{
- devrequest *dr = kmalloc(sizeof(devrequest), GFP_KERNEL);
+ struct usb_devrequest *dr = kmalloc(sizeof(struct usb_devrequest), GFP_KERNEL);
int ret;
if (!dr)
diff -Nru a/drivers/usb/usbkbd.c b/drivers/usb/usbkbd.c
--- a/drivers/usb/usbkbd.c Fri Jan 4 17:11:57 2002
+++ b/drivers/usb/usbkbd.c Fri Jan 4 17:11:57 2002
@@ -74,7 +74,7 @@
unsigned char new[8];
unsigned char old[8];
struct urb irq, led;
- devrequest dr;
+ struct usb_devrequest dr;
unsigned char leds, newleds;
char name[128];
int open;
diff -Nru a/include/linux/usb.h b/include/linux/usb.h
--- a/include/linux/usb.h Fri Jan 4 17:11:57 2002
+++ b/include/linux/usb.h Fri Jan 4 17:11:57 2002
@@ -117,13 +117,26 @@
mdelay(ms);
}
-typedef struct {
+/**
+ * struct usb_devrequest - structure used to make USB device requests easier to
+create and decode
+ * @requesttype: matches the USB bmRequestType field
+ * @request: matches the USB bRequest field
+ * @value: matches the USB wValue field
+ * @index: matches the USB wIndex field
+ * @length: matches the USB wLength field
+ *
+ * This structure is used to send device requests to a USB device. It matches
+ * the different fields of the USB 2.0 Spec section 9.3, table 9-2. See the
+ * USB spec for a fuller description of the different fields, and what they are
+ * used for.
+ */
+struct usb_devrequest {
__u8 requesttype;
__u8 request;
__u16 value;
__u16 index;
__u16 length;
-} devrequest __attribute__ ((packed));
+} __attribute__ ((packed));
/*
* USB device number allocation bitmap. There's one bitmap
diff -Nru a/include/net/bluetooth/hci_usb.h b/include/net/bluetooth/hci_usb.h
--- a/include/net/bluetooth/hci_usb.h Fri Jan 4 17:11:57 2002
+++ b/include/net/bluetooth/hci_usb.h Fri Jan 4 17:11:57 2002
@@ -38,7 +38,7 @@
struct hci_usb {
struct usb_device *udev;
- devrequest dev_req;
+ struct usb_devrequest dev_req;
struct urb *ctrl_urb;
struct urb *intr_urb;
struct urb *read_urb;