static void usbredir_iso_packet(void *priv, uint64_t id,

    struct usb_redir_iso_packet_header *iso_packet,

    uint8_t *data, int data_len)

{

    USBRedirDevice *dev = priv;

    uint8_t ep = iso_packet->endpoint;



    DPRINTF2("iso-in status %d ep %02X len %d id %"PRIu64"\n",

             iso_packet->status, ep, data_len, id);



    if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_ISOC) {

        ERROR("received iso packet for non iso endpoint %02X\n", ep);

        free(data);

        return;

    }



    if (dev->endpoint[EP2I(ep)].iso_started == 0) {

        DPRINTF("received iso packet for non started stream ep %02X\n", ep);

        free(data);

        return;

    }



    /* bufp_alloc also adds the packet to the ep queue */

    bufp_alloc(dev, data, data_len, iso_packet->status, ep);

}

static void usbredir_iso_packet(void *priv, uint64_t id,

    struct usb_redir_iso_packet_header *iso_packet,

    uint8_t *data, int data_len)

{

    USBRedirDevice *dev = priv;

    uint8_t ep = iso_packet->endpoint;



    DPRINTF2("iso-in status %d ep %02X len %d id %"PRIu64"\n",

             iso_packet->status, ep, data_len, id);



    if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_ISOC) {

        ERROR("received iso packet for non iso endpoint %02X\n", ep);

        free(data);

        return;

    }



    if (dev->endpoint[EP2I(ep)].iso_started == 0) {

        DPRINTF("received iso packet for non started stream ep %02X\n", ep);

        free(data);

        return;

    }



    

    bufp_alloc(dev, data, data_len, iso_packet->status, ep);

}

    bufp_alloc(dev, data, data_len, iso_packet->status, ep);
static void FUNC_0(void *VAR_0, uint64_t VAR_1,

    struct usb_redir_iso_packet_header *VAR_2,

    uint8_t *VAR_3, int VAR_4)

{

    USBRedirDevice *dev = VAR_0;

    uint8_t ep = VAR_2->endpoint;



    DPRINTF2("iso-in status %d ep %02X len %d VAR_1 %"PRIu64"\n",

             VAR_2->status, ep, VAR_4, VAR_1);



    if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_ISOC) {

        ERROR("received iso packet for non iso endpoint %02X\n", ep);

        free(VAR_3);

        return;

    }



    if (dev->endpoint[EP2I(ep)].iso_started == 0) {

        DPRINTF("received iso packet for non started stream ep %02X\n", ep);

        free(VAR_3);

        return;

    }



    

    bufp_alloc(dev, VAR_3, VAR_4, VAR_2->status, ep);

}

static void FUNC_0(void *VAR_0, uint64_t VAR_1,
struct usb_redir_iso_packet_header *VAR_2,
uint8_t *VAR_3, int VAR_4)
{ USBRedirDevice *dev = VAR_0; uint8_t ep = VAR_2->endpoint; DPRINTF2("iso-in status %d ep %02X len %d VAR_1 %"PRIu64"\n",
VAR_2->status, ep, VAR_4, VAR_1); if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_ISOC) { ERROR("received iso packet for non iso endpoint %02X\n", ep); free(VAR_3); return; } if (dev->endpoint[EP2I(ep)].iso_started == 0) { DPRINTF("received iso packet for non started stream ep %02X\n", ep); free(VAR_3); return; } bufp_alloc(dev, VAR_3, VAR_4, VAR_2->status, ep); }