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
This commit is contained in:
parent
6a6269ffd8
commit
4c2126b5a8
|
@ -64,7 +64,7 @@ int usb_charging_only_get_config_descriptor(unsigned char *dest,int max_packet_s
|
|||
unsigned char *orig_dest = dest;
|
||||
|
||||
interface_descriptor.bInterfaceNumber=usb_interface;
|
||||
PACK_DATA(dest, interface_descriptor);
|
||||
PACK_DATA(&dest, interface_descriptor);
|
||||
|
||||
return (dest-orig_dest);
|
||||
}
|
||||
|
|
|
@ -85,10 +85,10 @@ struct usb_class_driver {
|
|||
#endif
|
||||
};
|
||||
|
||||
#define PACK_DATA(dest, data) \
|
||||
do { \
|
||||
memcpy(dest, &(data), sizeof(data)); \
|
||||
dest += sizeof(data); \
|
||||
} while (0)
|
||||
|
||||
#define PACK_DATA(dest, data) pack_data(dest, &(data), sizeof(data))
|
||||
static inline void pack_data(uint8_t **dest, const void *data, size_t size)
|
||||
{
|
||||
memcpy(*dest, data, size);
|
||||
*dest += size;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -561,7 +561,7 @@ static void descriptor_hid_get(unsigned char **dest)
|
|||
logf("hid: desc len %u", hid_descriptor.wDescriptorLength0);
|
||||
buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc");
|
||||
|
||||
PACK_DATA(*dest, hid_descriptor);
|
||||
PACK_DATA(dest, hid_descriptor);
|
||||
}
|
||||
|
||||
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)
|
|||
|
||||
/* Interface descriptor */
|
||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||
PACK_DATA(dest, interface_descriptor);
|
||||
PACK_DATA(&dest, interface_descriptor);
|
||||
|
||||
/* HID descriptor */
|
||||
descriptor_hid_get(&dest);
|
||||
|
@ -583,7 +583,7 @@ int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size)
|
|||
endpoint_descriptor.wMaxPacketSize = 8;
|
||||
endpoint_descriptor.bInterval = 8;
|
||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||
PACK_DATA(dest, endpoint_descriptor);
|
||||
PACK_DATA(&dest, endpoint_descriptor);
|
||||
|
||||
return (int)(dest - orig_dest);
|
||||
}
|
||||
|
|
|
@ -100,15 +100,15 @@ int usb_serial_get_config_descriptor(unsigned char *dest, int max_packet_size)
|
|||
unsigned char *orig_dest = dest;
|
||||
|
||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||
PACK_DATA(dest, interface_descriptor);
|
||||
PACK_DATA(&dest, interface_descriptor);
|
||||
|
||||
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
||||
|
||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||
PACK_DATA(dest, endpoint_descriptor);
|
||||
PACK_DATA(&dest, endpoint_descriptor);
|
||||
|
||||
endpoint_descriptor.bEndpointAddress = ep_out;
|
||||
PACK_DATA(dest, endpoint_descriptor);
|
||||
PACK_DATA(&dest, endpoint_descriptor);
|
||||
|
||||
return (dest - orig_dest);
|
||||
}
|
||||
|
|
|
@ -430,15 +430,15 @@ int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size)
|
|||
unsigned char *orig_dest = dest;
|
||||
|
||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||
PACK_DATA(dest, interface_descriptor);
|
||||
PACK_DATA(&dest, interface_descriptor);
|
||||
|
||||
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
||||
|
||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||
PACK_DATA(dest, endpoint_descriptor);
|
||||
PACK_DATA(&dest, endpoint_descriptor);
|
||||
|
||||
endpoint_descriptor.bEndpointAddress = ep_out;
|
||||
PACK_DATA(dest, endpoint_descriptor);
|
||||
PACK_DATA(&dest, endpoint_descriptor);
|
||||
|
||||
return (dest - orig_dest);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue