usbd_adb.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. #include <stdint.h>
  9. #define ADB_SHELL_LOALID 0x01
  10. #define ADB_FILE_LOALID 0x02
  11. // clang-format off
  12. #define ADB_DESCRIPTOR_INIT(bFirstInterface, in_ep, out_ep, wMaxPacketSize) \
  13. USB_INTERFACE_DESCRIPTOR_INIT(bFirstInterface, 0x00, 0x02, 0xff, 0x42, 0x01, 0x02), \
  14. USB_ENDPOINT_DESCRIPTOR_INIT(in_ep, 0x02, wMaxPacketSize, 0x00), \
  15. USB_ENDPOINT_DESCRIPTOR_INIT(out_ep, 0x02, wMaxPacketSize, 0x00)
  16. // clang-format on
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. struct usbd_interface *usbd_adb_init_intf(uint8_t busid, struct usbd_interface *intf, uint8_t in_ep, uint8_t out_ep);
  21. void usbd_adb_notify_shell_read(uint8_t *data, uint32_t len);
  22. void usbd_adb_notify_file_read(uint8_t *data, uint32_t len);
  23. void usbd_adb_notify_write_done(void);
  24. bool usbd_adb_can_write(void);
  25. int usbd_abd_write(uint32_t localid, const uint8_t *data, uint32_t len);
  26. void usbd_adb_close(uint32_t localid);
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30. #endif /* USBD_ADB_H */