xref: /qemu/include/hw/virtio/vhost-user-fs.h (revision ec11dc41eec5142b4776db1296972c6323ba5847)
198fc1adaSDr. David Alan Gilbert /*
298fc1adaSDr. David Alan Gilbert  * Vhost-user filesystem virtio device
398fc1adaSDr. David Alan Gilbert  *
498fc1adaSDr. David Alan Gilbert  * Copyright 2018-2019 Red Hat, Inc.
598fc1adaSDr. David Alan Gilbert  *
698fc1adaSDr. David Alan Gilbert  * Authors:
798fc1adaSDr. David Alan Gilbert  *  Stefan Hajnoczi <stefanha@redhat.com>
898fc1adaSDr. David Alan Gilbert  *
998fc1adaSDr. David Alan Gilbert  * This work is licensed under the terms of the GNU GPL, version 2 or
1098fc1adaSDr. David Alan Gilbert  * (at your option) any later version.  See the COPYING file in the
1198fc1adaSDr. David Alan Gilbert  * top-level directory.
1298fc1adaSDr. David Alan Gilbert  */
1398fc1adaSDr. David Alan Gilbert 
14*9c092804SMarkus Armbruster #ifndef QEMU_VHOST_USER_FS_H
15*9c092804SMarkus Armbruster #define QEMU_VHOST_USER_FS_H
1698fc1adaSDr. David Alan Gilbert 
1798fc1adaSDr. David Alan Gilbert #include "hw/virtio/virtio.h"
1898fc1adaSDr. David Alan Gilbert #include "hw/virtio/vhost.h"
1998fc1adaSDr. David Alan Gilbert #include "hw/virtio/vhost-user.h"
2098fc1adaSDr. David Alan Gilbert #include "chardev/char-fe.h"
21db1015e9SEduardo Habkost #include "qom/object.h"
2298fc1adaSDr. David Alan Gilbert 
2398fc1adaSDr. David Alan Gilbert #define TYPE_VHOST_USER_FS "vhost-user-fs-device"
248063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(VHostUserFS, VHOST_USER_FS)
2598fc1adaSDr. David Alan Gilbert 
2698fc1adaSDr. David Alan Gilbert typedef struct {
2798fc1adaSDr. David Alan Gilbert     CharBackend chardev;
2898fc1adaSDr. David Alan Gilbert     char *tag;
2998fc1adaSDr. David Alan Gilbert     uint16_t num_request_queues;
3098fc1adaSDr. David Alan Gilbert     uint16_t queue_size;
3198fc1adaSDr. David Alan Gilbert } VHostUserFSConf;
3298fc1adaSDr. David Alan Gilbert 
33db1015e9SEduardo Habkost struct VHostUserFS {
3498fc1adaSDr. David Alan Gilbert     /*< private >*/
3598fc1adaSDr. David Alan Gilbert     VirtIODevice parent;
3698fc1adaSDr. David Alan Gilbert     VHostUserFSConf conf;
3798fc1adaSDr. David Alan Gilbert     struct vhost_virtqueue *vhost_vqs;
3898fc1adaSDr. David Alan Gilbert     struct vhost_dev vhost_dev;
3998fc1adaSDr. David Alan Gilbert     VhostUserState vhost_user;
402e5bc659SPan Nengyuan     VirtQueue **req_vqs;
412e5bc659SPan Nengyuan     VirtQueue *hiprio_vq;
426da32fe5SLaszlo Ersek     int32_t bootindex;
4398fc1adaSDr. David Alan Gilbert 
4498fc1adaSDr. David Alan Gilbert     /*< public >*/
45db1015e9SEduardo Habkost };
4698fc1adaSDr. David Alan Gilbert 
47*9c092804SMarkus Armbruster #endif /* QEMU_VHOST_USER_FS_H */
48