Commit 0192cc5d authored by Wei Liu's avatar Wei Liu Committed by Aneesh Kumar K.V
Browse files

9pfs: move handle_9p_output and make it static function



It's only used in virtio device.

Signed-off-by: default avatarWei Liu <wei.liu2@citrix.com>
Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
parent 4b311c5f
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include "9p-xattr.h"
#include "coth.h"
#include "hw/virtio/virtio-access.h"
#include "qemu/iov.h"

void virtio_9p_push_and_notify(V9fsPDU *pdu)
{
@@ -31,6 +32,39 @@ void virtio_9p_push_and_notify(V9fsPDU *pdu)
    virtio_notify(VIRTIO_DEVICE(s), s->vq);
}

static void handle_9p_output(VirtIODevice *vdev, VirtQueue *vq)
{
    V9fsState *s = (V9fsState *)vdev;
    V9fsPDU *pdu;
    ssize_t len;

    while ((pdu = pdu_alloc(s)) &&
            (len = virtqueue_pop(vq, &pdu->elem)) != 0) {
        struct {
            uint32_t size_le;
            uint8_t id;
            uint16_t tag_le;
        } QEMU_PACKED out;
        int len;

        BUG_ON(pdu->elem.out_num == 0 || pdu->elem.in_num == 0);
        QEMU_BUILD_BUG_ON(sizeof out != 7);

        len = iov_to_buf(pdu->elem.out_sg, pdu->elem.out_num, 0,
                         &out, sizeof out);
        BUG_ON(len != sizeof out);

        pdu->size = le32_to_cpu(out.size_le);

        pdu->id = out.id;
        pdu->tag = le16_to_cpu(out.tag_le);

        qemu_co_queue_init(&pdu->complete);
        pdu_submit(pdu);
    }
    pdu_free(pdu);
}

static uint64_t virtio_9p_get_features(VirtIODevice *vdev, uint64_t features,
                                       Error **errp)
{
+0 −33
Original line number Diff line number Diff line
@@ -3266,39 +3266,6 @@ void pdu_submit(V9fsPDU *pdu)
    qemu_coroutine_enter(co, pdu);
}

void handle_9p_output(VirtIODevice *vdev, VirtQueue *vq)
{
    V9fsState *s = (V9fsState *)vdev;
    V9fsPDU *pdu;
    ssize_t len;

    while ((pdu = pdu_alloc(s)) &&
            (len = virtqueue_pop(vq, &pdu->elem)) != 0) {
        struct {
            uint32_t size_le;
            uint8_t id;
            uint16_t tag_le;
        } QEMU_PACKED out;
        int len;

        BUG_ON(pdu->elem.out_num == 0 || pdu->elem.in_num == 0);
        QEMU_BUILD_BUG_ON(sizeof out != 7);

        len = iov_to_buf(pdu->elem.out_sg, pdu->elem.out_num, 0,
                         &out, sizeof out);
        BUG_ON(len != sizeof out);

        pdu->size = le32_to_cpu(out.size_le);

        pdu->id = out.id;
        pdu->tag = le16_to_cpu(out.tag_le);

        qemu_co_queue_init(&pdu->complete);
        pdu_submit(pdu);
    }
    pdu_free(pdu);
}

static void __attribute__((__constructor__)) virtio_9p_set_fd_limit(void)
{
    struct rlimit rlim;
+0 −1
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@
#include "hw/virtio/virtio.h"
#include "9p.h"

extern void handle_9p_output(VirtIODevice *vdev, VirtQueue *vq);
extern void virtio_9p_push_and_notify(V9fsPDU *pdu);

ssize_t virtio_pdu_vmarshal(V9fsPDU *pdu, size_t offset,