diff options
author | Peter Xu | 2018-03-06 06:33:16 +0100 |
---|---|---|
committer | Paolo Bonzini | 2018-03-12 16:12:46 +0100 |
commit | c7278b43550f501a6d62388eb7a7e68a5b43c044 (patch) | |
tree | bbc85a032edad84d9a8d5a698a1398523b514a0f /include/chardev/char.h | |
parent | chardev: allow telnet gsource to switch gcontext (diff) | |
download | qemu-c7278b43550f501a6d62388eb7a7e68a5b43c044.tar.gz qemu-c7278b43550f501a6d62388eb7a7e68a5b43c044.tar.xz qemu-c7278b43550f501a6d62388eb7a7e68a5b43c044.zip |
chardev: introduce chr_machine_done hook
Introduce ChardevClass.chr_machine_done() hook so that chardevs can run
customized procedures after machine init.
There was an existing mux user already that did similar thing but used a
raw machine done notifier. Generalize it into a framework, and let the
mux chardevs provide such a class-specific hook to achieve the same
thing. Then we can move the mux related code to the char-mux.c file.
Since at it, replace the mux_realized variable with the global
machine_init_done varible.
This notifier framework will be further leverged by other type of
chardevs soon.
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20180306053320.15401-6-peterx@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/chardev/char.h')
-rw-r--r-- | include/chardev/char.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/chardev/char.h b/include/chardev/char.h index ebf1e0ba04..04de45795e 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -248,6 +248,8 @@ typedef struct ChardevClass { void (*chr_set_echo)(Chardev *chr, bool echo); void (*chr_set_fe_open)(Chardev *chr, int fe_open); void (*chr_be_event)(Chardev *s, int event); + /* Return 0 if succeeded, 1 if failed */ + int (*chr_machine_done)(Chardev *chr); } ChardevClass; Chardev *qemu_chardev_new(const char *id, const char *typename, |