From 6b6723c3b508403309aa21c4fcbe515bd1edfd74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Wed, 27 Jul 2016 01:15:17 +0400 Subject: [PATCH] char: add chr_wait_connected callback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A function to wait on the backend to be connected, to be used in the following patches. Signed-off-by: Marc-André Lureau Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- 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 0ea9eacc406a..ee7e55468f8f 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; @@ -158,6 +159,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: * diff --git a/qemu-char.c b/qemu-char.c index 1274f50e00c4..6eba615818b7 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;