mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
Add vhost-user-input-pci
Add a new virtio-input device, which connects to a vhost-user backend. Instead of reading configuration directly from an input device / evdev (like virtio-input-host), it reads it over vhost-user protocol with {SET,GET}_CONFIG messages. The vhost-user-backend handles the queues & events setup. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20190503130034.24916-5-marcandre.lureau@redhat.com [ kraxel: drop -{non-,}transitional variants ] [ kraxel: fix "make check" on !linux ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
f24bb7287d
commit
9c4d05b741
7 changed files with 201 additions and 0 deletions
|
@ -2,6 +2,7 @@
|
|||
#define QEMU_VIRTIO_INPUT_H
|
||||
|
||||
#include "ui/input.h"
|
||||
#include "sysemu/vhost-user-backend.h"
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
/* virtio input protocol */
|
||||
|
@ -42,11 +43,18 @@ typedef struct virtio_input_event virtio_input_event;
|
|||
#define VIRTIO_INPUT_HOST_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_INPUT_HOST)
|
||||
|
||||
#define TYPE_VHOST_USER_INPUT "vhost-user-input"
|
||||
#define VHOST_USER_INPUT(obj) \
|
||||
OBJECT_CHECK(VHostUserInput, (obj), TYPE_VHOST_USER_INPUT)
|
||||
#define VHOST_USER_INPUT_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VHOST_USER_INPUT)
|
||||
|
||||
typedef struct VirtIOInput VirtIOInput;
|
||||
typedef struct VirtIOInputClass VirtIOInputClass;
|
||||
typedef struct VirtIOInputConfig VirtIOInputConfig;
|
||||
typedef struct VirtIOInputHID VirtIOInputHID;
|
||||
typedef struct VirtIOInputHost VirtIOInputHost;
|
||||
typedef struct VHostUserInput VHostUserInput;
|
||||
|
||||
struct VirtIOInputConfig {
|
||||
virtio_input_config config;
|
||||
|
@ -98,6 +106,12 @@ struct VirtIOInputHost {
|
|||
int fd;
|
||||
};
|
||||
|
||||
struct VHostUserInput {
|
||||
VirtIOInput parent_obj;
|
||||
|
||||
VhostUserBackend *vhost;
|
||||
};
|
||||
|
||||
void virtio_input_send(VirtIOInput *vinput, virtio_input_event *event);
|
||||
void virtio_input_init_config(VirtIOInput *vinput,
|
||||
virtio_input_config *config);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue