net/virtio: fix Rx interrupt with VFIO
[dpdk.git] / drivers / net / virtio / virtio_pci.h
index 330ee94..3c5ce66 100644 (file)
@@ -37,6 +37,7 @@
 #include <stdint.h>
 
 #include <rte_pci.h>
+#include <rte_bus_pci.h>
 #include <rte_ethdev.h>
 
 struct virtqueue;
@@ -259,7 +260,8 @@ struct virtio_hw {
        uint8_t     vlan_strip;
        uint8_t     use_msix;
        uint8_t     modern;
-       uint8_t     use_simple_rxtx;
+       uint8_t     use_simple_rx;
+       uint8_t     use_simple_tx;
        uint16_t    port_id;
        uint8_t     mac_addr[ETHER_ADDR_LEN];
        uint32_t    notify_off_multiplier;
@@ -312,6 +314,12 @@ struct virtio_net_config {
 /* The alignment to use between consumer and producer parts of vring. */
 #define VIRTIO_PCI_VRING_ALIGN 4096
 
+enum virtio_msix_status {
+       VIRTIO_MSIX_NONE = 0,
+       VIRTIO_MSIX_DISABLED = 1,
+       VIRTIO_MSIX_ENABLED = 2
+};
+
 static inline int
 vtpci_with_feature(struct virtio_hw *hw, uint64_t bit)
 {
@@ -337,6 +345,8 @@ void vtpci_read_dev_config(struct virtio_hw *, size_t, void *, int);
 
 uint8_t vtpci_isr(struct virtio_hw *);
 
+enum virtio_msix_status vtpci_msix_detect(struct rte_pci_device *dev);
+
 extern const struct virtio_pci_ops legacy_ops;
 extern const struct virtio_pci_ops modern_ops;
 extern const struct virtio_pci_ops virtio_user_ops;