[Spice-devel] [Qemu-devel] [PATCH 05/21] char: add qemu_chr_fe_event()

Alon Levy alevy at redhat.com
Mon Nov 18 04:36:52 PST 2013


On 11/18/2013 02:25 PM, Marc-André Lureau wrote:
> From: Marc-André Lureau <marcandre.lureau at redhat.com>

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 at redhat.com>
> ---
>  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);
>  
> 



More information about the Spice-devel mailing list