Browse Source

char: add qemu_chr_fe_event()

Teach the chardev frontend to send event. This is used by the Spice port
chardev currently.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Marc-André Lureau 11 năm trước cách đây
mục cha
commit
d61b0c9a2f
2 tập tin đã thay đổi với 17 bổ sung0 xóa
  1. 10 0
      include/sysemu/char.h
  2. 7 0
      qemu-char.c

+ 10 - 0
include/sysemu/char.h

@@ -69,6 +69,7 @@ struct CharDriverState {
     void (*chr_accept_input)(struct CharDriverState *chr);
     void (*chr_set_echo)(struct CharDriverState *chr, bool echo);
     void (*chr_set_fe_open)(struct CharDriverState *chr, int fe_open);
+    void (*chr_fe_event)(struct CharDriverState *chr, int event);
     void *opaque;
     char *label;
     char *filename;
@@ -137,6 +138,15 @@ void qemu_chr_fe_set_echo(struct CharDriverState *chr, bool echo);
  */
 void qemu_chr_fe_set_open(struct CharDriverState *chr, int fe_open);
 
+/**
+ * @qemu_chr_fe_event:
+ *
+ * Send an event from the front end to the back end.
+ *
+ * @event the event to send
+ */
+void qemu_chr_fe_event(CharDriverState *s, int event);
+
 /**
  * @qemu_chr_fe_printf:
  *

+ 7 - 0
qemu-char.c

@@ -3353,6 +3353,13 @@ void qemu_chr_fe_set_open(struct CharDriverState *chr, int fe_open)
     }
 }
 
+void qemu_chr_fe_event(struct CharDriverState *chr, int event)
+{
+    if (chr->chr_fe_event) {
+        chr->chr_fe_event(chr, event);
+    }
+}
+
 int qemu_chr_fe_add_watch(CharDriverState *s, GIOCondition cond,
                           GIOFunc func, void *user_data)
 {