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