[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 29/50] char: start converting mux driver to use CharB
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 29/50] char: start converting mux driver to use CharBackend |
Date: |
Mon, 24 Oct 2016 15:47:14 +0200 |
From: Marc-André Lureau <address@hidden>
Start using qemu_chr_fe* CharBackend functions:
initialize a CharBackend and use qemu_chr_fe_set_handlers().
Signed-off-by: Marc-André Lureau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
qemu-char.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 9c27371..9eefa7f 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -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,
@@ -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;
@@ -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)
@@ -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;
}
@@ -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) {
--
1.8.3.1
- [Qemu-devel] [PULL 19/50] char.h: misc doc fix, (continued)
- [Qemu-devel] [PULL 19/50] char.h: misc doc fix, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 21/50] char: remove use-after-free on win-stdio, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 18/50] char: serial: check divider value against baud base, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 22/50] ringbuf: fix chr_write return value, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 23/50] sun4uv: fix serial initialization regression, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 28/50] char: introduce CharBackend, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 24/50] malta: replace chr init by CHR_EVENT_OPENED handler, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 25/50] char: remove init callback, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 26/50] xilinx: fix buffer overflow on realize, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 27/50] mux: split mux_chr_update_read_handler(), Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 29/50] char: start converting mux driver to use CharBackend,
Paolo Bonzini <=
- [Qemu-devel] [PULL 33/50] colo: claim in find_and_check_chardev, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 32/50] char: rename some frontend functions, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 35/50] char: fold qemu_chr_set_handlers in qemu_chr_fe_set_handlers, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 36/50] vhost-user: only initialize queue 0 CharBackend, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 30/50] char: replace PROP_CHR with CharBackend, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 31/50] char: remaining switch to CharBackend in frontend, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 37/50] char: replace qemu_chr_claim/release with qemu_chr_fe_init/deinit, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 41/50] char: rename chr_close/chr_free, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 43/50] char: move fe_open in CharBackend, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 39/50] tests: start chardev unit tests, Paolo Bonzini, 2016/10/24