On 11/18/2013 02:25 PM, Marc-André Lureau wrote: > From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> The patch description is incomplete, or the patch should be split - this patch also implements qemu_chr_fe_event for spiceport. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > --- > 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 ad101d9..d23c8f1 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; > @@ -138,6 +139,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 e00f84c..418dc69 100644 > --- a/qemu-char.c > +++ b/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) > { > diff --git a/spice-qemu-char.c b/spice-qemu-char.c > index e074d9e..16439c5 100644 > --- a/spice-qemu-char.c > +++ b/spice-qemu-char.c > @@ -222,6 +222,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; > @@ -255,6 +264,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); > > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel