static void usbredir_handle_interrupt_out_data(USBRedirDevice *dev,

                                               USBPacket *p, uint8_t ep)

{

    /* Output interrupt endpoint, normal async operation */

    struct usb_redir_interrupt_packet_header interrupt_packet;

    uint8_t buf[p->iov.size];



    DPRINTF("interrupt-out ep %02X len %zd id %"PRIu64"\n", ep,

            p->iov.size, p->id);



    if (usbredir_already_in_flight(dev, p->id)) {

        p->status = USB_RET_ASYNC;

        return;

    }



    interrupt_packet.endpoint  = ep;

    interrupt_packet.length    = p->iov.size;



    usb_packet_copy(p, buf, p->iov.size);

    usbredir_log_data(dev, "interrupt data out:", buf, p->iov.size);

    usbredirparser_send_interrupt_packet(dev->parser, p->id,

                                    &interrupt_packet, buf, p->iov.size);

    usbredirparser_do_write(dev->parser);

    p->status = USB_RET_ASYNC;

}

static void usbredir_handle_interrupt_out_data(USBRedirDevice *dev,

                                               USBPacket *p, uint8_t ep)

{

    

    struct usb_redir_interrupt_packet_header interrupt_packet;

    uint8_t buf[p->iov.size];



    DPRINTF("interrupt-out ep %02X len %zd id %"PRIu64"\n", ep,

            p->iov.size, p->id);



    if (usbredir_already_in_flight(dev, p->id)) {

        p->status = USB_RET_ASYNC;

        return;

    }



    interrupt_packet.endpoint  = ep;

    interrupt_packet.length    = p->iov.size;



    usb_packet_copy(p, buf, p->iov.size);

    usbredir_log_data(dev, "interrupt data out:", buf, p->iov.size);

    usbredirparser_send_interrupt_packet(dev->parser, p->id,

                                    &interrupt_packet, buf, p->iov.size);

    usbredirparser_do_write(dev->parser);

    p->status = USB_RET_ASYNC;

}

    if (usbredir_already_in_flight(dev, p->id)) {         p->status = USB_RET_ASYNC;     p->status = USB_RET_ASYNC;
static void FUNC_0(USBRedirDevice *VAR_0,

                                               USBPacket *VAR_1, uint8_t VAR_2)

{

    

    struct usb_redir_interrupt_packet_header VAR_3;

    uint8_t buf[VAR_1->iov.size];



    DPRINTF("interrupt-out VAR_2 %02X len %zd id %"PRIu64"\n", VAR_2,

            VAR_1->iov.size, VAR_1->id);



    if (usbredir_already_in_flight(VAR_0, VAR_1->id)) {

        VAR_1->status = USB_RET_ASYNC;

        return;

    }



    VAR_3.endpoint  = VAR_2;

    VAR_3.length    = VAR_1->iov.size;



    usb_packet_copy(VAR_1, buf, VAR_1->iov.size);

    usbredir_log_data(VAR_0, "interrupt data out:", buf, VAR_1->iov.size);

    usbredirparser_send_interrupt_packet(VAR_0->parser, VAR_1->id,

                                    &VAR_3, buf, VAR_1->iov.size);

    usbredirparser_do_write(VAR_0->parser);

    VAR_1->status = USB_RET_ASYNC;

}

static void FUNC_0(USBRedirDevice *VAR_0,
USBPacket *VAR_1, uint8_t VAR_2)
{ struct usb_redir_interrupt_packet_header VAR_3; uint8_t buf[VAR_1->iov.size]; DPRINTF("interrupt-out VAR_2 %02X len %zd id %"PRIu64"\n", VAR_2,
VAR_1->iov.size, VAR_1->id); if (usbredir_already_in_flight(VAR_0, VAR_1->id)) { VAR_1->status = USB_RET_ASYNC; return; } VAR_3.endpoint  = VAR_2; VAR_3.length    = VAR_1->iov.size; usb_packet_copy(VAR_1, buf, VAR_1->iov.size); usbredir_log_data(VAR_0, "interrupt data out:", buf, VAR_1->iov.size); usbredirparser_send_interrupt_packet(VAR_0->parser, VAR_1->id,
&VAR_3, buf, VAR_1->iov.size); usbredirparser_do_write(VAR_0->parser); VAR_1->status = USB_RET_ASYNC; }