1*27ba7b02SViresh Kumar /* 2*27ba7b02SViresh Kumar * Vhost-user GPIO virtio device 3*27ba7b02SViresh Kumar * 4*27ba7b02SViresh Kumar * Copyright (c) 2021 Viresh Kumar <viresh.kumar@linaro.org> 5*27ba7b02SViresh Kumar * 6*27ba7b02SViresh Kumar * SPDX-License-Identifier: GPL-2.0-or-later 7*27ba7b02SViresh Kumar */ 8*27ba7b02SViresh Kumar 9*27ba7b02SViresh Kumar #ifndef _QEMU_VHOST_USER_GPIO_H 10*27ba7b02SViresh Kumar #define _QEMU_VHOST_USER_GPIO_H 11*27ba7b02SViresh Kumar 12*27ba7b02SViresh Kumar #include "hw/virtio/virtio.h" 13*27ba7b02SViresh Kumar #include "hw/virtio/vhost.h" 14*27ba7b02SViresh Kumar #include "hw/virtio/vhost-user.h" 15*27ba7b02SViresh Kumar #include "standard-headers/linux/virtio_gpio.h" 16*27ba7b02SViresh Kumar #include "chardev/char-fe.h" 17*27ba7b02SViresh Kumar 18*27ba7b02SViresh Kumar #define TYPE_VHOST_USER_GPIO "vhost-user-gpio-device" 19*27ba7b02SViresh Kumar OBJECT_DECLARE_SIMPLE_TYPE(VHostUserGPIO, VHOST_USER_GPIO); 20*27ba7b02SViresh Kumar 21*27ba7b02SViresh Kumar struct VHostUserGPIO { 22*27ba7b02SViresh Kumar /*< private >*/ 23*27ba7b02SViresh Kumar VirtIODevice parent_obj; 24*27ba7b02SViresh Kumar CharBackend chardev; 25*27ba7b02SViresh Kumar struct virtio_gpio_config config; 26*27ba7b02SViresh Kumar struct vhost_virtqueue *vhost_vq; 27*27ba7b02SViresh Kumar struct vhost_dev vhost_dev; 28*27ba7b02SViresh Kumar VhostUserState vhost_user; 29*27ba7b02SViresh Kumar VirtQueue *command_vq; 30*27ba7b02SViresh Kumar VirtQueue *interrupt_vq; 31*27ba7b02SViresh Kumar bool connected; 32*27ba7b02SViresh Kumar /*< public >*/ 33*27ba7b02SViresh Kumar }; 34*27ba7b02SViresh Kumar 35*27ba7b02SViresh Kumar #endif /* _QEMU_VHOST_USER_GPIO_H */ 36