forked from len0rd/rockbox
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
5 changed files with 16 additions and 16 deletions
|
@ -64,7 +64,7 @@ int usb_charging_only_get_config_descriptor(unsigned char *dest,int max_packet_s
|
||||||
unsigned char *orig_dest = dest;
|
unsigned char *orig_dest = dest;
|
||||||
|
|
||||||
interface_descriptor.bInterfaceNumber=usb_interface;
|
interface_descriptor.bInterfaceNumber=usb_interface;
|
||||||
PACK_DATA(dest, interface_descriptor);
|
PACK_DATA(&dest, interface_descriptor);
|
||||||
|
|
||||||
return (dest-orig_dest);
|
return (dest-orig_dest);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,10 +85,10 @@ struct usb_class_driver {
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PACK_DATA(dest, data) \
|
#define PACK_DATA(dest, data) pack_data(dest, &(data), sizeof(data))
|
||||||
do { \
|
static inline void pack_data(uint8_t **dest, const void *data, size_t size)
|
||||||
memcpy(dest, &(data), sizeof(data)); \
|
{
|
||||||
dest += sizeof(data); \
|
memcpy(*dest, data, size);
|
||||||
} while (0)
|
*dest += size;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -561,7 +561,7 @@ static void descriptor_hid_get(unsigned char **dest)
|
||||||
logf("hid: desc len %u", hid_descriptor.wDescriptorLength0);
|
logf("hid: desc len %u", hid_descriptor.wDescriptorLength0);
|
||||||
buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc");
|
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)
|
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 */
|
||||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||||
PACK_DATA(dest, interface_descriptor);
|
PACK_DATA(&dest, interface_descriptor);
|
||||||
|
|
||||||
/* HID descriptor */
|
/* HID descriptor */
|
||||||
descriptor_hid_get(&dest);
|
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.wMaxPacketSize = 8;
|
||||||
endpoint_descriptor.bInterval = 8;
|
endpoint_descriptor.bInterval = 8;
|
||||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||||
PACK_DATA(dest, endpoint_descriptor);
|
PACK_DATA(&dest, endpoint_descriptor);
|
||||||
|
|
||||||
return (int)(dest - orig_dest);
|
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;
|
unsigned char *orig_dest = dest;
|
||||||
|
|
||||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||||
PACK_DATA(dest, interface_descriptor);
|
PACK_DATA(&dest, interface_descriptor);
|
||||||
|
|
||||||
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
||||||
|
|
||||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||||
PACK_DATA(dest, endpoint_descriptor);
|
PACK_DATA(&dest, endpoint_descriptor);
|
||||||
|
|
||||||
endpoint_descriptor.bEndpointAddress = ep_out;
|
endpoint_descriptor.bEndpointAddress = ep_out;
|
||||||
PACK_DATA(dest, endpoint_descriptor);
|
PACK_DATA(&dest, endpoint_descriptor);
|
||||||
|
|
||||||
return (dest - orig_dest);
|
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;
|
unsigned char *orig_dest = dest;
|
||||||
|
|
||||||
interface_descriptor.bInterfaceNumber = usb_interface;
|
interface_descriptor.bInterfaceNumber = usb_interface;
|
||||||
PACK_DATA(dest, interface_descriptor);
|
PACK_DATA(&dest, interface_descriptor);
|
||||||
|
|
||||||
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
endpoint_descriptor.wMaxPacketSize = max_packet_size;
|
||||||
|
|
||||||
endpoint_descriptor.bEndpointAddress = ep_in;
|
endpoint_descriptor.bEndpointAddress = ep_in;
|
||||||
PACK_DATA(dest, endpoint_descriptor);
|
PACK_DATA(&dest, endpoint_descriptor);
|
||||||
|
|
||||||
endpoint_descriptor.bEndpointAddress = ep_out;
|
endpoint_descriptor.bEndpointAddress = ep_out;
|
||||||
PACK_DATA(dest, endpoint_descriptor);
|
PACK_DATA(&dest, endpoint_descriptor);
|
||||||
|
|
||||||
return (dest - orig_dest);
|
return (dest - orig_dest);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue