qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio
at jcs-hda-dma 119 lines 4.9 kB view raw
1#ifndef INPUT_H 2#define INPUT_H 3 4#include "qapi/qapi-types-ui.h" 5 6#define INPUT_EVENT_MASK_KEY (1<<INPUT_EVENT_KIND_KEY) 7#define INPUT_EVENT_MASK_BTN (1<<INPUT_EVENT_KIND_BTN) 8#define INPUT_EVENT_MASK_REL (1<<INPUT_EVENT_KIND_REL) 9#define INPUT_EVENT_MASK_ABS (1<<INPUT_EVENT_KIND_ABS) 10 11#define INPUT_EVENT_ABS_MIN 0x0000 12#define INPUT_EVENT_ABS_MAX 0x7FFF 13 14typedef struct QemuInputHandler QemuInputHandler; 15typedef struct QemuInputHandlerState QemuInputHandlerState; 16 17typedef void (*QemuInputHandlerEvent)(DeviceState *dev, QemuConsole *src, 18 InputEvent *evt); 19typedef void (*QemuInputHandlerSync)(DeviceState *dev); 20 21struct QemuInputHandler { 22 const char *name; 23 uint32_t mask; 24 QemuInputHandlerEvent event; 25 QemuInputHandlerSync sync; 26}; 27 28QemuInputHandlerState *qemu_input_handler_register(DeviceState *dev, 29 QemuInputHandler *handler); 30void qemu_input_handler_activate(QemuInputHandlerState *s); 31void qemu_input_handler_deactivate(QemuInputHandlerState *s); 32void qemu_input_handler_unregister(QemuInputHandlerState *s); 33void qemu_input_handler_bind(QemuInputHandlerState *s, 34 const char *device_id, int head, 35 Error **errp); 36void qemu_input_event_send(QemuConsole *src, InputEvent *evt); 37void qemu_input_event_send_impl(QemuConsole *src, InputEvent *evt); 38void qemu_input_event_sync(void); 39void qemu_input_event_sync_impl(void); 40 41void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down); 42void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down); 43void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down); 44void qemu_input_event_send_key_delay(uint32_t delay_ms); 45int qemu_input_key_number_to_qcode(unsigned int nr); 46int qemu_input_key_value_to_number(const KeyValue *value); 47int qemu_input_key_value_to_qcode(const KeyValue *value); 48int qemu_input_key_value_to_scancode(const KeyValue *value, bool down, 49 int *codes); 50int qemu_input_linux_to_qcode(unsigned int lnx); 51 52InputEvent *qemu_input_event_new_btn(InputButton btn, bool down); 53void qemu_input_queue_btn(QemuConsole *src, InputButton btn, bool down); 54void qemu_input_update_buttons(QemuConsole *src, uint32_t *button_map, 55 uint32_t button_old, uint32_t button_new); 56 57bool qemu_input_is_absolute(void); 58int qemu_input_scale_axis(int value, 59 int min_in, int max_in, 60 int min_out, int max_out); 61InputEvent *qemu_input_event_new_move(InputEventKind kind, 62 InputAxis axis, int value); 63void qemu_input_queue_rel(QemuConsole *src, InputAxis axis, int value); 64void qemu_input_queue_abs(QemuConsole *src, InputAxis axis, int value, 65 int min_in, int max_in); 66 67void qemu_input_check_mode_change(void); 68void qemu_add_mouse_mode_change_notifier(Notifier *notify); 69void qemu_remove_mouse_mode_change_notifier(Notifier *notify); 70 71extern const guint qemu_input_map_atset1_to_qcode_len; 72extern const guint16 qemu_input_map_atset1_to_qcode[]; 73 74extern const guint qemu_input_map_linux_to_qcode_len; 75extern const guint16 qemu_input_map_linux_to_qcode[]; 76 77extern const guint qemu_input_map_qcode_to_atset1_len; 78extern const guint16 qemu_input_map_qcode_to_atset1[]; 79 80extern const guint qemu_input_map_qcode_to_atset2_len; 81extern const guint16 qemu_input_map_qcode_to_atset2[]; 82 83extern const guint qemu_input_map_qcode_to_atset3_len; 84extern const guint16 qemu_input_map_qcode_to_atset3[]; 85 86extern const guint qemu_input_map_qcode_to_linux_len; 87extern const guint16 qemu_input_map_qcode_to_linux[]; 88 89extern const guint qemu_input_map_qcode_to_qnum_len; 90extern const guint16 qemu_input_map_qcode_to_qnum[]; 91 92extern const guint qemu_input_map_qcode_to_sun_len; 93extern const guint16 qemu_input_map_qcode_to_sun[]; 94 95extern const guint qemu_input_map_qnum_to_qcode_len; 96extern const guint16 qemu_input_map_qnum_to_qcode[]; 97 98extern const guint qemu_input_map_usb_to_qcode_len; 99extern const guint16 qemu_input_map_usb_to_qcode[]; 100 101extern const guint qemu_input_map_win32_to_qcode_len; 102extern const guint16 qemu_input_map_win32_to_qcode[]; 103 104extern const guint qemu_input_map_x11_to_qcode_len; 105extern const guint16 qemu_input_map_x11_to_qcode[]; 106 107extern const guint qemu_input_map_xorgevdev_to_qcode_len; 108extern const guint16 qemu_input_map_xorgevdev_to_qcode[]; 109 110extern const guint qemu_input_map_xorgkbd_to_qcode_len; 111extern const guint16 qemu_input_map_xorgkbd_to_qcode[]; 112 113extern const guint qemu_input_map_xorgxquartz_to_qcode_len; 114extern const guint16 qemu_input_map_xorgxquartz_to_qcode[]; 115 116extern const guint qemu_input_map_xorgxwin_to_qcode_len; 117extern const guint16 qemu_input_map_xorgxwin_to_qcode[]; 118 119#endif /* INPUT_H */