diff options
Diffstat (limited to 'vhost_user_input.h')
-rw-r--r-- | vhost_user_input.h | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/vhost_user_input.h b/vhost_user_input.h deleted file mode 100644 index 23f4ddd..0000000 --- a/vhost_user_input.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Based on virtio-input.h of QEMU project - * - * Copyright (c) 2022-2023 Virtual Open Systems SAS. - * - * This work is licensed under the terms of the GNU GPL, version 2 or - * (at your option) any later version. See the COPYING file in the - * top-level directory. - */ - -#ifndef VHOST_USER_INPUT -#define VHOST_USER_INPUT - -#include "vhost_loopback.h" -#include "vhost_user_loopback.h" -#include "virtio_loopback.h" -#include <linux/virtio_input.h> -#include "queue.h" -#include <sys/mman.h> - -/* ----------------------------------------------------------------- */ -/* virtio input protocol */ - -typedef struct virtio_input_absinfo virtio_input_absinfo; -typedef struct virtio_input_config virtio_input_config; -typedef struct virtio_input_event virtio_input_event; - -/* ----------------------------------------------------------------- */ -/* qemu internals */ - -#define TYPE_VIRTIO_INPUT "virtio-input-device" -#define TYPE_VIRTIO_INPUT_HID "virtio-input-hid-device" -#define TYPE_VIRTIO_KEYBOARD "virtio-keyboard-device" -#define TYPE_VIRTIO_MOUSE "virtio-mouse-device" -#define TYPE_VIRTIO_TABLET "virtio-tablet-device" - -#define TYPE_VIRTIO_INPUT_HOST "virtio-input-host-device" - -#define TYPE_VHOST_USER_INPUT "vhost-user-input" - -typedef struct VirtIOInputConfig { - virtio_input_config config; - QTAILQ_ENTRY(VirtIOInputConfig) node; -} VirtIOInputConfig; - -struct VirtIOInputClass; - -typedef struct VirtIOInput { - VirtIODevice *parent_dev; - struct VirtIOInputClass *input_class; - uint8_t cfg_select; - uint8_t cfg_subsel; - uint32_t cfg_size; - QTAILQ_HEAD(, VirtIOInputConfig) cfg_list; - VirtQueue *evt, *sts; - char *serial; - struct { - virtio_input_event event; - VirtQueueElement *elem; - } *queue; - uint32_t qindex, qsize; - bool active; - -} VirtIOInput; - -typedef struct VirtIOInputClass { - VirtioDeviceClass *parent_class; - void (*realize)(); - void (*unrealize)(VirtIODevice *dev); - void (*change_active)(VirtIOInput *vinput); - void (*handle_status)(VirtIOInput *vinput, virtio_input_event *event); -} VirtIOInputClass; - -struct VirtIOInputHID { - VirtIOInput parent_obj; - char *display; - uint32_t head; - int ledstate; - bool wheel_axis; -}; - -struct VirtIOInputHost { - VirtIOInput parent_obj; - char *evdev; - int fd; -}; - -typedef struct VhostUserInput { - VirtIOInput *vdev_input; - struct vhost_dev *vhost_dev; - VirtIODevice *vdev; - bool started; - bool completed; -} VhostUserInput; - -#define VIRTIO_ID_NAME_KEYBOARD "QEMU Virtio Keyboard" -#define BUS_VIRTUAL 0x06 - - -/* - * Event types - */ - -#define EV_SYN 0x00 -#define EV_KEY 0x01 -#define EV_REL 0x02 -#define EV_ABS 0x03 -#define EV_MSC 0x04 -#define EV_SW 0x05 -#define EV_LED 0x11 -#define EV_SND 0x12 -#define EV_REP 0x14 -#define EV_FF 0x15 -#define EV_PWR 0x16 -#define EV_FF_STATUS 0x17 -#define EV_MAX 0x1f -#define EV_CNT (EV_MAX + 1) - -/* - * LEDs - */ - -#define LED_NUML 0x00 -#define LED_CAPSL 0x01 -#define LED_SCROLLL 0x02 -#define LED_COMPOSE 0x03 -#define LED_KANA 0x04 -#define LED_SLEEP 0x05 -#define LED_SUSPEND 0x06 -#define LED_MUTE 0x07 -#define LED_MISC 0x08 -#define LED_MAIL 0x09 -#define LED_CHARGING 0x0a -#define LED_MAX 0x0f -#define LED_CNT (LED_MAX + 1) - -/* - * Keys and buttons - * - * Most of the keys/buttons are modeled after USB HUT 1.12 - * (see http://www.usb.org/developers/hidpage). - * Abbreviations in the comments: - * AC - Application Control - * AL - Application Launch Button - * SC - System Control - */ -#define KEY_G 34 - -void vhost_user_backend_start(VirtIODevice *vdev); -void vhost_user_backend_stop(VirtIODevice *vdev); -void virtio_input_init_config(VirtIOInput *vinput, - virtio_input_config *config); -void virtio_input_class_init(VirtIODevice *vdev); -void virtio_input_device_realize(int queue_num, int queue_size); -void vhost_user_input_init(VirtIODevice *vdev); -void vhost_user_input_realize(); - -#endif /* VHOST_USER_INPUT */ |