diff options
| author | Frank Gevaerts <frank@gevaerts.be> | 2009-04-18 20:04:52 +0000 |
|---|---|---|
| committer | Frank Gevaerts <frank@gevaerts.be> | 2009-04-18 20:04:52 +0000 |
| commit | ab09322b7acfa1667f3124612735ea83ce5342d5 (patch) | |
| tree | c3b35f6bc62e95dfc7b1ac6840564f24e4bca557 /firmware/usbstack/usb_storage.c | |
| parent | 8b6b46f3c47aa3772598b359b43e3efe1138e9e6 (diff) | |
| download | rockbox-ab09322b7acfa1667f3124612735ea83ce5342d5.zip rockbox-ab09322b7acfa1667f3124612735ea83ce5342d5.tar.gz rockbox-ab09322b7acfa1667f3124612735ea83ce5342d5.tar.bz2 rockbox-ab09322b7acfa1667f3124612735ea83ce5342d5.tar.xz | |
Add a PACK_DESCRIPTOR macro to make the class drivers a bit more readable (FS#10145 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20733 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/usb_storage.c')
| -rw-r--r-- | firmware/usbstack/usb_storage.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index eb1db5d..2a3808d 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c @@ -22,6 +22,7 @@ #include "system.h" #include "usb_core.h" #include "usb_drv.h" +#include "usb_class_driver.h" //#define LOGF_ENABLE #include "logf.h" #include "storage.h" @@ -371,24 +372,20 @@ int usb_storage_set_first_interface(int interface) int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size) { - endpoint_descriptor.wMaxPacketSize=max_packet_size; - interface_descriptor.bInterfaceNumber=usb_interface; + unsigned char *orig_dest = dest; - memcpy(dest,&interface_descriptor, - sizeof(struct usb_interface_descriptor)); - dest+=sizeof(struct usb_interface_descriptor); + interface_descriptor.bInterfaceNumber = usb_interface; + PACK_DESCRIPTOR(dest, interface_descriptor); + + endpoint_descriptor.wMaxPacketSize = max_packet_size; endpoint_descriptor.bEndpointAddress = ep_in; - memcpy(dest,&endpoint_descriptor, - sizeof(struct usb_endpoint_descriptor)); - dest+=sizeof(struct usb_endpoint_descriptor); + PACK_DESCRIPTOR(dest, endpoint_descriptor); endpoint_descriptor.bEndpointAddress = ep_out; - memcpy(dest,&endpoint_descriptor, - sizeof(struct usb_endpoint_descriptor)); + PACK_DESCRIPTOR(dest, endpoint_descriptor); - return sizeof(struct usb_interface_descriptor) + - 2*sizeof(struct usb_endpoint_descriptor); + return (dest - orig_dest); } void usb_storage_init_connection(void) |