1821d28b8SMathieu Poirier /* 2821d28b8SMathieu Poirier * Vhost-user RNG virtio device 3821d28b8SMathieu Poirier * 4821d28b8SMathieu Poirier * Copyright (c) 2021 Mathieu Poirier <mathieu.poirier@linaro.org> 5821d28b8SMathieu Poirier * 6821d28b8SMathieu Poirier * SPDX-License-Identifier: GPL-2.0-or-later 7821d28b8SMathieu Poirier */ 8821d28b8SMathieu Poirier 9*9c092804SMarkus Armbruster #ifndef QEMU_VHOST_USER_RNG_H 10*9c092804SMarkus Armbruster #define QEMU_VHOST_USER_RNG_H 11821d28b8SMathieu Poirier 12821d28b8SMathieu Poirier #include "hw/virtio/virtio.h" 13821d28b8SMathieu Poirier #include "hw/virtio/vhost.h" 14821d28b8SMathieu Poirier #include "hw/virtio/vhost-user.h" 15821d28b8SMathieu Poirier #include "chardev/char-fe.h" 16821d28b8SMathieu Poirier 17821d28b8SMathieu Poirier #define TYPE_VHOST_USER_RNG "vhost-user-rng" 18821d28b8SMathieu Poirier OBJECT_DECLARE_SIMPLE_TYPE(VHostUserRNG, VHOST_USER_RNG) 19821d28b8SMathieu Poirier 20821d28b8SMathieu Poirier struct VHostUserRNG { 21821d28b8SMathieu Poirier /*< private >*/ 22821d28b8SMathieu Poirier VirtIODevice parent; 23821d28b8SMathieu Poirier CharBackend chardev; 24821d28b8SMathieu Poirier struct vhost_virtqueue *vhost_vq; 25821d28b8SMathieu Poirier struct vhost_dev vhost_dev; 26821d28b8SMathieu Poirier VhostUserState vhost_user; 27821d28b8SMathieu Poirier VirtQueue *req_vq; 28821d28b8SMathieu Poirier bool connected; 29821d28b8SMathieu Poirier 30821d28b8SMathieu Poirier /*< public >*/ 31821d28b8SMathieu Poirier }; 32821d28b8SMathieu Poirier 33*9c092804SMarkus Armbruster #endif /* QEMU_VHOST_USER_RNG_H */ 34