/* Free the URB as it purpose has been served. Usage: Backend use it to mark the transfer  */
void usbd_urb_complete(usbd_device *dev, usbd_urb *urb, usbd_transfer_status status)
/* Free the URB as it purpose has been served. Usage: Backend use it to mark the transfer  */
void usbd_urb_complete(usbd_device *dev, usbd_urb *urb, usbd_transfer_status status)
{
	detach_from_active(dev, urb);
	urb_callback(dev, urb, status);
	unused_push(dev, urb);
	usbd_urb_schedule(dev);
}