daaab58
From 8c2d952c608b15e188db90e26b7238d35f5cf289 Mon Sep 17 00:00:00 2001
a575c5e
From: Stefan Hajnoczi <stefanha@redhat.com>
a575c5e
Date: Tue, 17 May 2022 09:28:26 +0100
a575c5e
Subject: [PATCH] virtio-scsi: move request-related items from .h to .c
a575c5e
a575c5e
There is no longer a need to expose the request and related APIs in
a575c5e
virtio-scsi.h since there are no callers outside virtio-scsi.c.
a575c5e
a575c5e
Note the block comment in VirtIOSCSIReq has been adjusted to meet the
a575c5e
coding style.
a575c5e
a575c5e
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
a575c5e
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
a575c5e
Message-id: 20220427143541.119567-7-stefanha@redhat.com
a575c5e
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
a575c5e
(cherry picked from commit 3dc584abeef0e1277c2de8c1c1974cb49444eb0a)
a575c5e
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
a575c5e
---
a575c5e
 hw/scsi/virtio-scsi.c           | 45 ++++++++++++++++++++++++++++++---
a575c5e
 include/hw/virtio/virtio-scsi.h | 40 -----------------------------
a575c5e
 2 files changed, 41 insertions(+), 44 deletions(-)
a575c5e
a575c5e
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
a575c5e
index 12c6a21202..db54d104be 100644
a575c5e
--- a/hw/scsi/virtio-scsi.c
a575c5e
+++ b/hw/scsi/virtio-scsi.c
a575c5e
@@ -29,6 +29,43 @@
a575c5e
 #include "hw/virtio/virtio-access.h"
a575c5e
 #include "trace.h"
a575c5e
 
a575c5e
+typedef struct VirtIOSCSIReq {
a575c5e
+    /*
a575c5e
+     * Note:
a575c5e
+     * - fields up to resp_iov are initialized by virtio_scsi_init_req;
a575c5e
+     * - fields starting at vring are zeroed by virtio_scsi_init_req.
a575c5e
+     */
a575c5e
+    VirtQueueElement elem;
a575c5e
+
a575c5e
+    VirtIOSCSI *dev;
a575c5e
+    VirtQueue *vq;
a575c5e
+    QEMUSGList qsgl;
a575c5e
+    QEMUIOVector resp_iov;
a575c5e
+
a575c5e
+    union {
a575c5e
+        /* Used for two-stage request submission */
a575c5e
+        QTAILQ_ENTRY(VirtIOSCSIReq) next;
a575c5e
+
a575c5e
+        /* Used for cancellation of request during TMFs */
a575c5e
+        int remaining;
a575c5e
+    };
a575c5e
+
a575c5e
+    SCSIRequest *sreq;
a575c5e
+    size_t resp_size;
a575c5e
+    enum SCSIXferMode mode;
a575c5e
+    union {
a575c5e
+        VirtIOSCSICmdResp     cmd;
a575c5e
+        VirtIOSCSICtrlTMFResp tmf;
a575c5e
+        VirtIOSCSICtrlANResp  an;
a575c5e
+        VirtIOSCSIEvent       event;
a575c5e
+    } resp;
a575c5e
+    union {
a575c5e
+        VirtIOSCSICmdReq      cmd;
a575c5e
+        VirtIOSCSICtrlTMFReq  tmf;
a575c5e
+        VirtIOSCSICtrlANReq   an;
a575c5e
+    } req;
a575c5e
+} VirtIOSCSIReq;
a575c5e
+
a575c5e
 static inline int virtio_scsi_get_lun(uint8_t *lun)
a575c5e
 {
a575c5e
     return ((lun[2] << 8) | lun[3]) & 0x3FFF;
a575c5e
@@ -45,7 +82,7 @@ static inline SCSIDevice *virtio_scsi_device_get(VirtIOSCSI *s, uint8_t *lun)
a575c5e
     return scsi_device_get(&s->bus, 0, lun[1], virtio_scsi_get_lun(lun));
a575c5e
 }
a575c5e
 
a575c5e
-void virtio_scsi_init_req(VirtIOSCSI *s, VirtQueue *vq, VirtIOSCSIReq *req)
a575c5e
+static void virtio_scsi_init_req(VirtIOSCSI *s, VirtQueue *vq, VirtIOSCSIReq *req)
a575c5e
 {
a575c5e
     VirtIODevice *vdev = VIRTIO_DEVICE(s);
a575c5e
     const size_t zero_skip =
a575c5e
@@ -58,7 +95,7 @@ void virtio_scsi_init_req(VirtIOSCSI *s, VirtQueue *vq, VirtIOSCSIReq *req)
a575c5e
     memset((uint8_t *)req + zero_skip, 0, sizeof(*req) - zero_skip);
a575c5e
 }
a575c5e
 
a575c5e
-void virtio_scsi_free_req(VirtIOSCSIReq *req)
a575c5e
+static void virtio_scsi_free_req(VirtIOSCSIReq *req)
a575c5e
 {
a575c5e
     qemu_iovec_destroy(&req->resp_iov);
a575c5e
     qemu_sglist_destroy(&req->qsgl);
a575c5e
@@ -801,8 +838,8 @@ static void virtio_scsi_reset(VirtIODevice *vdev)
a575c5e
     s->events_dropped = false;
a575c5e
 }
a575c5e
 
a575c5e
-void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev,
a575c5e
-                            uint32_t event, uint32_t reason)
a575c5e
+static void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev,
a575c5e
+                                   uint32_t event, uint32_t reason)
a575c5e
 {
a575c5e
     VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(s);
a575c5e
     VirtIOSCSIReq *req;
a575c5e
diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
a575c5e
index 2497530064..abdda2cbd0 100644
a575c5e
--- a/include/hw/virtio/virtio-scsi.h
a575c5e
+++ b/include/hw/virtio/virtio-scsi.h
a575c5e
@@ -94,42 +94,6 @@ struct VirtIOSCSI {
a575c5e
     uint32_t host_features;
a575c5e
 };
a575c5e
 
a575c5e
-typedef struct VirtIOSCSIReq {
a575c5e
-    /* Note:
a575c5e
-     * - fields up to resp_iov are initialized by virtio_scsi_init_req;
a575c5e
-     * - fields starting at vring are zeroed by virtio_scsi_init_req.
a575c5e
-     * */
a575c5e
-    VirtQueueElement elem;
a575c5e
-
a575c5e
-    VirtIOSCSI *dev;
a575c5e
-    VirtQueue *vq;
a575c5e
-    QEMUSGList qsgl;
a575c5e
-    QEMUIOVector resp_iov;
a575c5e
-
a575c5e
-    union {
a575c5e
-        /* Used for two-stage request submission */
a575c5e
-        QTAILQ_ENTRY(VirtIOSCSIReq) next;
a575c5e
-
a575c5e
-        /* Used for cancellation of request during TMFs */
a575c5e
-        int remaining;
a575c5e
-    };
a575c5e
-
a575c5e
-    SCSIRequest *sreq;
a575c5e
-    size_t resp_size;
a575c5e
-    enum SCSIXferMode mode;
a575c5e
-    union {
a575c5e
-        VirtIOSCSICmdResp     cmd;
a575c5e
-        VirtIOSCSICtrlTMFResp tmf;
a575c5e
-        VirtIOSCSICtrlANResp  an;
a575c5e
-        VirtIOSCSIEvent       event;
a575c5e
-    } resp;
a575c5e
-    union {
a575c5e
-        VirtIOSCSICmdReq      cmd;
a575c5e
-        VirtIOSCSICtrlTMFReq  tmf;
a575c5e
-        VirtIOSCSICtrlANReq   an;
a575c5e
-    } req;
a575c5e
-} VirtIOSCSIReq;
a575c5e
-
a575c5e
 static inline void virtio_scsi_acquire(VirtIOSCSI *s)
a575c5e
 {
a575c5e
     if (s->ctx) {
a575c5e
@@ -151,10 +115,6 @@ void virtio_scsi_common_realize(DeviceState *dev,
a575c5e
                                 Error **errp);
a575c5e
 
a575c5e
 void virtio_scsi_common_unrealize(DeviceState *dev);
a575c5e
-void virtio_scsi_init_req(VirtIOSCSI *s, VirtQueue *vq, VirtIOSCSIReq *req);
a575c5e
-void virtio_scsi_free_req(VirtIOSCSIReq *req);
a575c5e
-void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev,
a575c5e
-                            uint32_t event, uint32_t reason);
a575c5e
 
a575c5e
 void virtio_scsi_dataplane_setup(VirtIOSCSI *s, Error **errp);
a575c5e
 int virtio_scsi_dataplane_start(VirtIODevice *s);
daaab58
-- 
daaab58
2.37.0.rc2
daaab58