xref: /qemu/include/hw/virtio/vhost-user-fs.h (revision 98fc1ada4cf70af0f1df1a2d7183cf786fc7da05)
1*98fc1adaSDr. David Alan Gilbert /*
2*98fc1adaSDr. David Alan Gilbert  * Vhost-user filesystem virtio device
3*98fc1adaSDr. David Alan Gilbert  *
4*98fc1adaSDr. David Alan Gilbert  * Copyright 2018-2019 Red Hat, Inc.
5*98fc1adaSDr. David Alan Gilbert  *
6*98fc1adaSDr. David Alan Gilbert  * Authors:
7*98fc1adaSDr. David Alan Gilbert  *  Stefan Hajnoczi <stefanha@redhat.com>
8*98fc1adaSDr. David Alan Gilbert  *
9*98fc1adaSDr. David Alan Gilbert  * This work is licensed under the terms of the GNU GPL, version 2 or
10*98fc1adaSDr. David Alan Gilbert  * (at your option) any later version.  See the COPYING file in the
11*98fc1adaSDr. David Alan Gilbert  * top-level directory.
12*98fc1adaSDr. David Alan Gilbert  */
13*98fc1adaSDr. David Alan Gilbert 
14*98fc1adaSDr. David Alan Gilbert #ifndef _QEMU_VHOST_USER_FS_H
15*98fc1adaSDr. David Alan Gilbert #define _QEMU_VHOST_USER_FS_H
16*98fc1adaSDr. David Alan Gilbert 
17*98fc1adaSDr. David Alan Gilbert #include "hw/virtio/virtio.h"
18*98fc1adaSDr. David Alan Gilbert #include "hw/virtio/vhost.h"
19*98fc1adaSDr. David Alan Gilbert #include "hw/virtio/vhost-user.h"
20*98fc1adaSDr. David Alan Gilbert #include "chardev/char-fe.h"
21*98fc1adaSDr. David Alan Gilbert 
22*98fc1adaSDr. David Alan Gilbert #define TYPE_VHOST_USER_FS "vhost-user-fs-device"
23*98fc1adaSDr. David Alan Gilbert #define VHOST_USER_FS(obj) \
24*98fc1adaSDr. David Alan Gilbert         OBJECT_CHECK(VHostUserFS, (obj), TYPE_VHOST_USER_FS)
25*98fc1adaSDr. David Alan Gilbert 
26*98fc1adaSDr. David Alan Gilbert typedef struct {
27*98fc1adaSDr. David Alan Gilbert     CharBackend chardev;
28*98fc1adaSDr. David Alan Gilbert     char *tag;
29*98fc1adaSDr. David Alan Gilbert     uint16_t num_request_queues;
30*98fc1adaSDr. David Alan Gilbert     uint16_t queue_size;
31*98fc1adaSDr. David Alan Gilbert     char *vhostfd;
32*98fc1adaSDr. David Alan Gilbert } VHostUserFSConf;
33*98fc1adaSDr. David Alan Gilbert 
34*98fc1adaSDr. David Alan Gilbert typedef struct {
35*98fc1adaSDr. David Alan Gilbert     /*< private >*/
36*98fc1adaSDr. David Alan Gilbert     VirtIODevice parent;
37*98fc1adaSDr. David Alan Gilbert     VHostUserFSConf conf;
38*98fc1adaSDr. David Alan Gilbert     struct vhost_virtqueue *vhost_vqs;
39*98fc1adaSDr. David Alan Gilbert     struct vhost_dev vhost_dev;
40*98fc1adaSDr. David Alan Gilbert     VhostUserState vhost_user;
41*98fc1adaSDr. David Alan Gilbert 
42*98fc1adaSDr. David Alan Gilbert     /*< public >*/
43*98fc1adaSDr. David Alan Gilbert } VHostUserFS;
44*98fc1adaSDr. David Alan Gilbert 
45*98fc1adaSDr. David Alan Gilbert #endif /* _QEMU_VHOST_USER_FS_H */
46