int usb_packet_map(USBPacket *p, QEMUSGList *sgl)

{

    int is_write = (p->pid == USB_TOKEN_IN);

    target_phys_addr_t len;

    void *mem;

    int i;



    for (i = 0; i < sgl->nsg; i++) {

        len = sgl->sg[i].len;

        mem = cpu_physical_memory_map(sgl->sg[i].base, &len,

                                      is_write);

        if (!mem) {

            goto err;

        }

        qemu_iovec_add(&p->iov, mem, len);

        if (len != sgl->sg[i].len) {

            goto err;

        }

    }

    return 0;



err:

    usb_packet_unmap(p);

    return -1;

}

int usb_packet_map(USBPacket *p, QEMUSGList *sgl)

{

    int is_write = (p->pid == USB_TOKEN_IN);

    target_phys_addr_t len;

    void *mem;

    int i;



    for (i = 0; i < sgl->nsg; i++) {

        len = sgl->sg[i].len;

        mem = cpu_physical_memory_map(sgl->sg[i].base, &len,

                                      is_write);

        if (!mem) {

            goto err;

        }

        qemu_iovec_add(&p->iov, mem, len);

        if (len != sgl->sg[i].len) {

            goto err;

        }

    }

    return 0;



err:

    usb_packet_unmap(p);

    return -1;

}

    int is_write = (p->pid == USB_TOKEN_IN);     target_phys_addr_t len;         mem = cpu_physical_memory_map(sgl->sg[i].base, &len,                                       is_write);     usb_packet_unmap(p);     int is_write = (p->pid == USB_TOKEN_IN);
int FUNC_0(USBPacket *VAR_0, QEMUSGList *VAR_1)

{

    int VAR_2 = (VAR_0->pid == USB_TOKEN_IN);

    target_phys_addr_t len;

    void *VAR_3;

    int VAR_4;



    for (VAR_4 = 0; VAR_4 < VAR_1->nsg; VAR_4++) {

        len = VAR_1->sg[VAR_4].len;

        VAR_3 = cpu_physical_memory_map(VAR_1->sg[VAR_4].base, &len,

                                      VAR_2);

        if (!VAR_3) {

            goto err;

        }

        qemu_iovec_add(&VAR_0->iov, VAR_3, len);

        if (len != VAR_1->sg[VAR_4].len) {

            goto err;

        }

    }

    return 0;



err:

    usb_packet_unmap(VAR_0);

    return -1;

}

int FUNC_0(USBPacket *VAR_0, QEMUSGList *VAR_1)
{ int VAR_2 = (VAR_0->pid == USB_TOKEN_IN); target_phys_addr_t len; void *VAR_3; int VAR_4; for (VAR_4 = 0; VAR_4 < VAR_1->nsg; VAR_4++) { len = VAR_1->sg[VAR_4].len; VAR_3 = cpu_physical_memory_map(VAR_1->sg[VAR_4].base, &len,
VAR_2); if (!VAR_3) { goto err; } qemu_iovec_add(&VAR_0->iov, VAR_3, len); if (len != VAR_1->sg[VAR_4].len) { goto err; } } return 0; err:
usb_packet_unmap(VAR_0); return -1; }