mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
virtio-input: evdev passthrough
This allows to assign host input devices to the guest: qemu -device virtio-input-host-pci,evdev=/dev/input/event<nr> The guest gets exclusive access to the input device, so be careful with assigning the keyboard if you have only one connected to your machine. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
6f2b9a5b24
commit
006a5edebe
5 changed files with 228 additions and 0 deletions
|
@ -50,10 +50,17 @@ typedef struct virtio_input_event virtio_input_event;
|
|||
#define VIRTIO_INPUT_HID_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_INPUT_HID)
|
||||
|
||||
#define TYPE_VIRTIO_INPUT_HOST "virtio-input-host-device"
|
||||
#define VIRTIO_INPUT_HOST(obj) \
|
||||
OBJECT_CHECK(VirtIOInputHost, (obj), TYPE_VIRTIO_INPUT_HOST)
|
||||
#define VIRTIO_INPUT_HOST_GET_PARENT_CLASS(obj) \
|
||||
OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_INPUT_HOST)
|
||||
|
||||
typedef struct VirtIOInput VirtIOInput;
|
||||
typedef struct VirtIOInputClass VirtIOInputClass;
|
||||
typedef struct VirtIOInputConfig VirtIOInputConfig;
|
||||
typedef struct VirtIOInputHID VirtIOInputHID;
|
||||
typedef struct VirtIOInputHost VirtIOInputHost;
|
||||
|
||||
struct VirtIOInputConfig {
|
||||
virtio_input_config config;
|
||||
|
@ -93,6 +100,12 @@ struct VirtIOInputHID {
|
|||
int ledstate;
|
||||
};
|
||||
|
||||
struct VirtIOInputHost {
|
||||
VirtIOInput parent_obj;
|
||||
char *evdev;
|
||||
int fd;
|
||||
};
|
||||
|
||||
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