diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2011-12-29 21:58:34 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2011-12-29 21:58:34 +0000 |
commit | 4c2126b5a8b0bea04d4c5ba8bee032f9bc0efbe0 (patch) | |
tree | e98a32588e3919908590b3c9ddac89dbc24caea3 | |
parent | 6a6269ffd8dfaf921588bae47cd55716abb78abb (diff) | |
download | rockbox-4c2126b5a8b0bea04d4c5ba8bee032f9bc0efbe0.tar.gz rockbox-4c2126b5a8b0bea04d4c5ba8bee032f9bc0efbe0.zip |
usb PACK_DATA: use a static inline to enable type checking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31467 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/usbstack/usb_charging_only.c | 2 | ||||
-rw-r--r-- | firmware/usbstack/usb_class_driver.h | 12 | ||||
-rw-r--r-- | firmware/usbstack/usb_hid.c | 6 | ||||
-rw-r--r-- | firmware/usbstack/usb_serial.c | 6 | ||||
-rw-r--r-- | firmware/usbstack/usb_storage.c | 6 |
5 files changed, 16 insertions, 16 deletions
diff --git a/firmware/usbstack/usb_charging_only.c b/firmware/usbstack/usb_charging_only.c index 7a8389e620..6bd17a92de 100644 --- a/firmware/usbstack/usb_charging_only.c +++ b/firmware/usbstack/usb_charging_only.c | |||
@@ -64,7 +64,7 @@ int usb_charging_only_get_config_descriptor(unsigned char *dest,int max_packet_s | |||
64 | unsigned char *orig_dest = dest; | 64 | unsigned char *orig_dest = dest; |
65 | 65 | ||
66 | interface_descriptor.bInterfaceNumber=usb_interface; | 66 | interface_descriptor.bInterfaceNumber=usb_interface; |
67 | PACK_DATA(dest, interface_descriptor); | 67 | PACK_DATA(&dest, interface_descriptor); |
68 | 68 | ||
69 | return (dest-orig_dest); | 69 | return (dest-orig_dest); |
70 | } | 70 | } |
diff --git a/firmware/usbstack/usb_class_driver.h b/firmware/usbstack/usb_class_driver.h index c8d1e7047d..20ee26a3d0 100644 --- a/firmware/usbstack/usb_class_driver.h +++ b/firmware/usbstack/usb_class_driver.h | |||
@@ -85,10 +85,10 @@ struct usb_class_driver { | |||
85 | #endif | 85 | #endif |
86 | }; | 86 | }; |
87 | 87 | ||
88 | #define PACK_DATA(dest, data) \ | 88 | #define PACK_DATA(dest, data) pack_data(dest, &(data), sizeof(data)) |
89 | do { \ | 89 | static inline void pack_data(uint8_t **dest, const void *data, size_t size) |
90 | memcpy(dest, &(data), sizeof(data)); \ | 90 | { |
91 | dest += sizeof(data); \ | 91 | memcpy(*dest, data, size); |
92 | } while (0) | 92 | *dest += size; |
93 | 93 | } | |
94 | #endif | 94 | #endif |
diff --git a/firmware/usbstack/usb_hid.c b/firmware/usbstack/usb_hid.c index b89e46f291..ed0816395a 100644 --- a/firmware/usbstack/usb_hid.c +++ b/firmware/usbstack/usb_hid.c | |||
@@ -561,7 +561,7 @@ static void descriptor_hid_get(unsigned char **dest) | |||
561 | logf("hid: desc len %u", hid_descriptor.wDescriptorLength0); | 561 | logf("hid: desc len %u", hid_descriptor.wDescriptorLength0); |
562 | buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc"); | 562 | buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc"); |
563 | 563 | ||
564 | PACK_DATA(*dest, hid_descriptor); | 564 | PACK_DATA(dest, hid_descriptor); |
565 | } | 565 | } |
566 | 566 | ||
567 | int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) | 567 | int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) |
@@ -574,7 +574,7 @@ int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) | |||
574 | 574 | ||
575 | /* Interface descriptor */ | 575 | /* Interface descriptor */ |
576 | interface_descriptor.bInterfaceNumber = usb_interface; | 576 | interface_descriptor.bInterfaceNumber = usb_interface; |
577 | PACK_DATA(dest, interface_descriptor); | 577 | PACK_DATA(&dest, interface_descriptor); |
578 | 578 | ||
579 | /* HID descriptor */ | 579 | /* HID descriptor */ |
580 | descriptor_hid_get(&dest); | 580 | descriptor_hid_get(&dest); |
@@ -583,7 +583,7 @@ int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) | |||
583 | endpoint_descriptor.wMaxPacketSize = 8; | 583 | endpoint_descriptor.wMaxPacketSize = 8; |
584 | endpoint_descriptor.bInterval = 8; | 584 | endpoint_descriptor.bInterval = 8; |
585 | endpoint_descriptor.bEndpointAddress = ep_in; | 585 | endpoint_descriptor.bEndpointAddress = ep_in; |
586 | PACK_DATA(dest, endpoint_descriptor); | 586 | PACK_DATA(&dest, endpoint_descriptor); |
587 | 587 | ||
588 | return (int)(dest - orig_dest); | 588 | return (int)(dest - orig_dest); |
589 | } | 589 | } |
diff --git a/firmware/usbstack/usb_serial.c b/firmware/usbstack/usb_serial.c index e7159099fe..4a80433435 100644 --- a/firmware/usbstack/usb_serial.c +++ b/firmware/usbstack/usb_serial.c | |||
@@ -100,15 +100,15 @@ int usb_serial_get_config_descriptor(unsigned char *dest, int max_packet_size) | |||
100 | unsigned char *orig_dest = dest; | 100 | unsigned char *orig_dest = dest; |
101 | 101 | ||
102 | interface_descriptor.bInterfaceNumber = usb_interface; | 102 | interface_descriptor.bInterfaceNumber = usb_interface; |
103 | PACK_DATA(dest, interface_descriptor); | 103 | PACK_DATA(&dest, interface_descriptor); |
104 | 104 | ||
105 | endpoint_descriptor.wMaxPacketSize = max_packet_size; | 105 | endpoint_descriptor.wMaxPacketSize = max_packet_size; |
106 | 106 | ||
107 | endpoint_descriptor.bEndpointAddress = ep_in; | 107 | endpoint_descriptor.bEndpointAddress = ep_in; |
108 | PACK_DATA(dest, endpoint_descriptor); | 108 | PACK_DATA(&dest, endpoint_descriptor); |
109 | 109 | ||
110 | endpoint_descriptor.bEndpointAddress = ep_out; | 110 | endpoint_descriptor.bEndpointAddress = ep_out; |
111 | PACK_DATA(dest, endpoint_descriptor); | 111 | PACK_DATA(&dest, endpoint_descriptor); |
112 | 112 | ||
113 | return (dest - orig_dest); | 113 | return (dest - orig_dest); |
114 | } | 114 | } |
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index c156d80396..8d1b94bf7a 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -430,15 +430,15 @@ int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size) | |||
430 | unsigned char *orig_dest = dest; | 430 | unsigned char *orig_dest = dest; |
431 | 431 | ||
432 | interface_descriptor.bInterfaceNumber = usb_interface; | 432 | interface_descriptor.bInterfaceNumber = usb_interface; |
433 | PACK_DATA(dest, interface_descriptor); | 433 | PACK_DATA(&dest, interface_descriptor); |
434 | 434 | ||
435 | endpoint_descriptor.wMaxPacketSize = max_packet_size; | 435 | endpoint_descriptor.wMaxPacketSize = max_packet_size; |
436 | 436 | ||
437 | endpoint_descriptor.bEndpointAddress = ep_in; | 437 | endpoint_descriptor.bEndpointAddress = ep_in; |
438 | PACK_DATA(dest, endpoint_descriptor); | 438 | PACK_DATA(&dest, endpoint_descriptor); |
439 | 439 | ||
440 | endpoint_descriptor.bEndpointAddress = ep_out; | 440 | endpoint_descriptor.bEndpointAddress = ep_out; |
441 | PACK_DATA(dest, endpoint_descriptor); | 441 | PACK_DATA(&dest, endpoint_descriptor); |
442 | 442 | ||
443 | return (dest - orig_dest); | 443 | return (dest - orig_dest); |
444 | } | 444 | } |