diff options
| author | Stefan Hajnoczi <stefanha@redhat.com> | 2024-01-19 08:57:43 -0500 |
|---|---|---|
| committer | Kevin Wolf <kwolf@redhat.com> | 2024-01-26 11:16:58 +0100 |
| commit | 3bcc17f06526754fd675dcf601414442044fa0b6 (patch) | |
| tree | f1d63b58476b221a9e045d63b1125ce45b0f976d /include/hw/virtio/virtio-blk.h | |
| parent | effd60c878176bcaf97fa7ce2b12d04bb8ead6f7 (diff) | |
| download | focaccia-qemu-3bcc17f06526754fd675dcf601414442044fa0b6.tar.gz focaccia-qemu-3bcc17f06526754fd675dcf601414442044fa0b6.zip | |
virtio-blk: move dataplane code into virtio-blk.c
The dataplane code used to be significantly different from the non-dataplane code and therefore had a separate source file. Over time the difference has gotten smaller because the I/O code paths were unified. Nowadays the distinction between the VirtIOBlock and VirtIOBlockDataPlane structs is more of an inconvenience that hinders code simplification. Move hw/block/dataplane/virtio-blk.c into hw/block/virtio-blk.c, merging VirtIOBlockDataPlane's fields into VirtIOBlock. hw/block/virtio-blk.c used VirtIOBlock->dataplane to check if virtio_blk_data_plane_create() was successful. This is not necessary because ->dataplane_started and ->dataplane_disabled can be used instead. This patch makes those changes in order to drop VirtIOBlock->dataplane. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-ID: <20240119135748.270944-2-stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include/hw/virtio/virtio-blk.h')
| -rw-r--r-- | include/hw/virtio/virtio-blk.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 5e4091e4da..fecffdc303 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -50,8 +50,6 @@ struct VirtIOBlkConf bool x_enable_wce_if_config_wce; }; -struct VirtIOBlockDataPlane; - struct VirtIOBlockReq; struct VirtIOBlock { VirtIODevice parent_obj; @@ -64,7 +62,15 @@ struct VirtIOBlock { VMChangeStateEntry *change; bool dataplane_disabled; bool dataplane_started; - struct VirtIOBlockDataPlane *dataplane; + bool dataplane_starting; + bool dataplane_stopping; + + /* + * The AioContext for each virtqueue. The BlockDriverState will use the + * first element as its AioContext. + */ + AioContext **vq_aio_context; + uint64_t host_features; size_t config_size; BlockRAMRegistrar blk_ram_registrar; |