9pfs: break out virtio_init_iov_from_pdu
authorWei Liu <wei.liu2@citrix.com>
Thu, 3 Dec 2015 13:21:51 +0000 (13:21 +0000)
committerAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Fri, 8 Jan 2016 09:53:02 +0000 (15:23 +0530)
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
hw/9pfs/virtio-9p-device.c
hw/9pfs/virtio-9p.c
hw/9pfs/virtio-9p.h

index d77247f..5cad654 100644 (file)
@@ -170,6 +170,18 @@ ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, size_t offset,
                                offset, 1, fmt, ap);
 }
 
+void virtio_init_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov,
+                              unsigned int *pniov, bool is_write)
+{
+    if (is_write) {
+        *piov = pdu->elem.out_sg;
+        *pniov = pdu->elem.out_num;
+    } else {
+        *piov = pdu->elem.in_sg;
+        *pniov = pdu->elem.in_num;
+    }
+}
+
 /* virtio-9p device */
 
 static Property virtio_9p_properties[] = {
index e97adc8..2bd862f 100644 (file)
@@ -1697,13 +1697,7 @@ static void v9fs_init_qiov_from_pdu(QEMUIOVector *qiov, V9fsPDU *pdu,
     struct iovec *iov;
     unsigned int niov;
 
-    if (is_write) {
-        iov = pdu->elem.out_sg;
-        niov = pdu->elem.out_num;
-    } else {
-        iov = pdu->elem.in_sg;
-        niov = pdu->elem.in_num;
-    }
+    virtio_init_iov_from_pdu(pdu, &iov, &niov, is_write);
 
     qemu_iovec_init_external(&elem, iov, niov);
     qemu_iovec_init(qiov, niov);
index e298949..5024ad0 100644 (file)
@@ -327,6 +327,8 @@ ssize_t virtio_pdu_vmarshal(V9fsPDU *pdu, size_t offset,
                             const char *fmt, va_list ap);
 ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, size_t offset,
                               const char *fmt, va_list ap);
+void virtio_init_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov,
+                              unsigned int *pniov, bool is_write);
 
 #define TYPE_VIRTIO_9P "virtio-9p-device"
 #define VIRTIO_9P(obj) \