File:  [Qemu by Fabrice Bellard] / qemu / hw / virtio-pci.h
Revision (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 19:50:17 2018 UTC (2 years, 2 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu1101, HEAD
qemu 1.1.1

 * Virtio PCI Bindings
 * Copyright IBM, Corp. 2007
 * Copyright (c) 2009 CodeSourcery
 * Authors:
 *  Anthony Liguori   <>
 *  Paul Brook        <>
 * This work is licensed under the terms of the GNU GPL, version 2.  See
 * the COPYING file in the top-level directory.


#include "virtio-blk.h"
#include "virtio-net.h"
#include "virtio-serial.h"
#include "virtio-scsi.h"

/* Performance improves when virtqueue kick processing is decoupled from the
 * vcpu thread using ioeventfd for some devices. */

typedef struct {
    PCIDevice pci_dev;
    VirtIODevice *vdev;
    MemoryRegion bar;
    MemoryRegion msix_bar;
    uint32_t flags;
    uint32_t class_code;
    uint32_t nvectors;
    VirtIOBlkConf blk;
    NICConf nic;
    uint32_t host_features;
    V9fsConf fsconf;
    virtio_serial_conf serial;
    virtio_net_conf net;
    VirtIOSCSIConf scsi;
    bool ioeventfd_disabled;
    bool ioeventfd_started;
} VirtIOPCIProxy;

void virtio_init_pci(VirtIOPCIProxy *proxy, VirtIODevice *vdev);
void virtio_pci_reset(DeviceState *d);

/* Virtio ABI version, if we increment this, we break the guest driver. */
#define VIRTIO_PCI_ABI_VERSION          0