summaryrefslogtreecommitdiffstats
path: root/include/chardev/char.h
diff options
context:
space:
mode:
authorPeter Xu2018-03-06 06:33:16 +0100
committerPaolo Bonzini2018-03-12 16:12:46 +0100
commitc7278b43550f501a6d62388eb7a7e68a5b43c044 (patch)
treebbc85a032edad84d9a8d5a698a1398523b514a0f /include/chardev/char.h
parentchardev: allow telnet gsource to switch gcontext (diff)
downloadqemu-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.h2
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,