#ifndef _USB_VENDOR_H
#define _USB_VENDOR_H

typedef struct _udv_t {
    epcb_t *int_in;
    epcb_t *int_out;
    bool    valid;
} udv_t;

typedef struct PACKED {
    uint8_t report_id;
    uint8_t length;
    uint8_t payload[62];
} usb_vendor_pdu_t;

typedef struct {
    list_hdr_t       hdr;
    uint32_t         length;
    usb_vendor_pdu_t pdu;
} usb_vendor_send_tag_t;


void ude_vendor_setvalid(bool valid);

void usb_vendor_init(void);
void usb_vendor_deinit(void);
void usb_vendor_send_kick(void);
void usb_vendor_process(void);

void usb_vendor_ep_reset(void);
void udv_init(void);

#endif // _USB_VENDOR_H
