static void pci_basic(gconstpointer data)

{

    QVirtioPCIDevice *dev;

    QPCIBus *bus;

    QVirtQueuePCI *tx, *rx;

    QGuestAllocator *alloc;

    void (*func) (QVirtioDevice *dev,

                  QGuestAllocator *alloc,

                  QVirtQueue *rvq,

                  QVirtQueue *tvq,

                  int socket) = data;

    int sv[2], ret;



    ret = socketpair(PF_UNIX, SOCK_STREAM, 0, sv);

    g_assert_cmpint(ret, !=, -1);



    bus = pci_test_start(sv[1]);

    dev = virtio_net_pci_init(bus, PCI_SLOT);



    alloc = pc_alloc_init();

    rx = (QVirtQueuePCI *)qvirtqueue_setup(&dev->vdev, alloc, 0);

    tx = (QVirtQueuePCI *)qvirtqueue_setup(&dev->vdev, alloc, 1);



    driver_init(&dev->vdev);

    func(&dev->vdev, alloc, &rx->vq, &tx->vq, sv[0]);



    /* End test */

    close(sv[0]);

    qvirtqueue_cleanup(dev->vdev.bus, &tx->vq, alloc);

    qvirtqueue_cleanup(dev->vdev.bus, &rx->vq, alloc);

    pc_alloc_uninit(alloc);

    qvirtio_pci_device_disable(dev);

    g_free(dev->pdev);

    g_free(dev);

    qpci_free_pc(bus);

    test_end();

}

static void pci_basic(gconstpointer data)

{

    QVirtioPCIDevice *dev;

    QPCIBus *bus;

    QVirtQueuePCI *tx, *rx;

    QGuestAllocator *alloc;

    void (*func) (QVirtioDevice *dev,

                  QGuestAllocator *alloc,

                  QVirtQueue *rvq,

                  QVirtQueue *tvq,

                  int socket) = data;

    int sv[2], ret;



    ret = socketpair(PF_UNIX, SOCK_STREAM, 0, sv);

    g_assert_cmpint(ret, !=, -1);



    bus = pci_test_start(sv[1]);

    dev = virtio_net_pci_init(bus, PCI_SLOT);



    alloc = pc_alloc_init();

    rx = (QVirtQueuePCI *)qvirtqueue_setup(&dev->vdev, alloc, 0);

    tx = (QVirtQueuePCI *)qvirtqueue_setup(&dev->vdev, alloc, 1);



    driver_init(&dev->vdev);

    func(&dev->vdev, alloc, &rx->vq, &tx->vq, sv[0]);



    

    close(sv[0]);

    qvirtqueue_cleanup(dev->vdev.bus, &tx->vq, alloc);

    qvirtqueue_cleanup(dev->vdev.bus, &rx->vq, alloc);

    pc_alloc_uninit(alloc);

    qvirtio_pci_device_disable(dev);

    g_free(dev->pdev);

    g_free(dev);

    qpci_free_pc(bus);

    test_end();

}

static void FUNC_0(gconstpointer VAR_0)

{

    QVirtioPCIDevice *VAR_2;

    QPCIBus *bus;

    QVirtQueuePCI *tx, *rx;

    QGuestAllocator *VAR_3;

    void (*VAR_1) (QVirtioDevice *VAR_2,

                  QGuestAllocator *VAR_3,

                  QVirtQueue *VAR_4,

                  QVirtQueue *VAR_5,

                  int VAR_6) = VAR_0;

    int VAR_7[2], VAR_8;



    VAR_8 = socketpair(PF_UNIX, SOCK_STREAM, 0, VAR_7);

    g_assert_cmpint(VAR_8, !=, -1);



    bus = pci_test_start(VAR_7[1]);

    VAR_2 = virtio_net_pci_init(bus, PCI_SLOT);



    VAR_3 = pc_alloc_init();

    rx = (QVirtQueuePCI *)qvirtqueue_setup(&VAR_2->vdev, VAR_3, 0);

    tx = (QVirtQueuePCI *)qvirtqueue_setup(&VAR_2->vdev, VAR_3, 1);



    driver_init(&VAR_2->vdev);

    VAR_1(&VAR_2->vdev, VAR_3, &rx->vq, &tx->vq, VAR_7[0]);



    

    close(VAR_7[0]);

    qvirtqueue_cleanup(VAR_2->vdev.bus, &tx->vq, VAR_3);

    qvirtqueue_cleanup(VAR_2->vdev.bus, &rx->vq, VAR_3);

    pc_alloc_uninit(VAR_3);

    qvirtio_pci_device_disable(VAR_2);

    g_free(VAR_2->pdev);

    g_free(VAR_2);

    qpci_free_pc(bus);

    test_end();

}

static void FUNC_0(gconstpointer VAR_0)
{ QVirtioPCIDevice *VAR_2; QPCIBus *bus; QVirtQueuePCI *tx, *rx; QGuestAllocator *VAR_3; void (*VAR_1) (QVirtioDevice *VAR_2,
QGuestAllocator *VAR_3,
QVirtQueue *VAR_4,
QVirtQueue *VAR_5,
int VAR_6) = VAR_0; int VAR_7[2], VAR_8; VAR_8 = socketpair(PF_UNIX, SOCK_STREAM, 0, VAR_7); g_assert_cmpint(VAR_8, !=, -1); bus = pci_test_start(VAR_7[1]); VAR_2 = virtio_net_pci_init(bus, PCI_SLOT); VAR_3 = pc_alloc_init(); rx = (QVirtQueuePCI *)qvirtqueue_setup(&VAR_2->vdev, VAR_3, 0); tx = (QVirtQueuePCI *)qvirtqueue_setup(&VAR_2->vdev, VAR_3, 1); driver_init(&VAR_2->vdev); VAR_1(&VAR_2->vdev, VAR_3, &rx->vq, &tx->vq, VAR_7[0]); close(VAR_7[0]); qvirtqueue_cleanup(VAR_2->vdev.bus, &tx->vq, VAR_3); qvirtqueue_cleanup(VAR_2->vdev.bus, &rx->vq, VAR_3); pc_alloc_uninit(VAR_3); qvirtio_pci_device_disable(VAR_2); g_free(VAR_2->pdev); g_free(VAR_2); qpci_free_pc(bus); test_end(); }