From: Gerd Hoffmann <kraxel@redhat.com>
To: seabios@seabios.org
Cc: Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>
Subject: [Qemu-devel] [PATCH v2 05/22] virtio: add version 1.0 structs and #defines
Date: Tue, 30 Jun 2015 10:38:56 +0200 [thread overview]
Message-ID: <1435653553-7728-6-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1435653553-7728-1-git-send-email-kraxel@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
src/hw/virtio-pci.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/hw/virtio-ring.h | 5 +++++
2 files changed, 66 insertions(+)
diff --git a/src/hw/virtio-pci.h b/src/hw/virtio-pci.h
index 3cf0327..18beb83 100644
--- a/src/hw/virtio-pci.h
+++ b/src/hw/virtio-pci.h
@@ -40,6 +40,67 @@
/* Virtio ABI version, this must match exactly */
#define VIRTIO_PCI_ABI_VERSION 0
+/* --- virtio 1.0 (modern) structs ---------------------------------- */
+
+/* Common configuration */
+#define VIRTIO_PCI_CAP_COMMON_CFG 1
+/* Notifications */
+#define VIRTIO_PCI_CAP_NOTIFY_CFG 2
+/* ISR access */
+#define VIRTIO_PCI_CAP_ISR_CFG 3
+/* Device specific configuration */
+#define VIRTIO_PCI_CAP_DEVICE_CFG 4
+/* PCI configuration access */
+#define VIRTIO_PCI_CAP_PCI_CFG 5
+
+/* This is the PCI capability header: */
+struct virtio_pci_cap {
+ u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */
+ u8 cap_next; /* Generic PCI field: next ptr. */
+ u8 cap_len; /* Generic PCI field: capability length */
+ u8 cfg_type; /* Identifies the structure. */
+ u8 bar; /* Where to find it. */
+ u8 padding[3]; /* Pad to full dword. */
+ u32 offset; /* Offset within bar. */
+ u32 length; /* Length of the structure, in bytes. */
+};
+
+struct virtio_pci_notify_cap {
+ struct virtio_pci_cap cap;
+ u32 notify_off_multiplier; /* Multiplier for queue_notify_off. */
+};
+
+typedef struct virtio_pci_common_cfg {
+ /* About the whole device. */
+ u32 device_feature_select; /* read-write */
+ u32 device_feature; /* read-only */
+ u32 guest_feature_select; /* read-write */
+ u32 guest_feature; /* read-write */
+ u16 msix_config; /* read-write */
+ u16 num_queues; /* read-only */
+ u8 device_status; /* read-write */
+ u8 config_generation; /* read-only */
+
+ /* About a specific virtqueue. */
+ u16 queue_select; /* read-write */
+ u16 queue_size; /* read-write, power of 2. */
+ u16 queue_msix_vector; /* read-write */
+ u16 queue_enable; /* read-write */
+ u16 queue_notify_off; /* read-only */
+ u32 queue_desc_lo; /* read-write */
+ u32 queue_desc_hi; /* read-write */
+ u32 queue_avail_lo; /* read-write */
+ u32 queue_avail_hi; /* read-write */
+ u32 queue_used_lo; /* read-write */
+ u32 queue_used_hi; /* read-write */
+} virtio_pci_common_cfg;
+
+typedef struct virtio_pci_isr {
+ u8 isr;
+} virtio_pci_isr;
+
+/* --- driver structs ----------------------------------------------- */
+
struct vp_device {
unsigned int ioaddr;
};
diff --git a/src/hw/virtio-ring.h b/src/hw/virtio-ring.h
index fe5133b..553a508 100644
--- a/src/hw/virtio-ring.h
+++ b/src/hw/virtio-ring.h
@@ -20,9 +20,14 @@
#define VIRTIO_CONFIG_S_DRIVER 2
/* Driver has used its parts of the config, and is happy */
#define VIRTIO_CONFIG_S_DRIVER_OK 4
+/* Driver has finished configuring features */
+#define VIRTIO_CONFIG_S_FEATURES_OK 8
/* We've given up on this device. */
#define VIRTIO_CONFIG_S_FAILED 0x80
+/* v1.0 compliant. */
+#define VIRTIO_F_VERSION_1 32
+
#define MAX_QUEUE_NUM (128)
#define VRING_DESC_F_NEXT 1
--
1.8.3.1
next prev parent reply other threads:[~2015-06-30 8:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-30 8:38 [Qemu-devel] [PATCH v2 00/22] virtio: add version 1.0 support Gerd Hoffmann
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 01/22] pci: allow to loop over capabilities Gerd Hoffmann
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 02/22] virtio: run drivers in 32bit mode Gerd Hoffmann
2015-06-30 14:36 ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-07-01 7:27 ` Gerd Hoffmann
2015-07-01 8:08 ` [Qemu-devel] " Michael S. Tsirkin
2015-07-01 12:30 ` Gerd Hoffmann
2015-07-01 13:50 ` Michael S. Tsirkin
2015-07-01 13:59 ` Michael S. Tsirkin
2015-07-01 14:03 ` Gerd Hoffmann
2015-07-01 14:13 ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 03/22] virtio: add struct vp_device Gerd Hoffmann
2015-06-30 14:33 ` [Qemu-devel] [SeaBIOS] " Kevin O'Connor
2015-07-01 7:34 ` Gerd Hoffmann
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 04/22] virtio: pass struct pci_device to vp_init_simple Gerd Hoffmann
2015-06-30 8:38 ` Gerd Hoffmann [this message]
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 06/22] virtio: add version 0.9.5 struct Gerd Hoffmann
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 07/22] virtio: find version 1.0 virtio capabilities Gerd Hoffmann
2015-07-01 11:43 ` Michael S. Tsirkin
2015-07-01 12:24 ` Gerd Hoffmann
2015-07-01 12:28 ` Michael S. Tsirkin
2015-07-01 12:49 ` Gerd Hoffmann
2015-07-01 13:49 ` Michael S. Tsirkin
2015-06-30 8:38 ` [Qemu-devel] [PATCH v2 08/22] virtio: create vp_cap struct for legacy bar Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 09/22] virtio: add version 0.9.5 struct [fixup] Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 10/22] virtio: add read/write functions and macros Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 11/22] virtio: make features 64bit, support version 1.0 features Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 12/22] virtio: add version 1.0 support to vp_{get, set}_status Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 13/22] virtio: add version 1.0 support to vp_get_isr Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 14/22] virtio: add version 1.0 support to vp_reset Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 15/22] virtio: add version 1.0 support to vp_notify Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 16/22] virtio: remove unused vp_del_vq Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 17/22] virtio: add version 1.0 support to vp_find_vq Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 18/22] virtio-scsi: fix initialization for version 1.0 Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 19/22] virtio-blk: " Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 20/22] virtio: use version 1.0 if available (flip the big switch) Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 21/22] virtio: also probe version 1.0 pci ids Gerd Hoffmann
2015-06-30 8:39 ` [Qemu-devel] [PATCH v2 22/22] virtio: legacy cleanup Gerd Hoffmann
2015-07-01 11:48 ` [Qemu-devel] [PATCH v2 00/22] virtio: add version 1.0 support Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1435653553-7728-6-git-send-email-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=seabios@seabios.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).