X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Flnx_virtio_pci.h;h=f0c5e3d163fe14cbd70180f8b2c2c598a5185ab3;hb=c8e5b4d78f746b7ac5de1a19689ba9aa2d7e3db3;hp=c0f2295f4890bbc56691f13a133c4c0522f7e705;hpb=262c92c9f620f87500f350b4744d2f31b6de7da5;p=palacios.git diff --git a/palacios/include/devices/lnx_virtio_pci.h b/palacios/include/devices/lnx_virtio_pci.h index c0f2295..f0c5e3d 100644 --- a/palacios/include/devices/lnx_virtio_pci.h +++ b/palacios/include/devices/lnx_virtio_pci.h @@ -36,14 +36,16 @@ #define VIRTIO_CONSOLE_DEV_ID 0x1003 #define VIRTIO_SYMBIOTIC_DEV_ID 0x100a #define VIRTIO_SYMMOD_DEV_ID 0x100b -#define VIRTIO_VNET_CTRL_DEV_ID 0x100c +#define VIRTIO_VNET_DEV_ID 0x100c #define VIRTIO_NET_SUBDEVICE_ID 1 #define VIRTIO_BLOCK_SUBDEVICE_ID 2 +#define VIRTIO_CONSOLE_SUBDEVICE_ID 3 #define VIRTIO_BALLOON_SUBDEVICE_ID 5 #define VIRTIO_SYMBIOTIC_SUBDEVICE_ID 10 #define VIRTIO_SYMMOD_SUBDEVICE_ID 11 -#define VIRTIO_VNET_CTRL_SUBDEVICE_ID 12 +#define VIRTIO_VNET_SUBDEVICE_ID 12 + #define HOST_FEATURES_PORT 0 #define GUEST_FEATURES_PORT 4 @@ -89,14 +91,19 @@ * */ struct virtio_config { - uint32_t host_features; - uint32_t guest_features; - uint32_t vring_page_num; - uint16_t vring_ring_size; - uint16_t vring_queue_selector; - uint16_t vring_queue_notifier; - uint8_t status; - uint8_t pci_isr; + union { + uint8_t buf[20]; + struct { + uint32_t host_features; + uint32_t guest_features; + uint32_t vring_page_num; + uint16_t vring_ring_size; + uint16_t vring_queue_selector; + uint16_t vring_queue_notifier; + uint8_t status; + uint8_t pci_isr; + } __attribute__((packed)); + } __attribute__((packed)); } __attribute__((packed)); @@ -136,9 +143,6 @@ struct virtio_queue { addr_t ring_avail_addr; addr_t ring_used_addr; - uint16_t last_avail_idx; - int idx_overflow; - struct vring_desc * desc; // We can treat this as an array... struct vring_avail * avail; struct vring_used * used;