Skip to content

Commit

Permalink
char: add chr_wait_connected callback
Browse files Browse the repository at this point in the history
A function to wait on the backend to be connected, to be used in the
following patches.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
elmarco authored and mstsirkin committed Jul 28, 2016
1 parent 8695de0 commit 6b6723c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
8 changes: 8 additions & 0 deletions include/sysemu/char.h
Expand Up @@ -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;
Expand Down Expand Up @@ -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:
*
Expand Down
9 changes: 9 additions & 0 deletions qemu-char.c
Expand Up @@ -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;
Expand Down

0 comments on commit 6b6723c

Please sign in to comment.