usbd_vendor.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* Define to prevent recursive inclusion -------------------------------------*/
  2. #ifndef __USB_VENDOR_H
  3. #define __USB_VENDOR_H
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. /* Includes ------------------------------------------------------------------*/
  8. #include "usbd_ioreq.h"
  9. #include "usb/usb_hooks.h"
  10. #include "usb/usb_config.h"
  11. #include "core/config.h"
  12. #include "drivers/usb/class/common/class_common.h"
  13. #define VENDOR_IN_EP 0x81 /* EP1 for data IN */
  14. #define VENDOR_OUT_EP 0x01 /* EP1 for data OUT */
  15. #define VENDOR_DATAIN_MAX_PACKET_SIZE 64 // Control-EP size
  16. #define VENDOR_DATAOUT_MAX_PACKET_SIZE 64 // Control-EP size
  17. #define VENDOR_USE_COMMON_EP0RXREADY 1
  18. #define VENDOR_USE_COMMON_EP0TXSENT 1
  19. #define VENDOR_USE_COMMON_SETUP 1
  20. #if USB_CONTROL_VENDOR_RX_BUFFER < USB_MAX_EP0_SIZE
  21. #error Invalid USB_CONTROL_VENDOR_RX_BUFFER buffer size. Must be at least USB_MAX_EP0_SIZE bytes.
  22. #endif
  23. #if USB_CONTROL_VENDOR_TX_BUFFER < USB_MAX_EP0_SIZE
  24. #error Invalid USB_CONTROL_VENDOR_TX_BUFFER buffer size. Must be at least USB_MAX_EP0_SIZE bytes.
  25. #endif
  26. /*---------------------------------------------------------------------*/
  27. /* VENDOR definitions */
  28. /*---------------------------------------------------------------------*/
  29. typedef struct
  30. {
  31. sUSBTransfer_t ep0_tx_transfer;
  32. sUSBTransfer_t ep0_rx_transfer;
  33. uint8_t ep0_tx_buffer[ USB_CONTROL_VENDOR_TX_BUFFER ];
  34. uint8_t ep0_rx_buffer[ USB_CONTROL_VENDOR_RX_BUFFER ];
  35. }
  36. USBD_VENDOR_HandleTypeDef;
  37. static inline size_t USBD_VENDOR_get_control_tx_transfer_size()
  38. {
  39. return sizeof(((USBD_VENDOR_HandleTypeDef*)0)->ep0_tx_buffer);
  40. }
  41. static inline size_t USBD_VENDOR_get_control_rx_transfer_size()
  42. {
  43. return sizeof(((USBD_VENDOR_HandleTypeDef*)0)->ep0_rx_buffer);
  44. }
  45. extern const USBD_COMMON_ItfTypeDef USBD_Interface_Vendor_UsbInterface;
  46. extern const USBD_ClassTypeDef USBD_VENDOR;
  47. #define USBD_VENDOR_CLASS &USBD_VENDOR
  48. #ifdef __cplusplus
  49. }
  50. #endif
  51. #endif /* __USB_VENDOR_H */