1 /* 2 * Copyright (c) 2024, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef USBD_ADB_H 7 #define USBD_ADB_H 8 9 #include <stdint.h> 10 11 #define ADB_SHELL_LOALID 0x01 12 #define ADB_FILE_LOALID 0x02 13 14 // clang-format off 15 #define ADB_DESCRIPTOR_INIT(bFirstInterface, in_ep, out_ep, wMaxPacketSize) \ 16 USB_INTERFACE_DESCRIPTOR_INIT(bFirstInterface, 0x00, 0x02, 0xff, 0x42, 0x01, 0x02), \ 17 USB_ENDPOINT_DESCRIPTOR_INIT(in_ep, 0x02, wMaxPacketSize, 0x00), \ 18 USB_ENDPOINT_DESCRIPTOR_INIT(out_ep, 0x02, wMaxPacketSize, 0x00) 19 // clang-format on 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 struct usbd_interface *usbd_adb_init_intf(uint8_t busid, struct usbd_interface *intf, uint8_t in_ep, uint8_t out_ep); 26 27 void usbd_adb_notify_shell_read(uint8_t *data, uint32_t len); 28 void usbd_adb_notify_file_read(uint8_t *data, uint32_t len); 29 void usbd_adb_notify_write_done(void); 30 bool usbd_adb_can_write(void); 31 int usbd_abd_write(uint32_t localid, const uint8_t *data, uint32_t len); 32 void usbd_adb_close(uint32_t localid); 33 34 #ifdef __cplusplus 35 } 36 #endif 37 38 #endif /* USBD_ADB_H */