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.tar.gz rockbox-ab09322b7acfa1667f3124612735ea83ce5342d5.zip |
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 eb1db5d884..2a3808dd92 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "system.h" | 22 | #include "system.h" |
23 | #include "usb_core.h" | 23 | #include "usb_core.h" |
24 | #include "usb_drv.h" | 24 | #include "usb_drv.h" |
25 | #include "usb_class_driver.h" | ||
25 | //#define LOGF_ENABLE | 26 | //#define LOGF_ENABLE |
26 | #include "logf.h" | 27 | #include "logf.h" |
27 | #include "storage.h" | 28 | #include "storage.h" |
@@ -371,24 +372,20 @@ int usb_storage_set_first_interface(int interface) | |||
371 | 372 | ||
372 | int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size) | 373 | int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size) |
373 | { | 374 | { |
374 | endpoint_descriptor.wMaxPacketSize=max_packet_size; | 375 | unsigned char *orig_dest = dest; |
375 | interface_descriptor.bInterfaceNumber=usb_interface; | ||
376 | 376 | ||
377 | memcpy(dest,&interface_descriptor, | 377 | interface_descriptor.bInterfaceNumber = usb_interface; |
378 | sizeof(struct usb_interface_descriptor)); | 378 | PACK_DESCRIPTOR(dest, interface_descriptor); |
379 | dest+=sizeof(struct usb_interface_descriptor); | 379 | |
380 | endpoint_descriptor.wMaxPacketSize = max_packet_size; | ||
380 | 381 | ||
381 | endpoint_descriptor.bEndpointAddress = ep_in; | 382 | endpoint_descriptor.bEndpointAddress = ep_in; |
382 | memcpy(dest,&endpoint_descriptor, | 383 | PACK_DESCRIPTOR(dest, endpoint_descriptor); |
383 | sizeof(struct usb_endpoint_descriptor)); | ||
384 | dest+=sizeof(struct usb_endpoint_descriptor); | ||
385 | 384 | ||
386 | endpoint_descriptor.bEndpointAddress = ep_out; | 385 | endpoint_descriptor.bEndpointAddress = ep_out; |
387 | memcpy(dest,&endpoint_descriptor, | 386 | PACK_DESCRIPTOR(dest, endpoint_descriptor); |
388 | sizeof(struct usb_endpoint_descriptor)); | ||
389 | 387 | ||
390 | return sizeof(struct usb_interface_descriptor) + | 388 | return (dest - orig_dest); |
391 | 2*sizeof(struct usb_endpoint_descriptor); | ||
392 | } | 389 | } |
393 | 390 | ||
394 | void usb_storage_init_connection(void) | 391 | void usb_storage_init_connection(void) |