[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/21] qemu-char: convert mux backend to data-driven
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 12/21] qemu-char: convert mux backend to data-driven creation |
Date: |
Mon, 12 Oct 2015 10:03:15 +0200 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
qemu-char.c | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 3e48a47..8e3a79a 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -682,11 +682,20 @@ static GSource *mux_chr_add_watch(CharDriverState *s,
GIOCondition cond)
return d->drv->chr_add_watch(d->drv, cond);
}
-static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
+static CharDriverState *qemu_chr_open_mux(const char *id,
+ ChardevBackend *backend,
+ ChardevReturn *ret, Error **errp)
{
- CharDriverState *chr;
+ ChardevMux *mux = backend->mux;
+ CharDriverState *chr, *drv;
MuxDriver *d;
+ drv = qemu_chr_find(mux->chardev);
+ if (drv == NULL) {
+ error_setg(errp, "mux: base chardev %s not found", mux->chardev);
+ return NULL;
+ }
+
chr = qemu_chr_alloc();
d = g_new0(MuxDriver, 1);
@@ -4257,7 +4266,7 @@ ChardevReturn *qmp_chardev_add(const char *id,
ChardevBackend *backend,
Error **errp)
{
ChardevReturn *ret = g_new0(ChardevReturn, 1);
- CharDriverState *base, *chr = NULL;
+ CharDriverState *chr = NULL;
Error *local_err = NULL;
GSList *i;
CharDriver *cd;
@@ -4309,13 +4318,7 @@ ChardevReturn *qmp_chardev_add(const char *id,
ChardevBackend *backend,
abort();
break;
case CHARDEV_BACKEND_KIND_MUX:
- base = qemu_chr_find(backend->mux->chardev);
- if (base == NULL) {
- error_setg(&local_err, "mux: base chardev %s not found",
- backend->mux->chardev);
- break;
- }
- chr = qemu_chr_open_mux(base);
+ abort();
break;
case CHARDEV_BACKEND_KIND_MSMOUSE:
chr = qemu_chr_open_msmouse();
@@ -4441,7 +4444,7 @@ static void register_types(void)
register_char_driver("pipe", CHARDEV_BACKEND_KIND_PIPE,
qemu_chr_parse_pipe, qemu_chr_open_pipe);
register_char_driver("mux", CHARDEV_BACKEND_KIND_MUX, qemu_chr_parse_mux,
- NULL);
+ qemu_chr_open_mux);
/* Bug-compatibility: */
register_char_driver("memory", CHARDEV_BACKEND_KIND_MEMORY,
qemu_chr_parse_ringbuf, NULL);
--
2.5.0
- Re: [Qemu-devel] [PATCH 02/21] qemu-char: cleanup HAVE_CHARDEV_*, (continued)
- [Qemu-devel] [PATCH 03/21] qemu-char: add create to register_char_driver, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 05/21] qemu-char: convert serial backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 04/21] qemu-char: convert file backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 06/21] qemu-char: convert parallel backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 12/21] qemu-char: convert mux backend to data-driven creation,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 09/21] qemu-char: convert UDP backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 13/21] qemu-char: convert msmouse backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 15/21] qemu-char: convert testdev backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 16/21] qemu-char: convert stdio backend to data-driven creation, Paolo Bonzini, 2015/10/12
- [Qemu-devel] [PATCH 17/21] qemu-char: convert console backend to data-driven creation, Paolo Bonzini, 2015/10/12