Skip to content

Commit

Permalink
char: start converting mux driver to use CharBackend
Browse files Browse the repository at this point in the history
Start using qemu_chr_fe* CharBackend functions:
initialize a CharBackend and use qemu_chr_fe_set_handlers().

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20161022095318.17775-11-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
elmarco authored and bonzini committed Oct 24, 2016
1 parent 94a40fc commit ecb672d
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions qemu-char.c
Expand Up @@ -502,9 +502,7 @@ void qemu_chr_add_handlers_full(CharDriverState *s,

if (s->is_mux) {
tag = mux_chr_new_handler_tag(s, &error_abort);
if (tag == 0) {
mux_chr_set_handlers(s, context);
}
mux_chr_set_handlers(s, context);
}

qemu_chr_set_handlers(s, fd_can_read, fd_read,
Expand Down Expand Up @@ -557,6 +555,7 @@ struct MuxDriver {
IOEventHandler *chr_event[MAX_MUX];
void *ext_opaque[MAX_MUX];
CharDriverState *drv;
CharBackend chr;
int focus;
int mux_cnt;
int term_got_escape;
Expand Down Expand Up @@ -847,12 +846,12 @@ static void mux_chr_set_handlers(CharDriverState *chr, GMainContext *context)
MuxDriver *d = chr->opaque;

/* Fix up the real driver with mux routines */
qemu_chr_add_handlers_full(d->drv,
mux_chr_can_read,
mux_chr_read,
mux_chr_event,
chr,
context);
qemu_chr_fe_set_handlers(&d->chr,
mux_chr_can_read,
mux_chr_read,
mux_chr_event,
chr,
context);
}

static void mux_set_focus(MuxDriver *d, int focus)
Expand Down Expand Up @@ -906,6 +905,10 @@ static CharDriverState *qemu_chr_open_mux(const char *id,
*/
chr->explicit_be_open = muxes_realized ? 0 : 1;
chr->is_mux = 1;
if (!qemu_chr_fe_init(&d->chr, d->drv, errp)) {
qemu_chr_free(chr);
return NULL;
}

return chr;
}
Expand Down Expand Up @@ -4231,9 +4234,6 @@ void qemu_chr_disconnect(CharDriverState *chr)

static void qemu_chr_free_common(CharDriverState *chr)
{
if (chr->be) {
chr->be->chr = NULL;
}
g_free(chr->filename);
g_free(chr->label);
if (chr->logfd != -1) {
Expand Down

0 comments on commit ecb672d

Please sign in to comment.