[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 02/12] char: add qemu_chr_fe_event()
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 02/12] char: add qemu_chr_fe_event() |
Date: |
Thu, 20 Jun 2013 19:46:01 +0200 |
Signed-off-by: Marc-André Lureau <address@hidden>
---
include/sysemu/char.h | 10 ++++++++++
qemu-char.c | 7 +++++++
spice-qemu-char.c | 10 ++++++++++
3 files changed, 27 insertions(+)
diff --git a/include/sysemu/char.h b/include/sysemu/char.h
index 066c216..eee70fe 100644
--- a/include/sysemu/char.h
+++ b/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;
@@ -136,6 +137,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 back end to the front end.
+ *
+ * @event the event to send
+ */
+void qemu_chr_fe_event(CharDriverState *s, int event);
+
+/**
* @qemu_chr_fe_printf:
*
* Write to a character backend using a printf style interface.
diff --git a/qemu-char.c b/qemu-char.c
index 2c3cfe6..14e268e 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3317,6 +3317,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)
{
diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 6d147a7..0d77f77 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -223,6 +223,15 @@ static void spice_chr_set_fe_open(struct CharDriverState
*chr, int fe_open)
}
}
+static void spice_chr_fe_event(struct CharDriverState *chr, int event)
+{
+#if SPICE_SERVER_VERSION >= 0x000c02
+ SpiceCharDriver *s = chr->opaque;
+
+ spice_server_port_event(&s->sin, event);
+#endif
+}
+
static void print_allowed_subtypes(void)
{
const char** psubtype;
@@ -256,6 +265,7 @@ static CharDriverState *chr_open(const char *subtype)
chr->chr_close = spice_chr_close;
chr->chr_set_fe_open = spice_chr_set_fe_open;
chr->explicit_be_open = true;
+ chr->chr_fe_event = spice_chr_fe_event;
QLIST_INSERT_HEAD(&spice_chars, s, next);
--
1.8.3.rc1.49.g8d97506
- [Qemu-devel] [PATCH 00/12] RFC: add Spice block device, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 01/12] include: add missing config-host.h include, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 10/12] block: learn to open a driver with a given opaque, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 08/12] block: extract make_snapshot() from bdrv_open(), Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 12/12] block: add spice block device backend, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 06/12] nbd: make session_close() idempotent, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 04/12] Split nbd block client code, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 03/12] nbd: don't change socket block during negotiate, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 02/12] char: add qemu_chr_fe_event(),
Marc-André Lureau <=
- [Qemu-devel] [PATCH 11/12] block: allow to call bdrv_open() with an opaque, Marc-André Lureau, 2013/06/20
- [Qemu-devel] [PATCH 07/12] block: save the associated child in BlockDriverState, Marc-André Lureau, 2013/06/20
[Qemu-devel] [PATCH 09/12] block: add "snapshot.size" option to avoid extra bdrv_open(), Marc-André Lureau, 2013/06/20