#define VIRTIO_MAX_VIRTQUEUES 8
struct virtio_hw {
+ struct virtqueue *cvq;
uint32_t io_base;
- uint32_t host_features;
uint32_t guest_features;
-
- struct virtqueue *cvq;
-
- uint16_t vtnet_hdr_size;
-
uint32_t max_tx_queues;
uint32_t max_rx_queues;
- uint16_t device_id;
- uint16_t vendor_id;
- uint16_t subsystem_device_id;
- uint16_t subsystem_vendor_id;
- uint8_t revision_id;
+ uint16_t vtnet_hdr_size;
+ uint8_t vlan_strip;
uint8_t use_msix;
+ uint8_t started;
uint8_t mac_addr[ETHER_ADDR_LEN];
};
void vtpci_reinit_complete(struct virtio_hw *);
-uint8_t vtpci_get_status(struct virtio_hw *);
-
void vtpci_set_status(struct virtio_hw *, uint8_t);
uint32_t vtpci_negotiate_features(struct virtio_hw *, uint32_t);
void vtpci_read_dev_config(struct virtio_hw *, uint64_t, void *, int);
+uint8_t vtpci_isr(struct virtio_hw *);
+
+uint16_t vtpci_irq_config(struct virtio_hw *, uint16_t);
+
#endif /* _VIRTIO_PCI_H_ */