extern void usb_handle_bus_reset(const struct usb_instance* data, int highspeed);
extern void usb_handle_timeout(const struct usb_instance* data, union usb_endpoint_number epnum, int bytesleft);
extern void usb_handle_xfer_complete(const struct usb_instance* data, union usb_endpoint_number epnum, int bytesleft);
extern void usb_handle_setup_received(const struct usb_instance* data, union usb_endpoint_number epnum, int back2back);
extern void usb_ep0_start_rx(const struct usb_instance* data, int non_setup);
extern void usb_ep0_start_tx(const struct usb_instance* data, const void* buf, int len);
extern void usb_ep0_expect_setup(const struct usb_instance* data);