static void virtio_pci_config_write(void *opaque, hwaddr addr,

                                    uint64_t val, unsigned size)

{

    VirtIOPCIProxy *proxy = opaque;

    uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev);

    VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus);

    if (addr < config) {

        virtio_ioport_write(proxy, addr, val);

        return;

    }

    addr -= config;

    /*

     * Virtio-PCI is odd. Ioports are LE but config space is target native

     * endian.

     */

    switch (size) {

    case 1:

        virtio_config_writeb(vdev, addr, val);

        break;

    case 2:

        if (virtio_is_big_endian()) {

            val = bswap16(val);

        }

        virtio_config_writew(vdev, addr, val);

        break;

    case 4:

        if (virtio_is_big_endian()) {

            val = bswap32(val);

        }

        virtio_config_writel(vdev, addr, val);

        break;

    }

}

static void virtio_pci_config_write(void *opaque, hwaddr addr,

                                    uint64_t val, unsigned size)

{

    VirtIOPCIProxy *proxy = opaque;

    uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev);

    VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus);

    if (addr < config) {

        virtio_ioport_write(proxy, addr, val);

        return;

    }

    addr -= config;

    







    switch (size) {

    case 1:

        virtio_config_writeb(vdev, addr, val);

        break;

    case 2:

        if (virtio_is_big_endian()) {

            val = bswap16(val);

        }

        virtio_config_writew(vdev, addr, val);

        break;

    case 4:

        if (virtio_is_big_endian()) {

            val = bswap32(val);

        }

        virtio_config_writel(vdev, addr, val);

        break;

    }

}

        if (virtio_is_big_endian()) {         if (virtio_is_big_endian()) {         if (virtio_is_big_endian()) {         if (virtio_is_big_endian()) {
static void FUNC_0(void *VAR_0, hwaddr VAR_1,

                                    uint64_t VAR_2, unsigned VAR_3)

{

    VirtIOPCIProxy *proxy = VAR_0;

    uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev);

    VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus);

    if (VAR_1 < config) {

        virtio_ioport_write(proxy, VAR_1, VAR_2);

        return;

    }

    VAR_1 -= config;

    







    switch (VAR_3) {

    case 1:

        virtio_config_writeb(vdev, VAR_1, VAR_2);

        break;

    case 2:

        if (virtio_is_big_endian()) {

            VAR_2 = bswap16(VAR_2);

        }

        virtio_config_writew(vdev, VAR_1, VAR_2);

        break;

    case 4:

        if (virtio_is_big_endian()) {

            VAR_2 = bswap32(VAR_2);

        }

        virtio_config_writel(vdev, VAR_1, VAR_2);

        break;

    }

}

static void FUNC_0(void *VAR_0, hwaddr VAR_1,
uint64_t VAR_2, unsigned VAR_3)
{ VirtIOPCIProxy *proxy = VAR_0; uint32_t config = VIRTIO_PCI_CONFIG(&proxy->pci_dev); VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); if (VAR_1 < config) { virtio_ioport_write(proxy, VAR_1, VAR_2); return; } VAR_1 -= config; switch (VAR_3) { case 1:
virtio_config_writeb(vdev, VAR_1, VAR_2); break; case 2:
if (virtio_is_big_endian()) { VAR_2 = bswap16(VAR_2); } virtio_config_writew(vdev, VAR_1, VAR_2); break; case 4:
if (virtio_is_big_endian()) { VAR_2 = bswap32(VAR_2); } virtio_config_writel(vdev, VAR_1, VAR_2); break; } }