Alon Levy <[email protected]> writes:
> Signed-off-by: Alon Levy <[email protected]>
> ---
> include/char/char.h | 12 ++++++++++++
> qemu-char.c | 7 +++++++
> 2 files changed, 19 insertions(+)
>
> diff --git a/include/char/char.h b/include/char/char.h
> index 0326b2a..0fdcaf9 100644
> --- a/include/char/char.h
> +++ b/include/char/char.h
> @@ -70,6 +70,7 @@ struct CharDriverState {
> void (*chr_set_echo)(struct CharDriverState *chr, bool echo);
> void (*chr_guest_open)(struct CharDriverState *chr);
> void (*chr_guest_close)(struct CharDriverState *chr);
> + void (*chr_post_load)(struct CharDriverState *chr, int
> connected);
The character device layer should *not* be messing around with notifying
migration state.
I thought we previously discussed this? Just implement a migration hook
in the spice code.
Regards,
Anthony Liguori
> void *opaque;
> int idle_tag;
> char *label;
> @@ -144,6 +145,17 @@ void qemu_chr_fe_open(struct CharDriverState *chr);
> void qemu_chr_fe_close(struct CharDriverState *chr);
>
> /**
> + * @qemu_chr_fe_post_load:
> + *
> + * Indicate to backend that a migration has just completed. Must be called
> when
> + * the vm is in the running state.
> + *
> + * @connected true if frontend is still connected after migration, false
> + * otherwise.
> + */
> +void qemu_chr_fe_post_load(struct CharDriverState *chr, int connected);
> +
> +/**
> * @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 4e011df..42c911f 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -3390,6 +3390,13 @@ void qemu_chr_fe_open(struct CharDriverState *chr)
> }
> }
>
> +void qemu_chr_fe_post_load(struct CharDriverState *chr, int connected)
> +{
> + if (chr->chr_post_load) {
> + chr->chr_post_load(chr, connected);
> + }
> +}
> +
> void qemu_chr_fe_close(struct CharDriverState *chr)
> {
> if (chr->chr_guest_close) {
> --
> 1.8.1.4