A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

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

+16 -16
+1 -1
firmware/usbstack/usb_charging_only.c
··· 64 64 unsigned char *orig_dest = dest; 65 65 66 66 interface_descriptor.bInterfaceNumber=usb_interface; 67 - PACK_DATA(dest, interface_descriptor); 67 + PACK_DATA(&dest, interface_descriptor); 68 68 69 69 return (dest-orig_dest); 70 70 }
+6 -6
firmware/usbstack/usb_class_driver.h
··· 85 85 #endif 86 86 }; 87 87 88 - #define PACK_DATA(dest, data) \ 89 - do { \ 90 - memcpy(dest, &(data), sizeof(data)); \ 91 - dest += sizeof(data); \ 92 - } while (0) 93 - 88 + #define PACK_DATA(dest, data) pack_data(dest, &(data), sizeof(data)) 89 + static inline void pack_data(uint8_t **dest, const void *data, size_t size) 90 + { 91 + memcpy(*dest, data, size); 92 + *dest += size; 93 + } 94 94 #endif
+3 -3
firmware/usbstack/usb_hid.c
··· 561 561 logf("hid: desc len %u", hid_descriptor.wDescriptorLength0); 562 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 567 int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) ··· 574 574 575 575 /* Interface descriptor */ 576 576 interface_descriptor.bInterfaceNumber = usb_interface; 577 - PACK_DATA(dest, interface_descriptor); 577 + PACK_DATA(&dest, interface_descriptor); 578 578 579 579 /* HID descriptor */ 580 580 descriptor_hid_get(&dest); ··· 583 583 endpoint_descriptor.wMaxPacketSize = 8; 584 584 endpoint_descriptor.bInterval = 8; 585 585 endpoint_descriptor.bEndpointAddress = ep_in; 586 - PACK_DATA(dest, endpoint_descriptor); 586 + PACK_DATA(&dest, endpoint_descriptor); 587 587 588 588 return (int)(dest - orig_dest); 589 589 }
+3 -3
firmware/usbstack/usb_serial.c
··· 100 100 unsigned char *orig_dest = dest; 101 101 102 102 interface_descriptor.bInterfaceNumber = usb_interface; 103 - PACK_DATA(dest, interface_descriptor); 103 + PACK_DATA(&dest, interface_descriptor); 104 104 105 105 endpoint_descriptor.wMaxPacketSize = max_packet_size; 106 106 107 107 endpoint_descriptor.bEndpointAddress = ep_in; 108 - PACK_DATA(dest, endpoint_descriptor); 108 + PACK_DATA(&dest, endpoint_descriptor); 109 109 110 110 endpoint_descriptor.bEndpointAddress = ep_out; 111 - PACK_DATA(dest, endpoint_descriptor); 111 + PACK_DATA(&dest, endpoint_descriptor); 112 112 113 113 return (dest - orig_dest); 114 114 }
+3 -3
firmware/usbstack/usb_storage.c
··· 430 430 unsigned char *orig_dest = dest; 431 431 432 432 interface_descriptor.bInterfaceNumber = usb_interface; 433 - PACK_DATA(dest, interface_descriptor); 433 + PACK_DATA(&dest, interface_descriptor); 434 434 435 435 endpoint_descriptor.wMaxPacketSize = max_packet_size; 436 436 437 437 endpoint_descriptor.bEndpointAddress = ep_in; 438 - PACK_DATA(dest, endpoint_descriptor); 438 + PACK_DATA(&dest, endpoint_descriptor); 439 439 440 440 endpoint_descriptor.bEndpointAddress = ep_out; 441 - PACK_DATA(dest, endpoint_descriptor); 441 + PACK_DATA(&dest, endpoint_descriptor); 442 442 443 443 return (dest - orig_dest); 444 444 }