net/virtio: support modern device id
[dpdk.git] / drivers / net / virtio / virtio_pci.h
index f20468a..a06d913 100644 (file)
@@ -44,8 +44,8 @@ struct virtnet_ctl;
 
 /* VirtIO PCI vendor/device ID. */
 #define VIRTIO_PCI_VENDORID     0x1AF4
-#define VIRTIO_PCI_DEVICEID_MIN 0x1000
-#define VIRTIO_PCI_DEVICEID_MAX 0x103F
+#define VIRTIO_PCI_LEGACY_DEVICEID_NET 0x1000
+#define VIRTIO_PCI_MODERN_DEVICEID_NET 0x1041
 
 /* VirtIO ABI version, this must match exactly. */
 #define VIRTIO_PCI_ABI_VERSION 0
@@ -235,7 +235,7 @@ struct virtio_pci_ops {
        uint16_t (*set_config_irq)(struct virtio_hw *hw, uint16_t vec);
 
        uint16_t (*get_queue_num)(struct virtio_hw *hw, uint16_t queue_id);
-       void (*setup_queue)(struct virtio_hw *hw, struct virtqueue *vq);
+       int (*setup_queue)(struct virtio_hw *hw, struct virtqueue *vq);
        void (*del_queue)(struct virtio_hw *hw, struct virtqueue *vq);
        void (*notify_queue)(struct virtio_hw *hw, struct virtqueue *vq);
 };
@@ -253,6 +253,7 @@ struct virtio_hw {
        uint8_t     use_msix;
        uint8_t     started;
        uint8_t     modern;
+       uint8_t     use_simple_rxtx;
        uint8_t     mac_addr[ETHER_ADDR_LEN];
        uint32_t    notify_off_multiplier;
        uint8_t     *isr;
@@ -261,6 +262,7 @@ struct virtio_hw {
        struct virtio_pci_common_cfg *common_cfg;
        struct virtio_net_config *dev_cfg;
        const struct virtio_pci_ops *vtpci_ops;
+       void        *virtio_user_dev;
 };
 
 /*