virtio-scsi: Add VirtIOSCSIVring in VirtIOSCSIReq
Move VirtIOSCSIReq to header and add one field "vring" as a wrapper structure of Vring, VirtIOSCSIVring. This is necessary for coming dataplane code that runs uses vring on iothread. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
19d339f11d
commit
244e2898b7
@ -17,6 +17,8 @@
|
|||||||
#include "hw/virtio/virtio.h"
|
#include "hw/virtio/virtio.h"
|
||||||
#include "hw/pci/pci.h"
|
#include "hw/pci/pci.h"
|
||||||
#include "hw/scsi/scsi.h"
|
#include "hw/scsi/scsi.h"
|
||||||
|
#include "sysemu/iothread.h"
|
||||||
|
#include "hw/virtio/dataplane/vring.h"
|
||||||
|
|
||||||
#define TYPE_VIRTIO_SCSI_COMMON "virtio-scsi-common"
|
#define TYPE_VIRTIO_SCSI_COMMON "virtio-scsi-common"
|
||||||
#define VIRTIO_SCSI_COMMON(obj) \
|
#define VIRTIO_SCSI_COMMON(obj) \
|
||||||
@ -154,6 +156,15 @@ struct VirtIOSCSIConf {
|
|||||||
IOThread *iothread;
|
IOThread *iothread;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct VirtIOSCSI;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
struct VirtIOSCSI *parent;
|
||||||
|
Vring vring;
|
||||||
|
EventNotifier host_notifier;
|
||||||
|
EventNotifier guest_notifier;
|
||||||
|
} VirtIOSCSIVring;
|
||||||
|
|
||||||
typedef struct VirtIOSCSICommon {
|
typedef struct VirtIOSCSICommon {
|
||||||
VirtIODevice parent_obj;
|
VirtIODevice parent_obj;
|
||||||
VirtIOSCSIConf conf;
|
VirtIOSCSIConf conf;
|
||||||
@ -165,7 +176,7 @@ typedef struct VirtIOSCSICommon {
|
|||||||
VirtQueue **cmd_vqs;
|
VirtQueue **cmd_vqs;
|
||||||
} VirtIOSCSICommon;
|
} VirtIOSCSICommon;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct VirtIOSCSI {
|
||||||
VirtIOSCSICommon parent_obj;
|
VirtIOSCSICommon parent_obj;
|
||||||
|
|
||||||
SCSIBus bus;
|
SCSIBus bus;
|
||||||
@ -186,6 +197,8 @@ typedef struct VirtIOSCSIReq {
|
|||||||
* */
|
* */
|
||||||
|
|
||||||
VirtQueueElement elem;
|
VirtQueueElement elem;
|
||||||
|
/* Set by dataplane code. */
|
||||||
|
VirtIOSCSIVring *vring;
|
||||||
SCSIRequest *sreq;
|
SCSIRequest *sreq;
|
||||||
size_t resp_size;
|
size_t resp_size;
|
||||||
enum SCSIXferMode mode;
|
enum SCSIXferMode mode;
|
||||||
|
Loading…
Reference in New Issue
Block a user