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;