From: Marc-André Lureau <marcandre.lur...@redhat.com> A function to wait on the backend to be connected, to be used in the following patches.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Signed-off-by: Michael S. Tsirkin <m...@redhat.com> --- include/sysemu/char.h | 8 ++++++++ qemu-char.c | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/include/sysemu/char.h b/include/sysemu/char.h index 0ea9eac..ee7e554 100644 --- a/include/sysemu/char.h +++ b/include/sysemu/char.h @@ -70,6 +70,7 @@ struct CharDriverState { int (*get_msgfds)(struct CharDriverState *s, int* fds, int num); int (*set_msgfds)(struct CharDriverState *s, int *fds, int num); int (*chr_add_client)(struct CharDriverState *chr, int fd); + int (*chr_wait_connected)(struct CharDriverState *chr, Error **errp); IOEventHandler *chr_event; IOCanReadHandler *chr_can_read; IOReadHandler *chr_read; @@ -159,6 +160,13 @@ void qemu_chr_disconnect(CharDriverState *chr); void qemu_chr_cleanup(void); /** + * @qemu_chr_wait_connected: + * + * Wait for characted backend to be connected. + */ +int qemu_chr_wait_connected(CharDriverState *chr, Error **errp); + +/** * @qemu_chr_new_noreplay: * * Create a new character backend from a URI. diff --git a/qemu-char.c b/qemu-char.c index 1274f50..6eba615 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3139,6 +3139,15 @@ static gboolean tcp_chr_accept(QIOChannel *channel, return TRUE; } +int qemu_chr_wait_connected(CharDriverState *chr, Error **errp) +{ + if (chr->chr_wait_connected) { + return chr->chr_wait_connected(chr, errp); + } + + return 0; +} + static void tcp_chr_close(CharDriverState *chr) { TCPCharDriver *s = chr->opaque; -- MST