[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 02/21] mux: simplfy muxes_realize_done
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v3 02/21] mux: simplfy muxes_realize_done |
Date: |
Thu, 16 Mar 2017 13:21:02 +0400 |
mux_chr_event() already send events to all backends, rename it,
export it, and use it from muxes_realize_done. This should help abstract
away mux implementation.
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
chardev/char-mux.h | 2 +-
chardev/char-mux.c | 11 ++++++++---
chardev/char.c | 9 ++-------
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/chardev/char-mux.h b/chardev/char-mux.h
index 9a2fffce91..3f41dfcfd2 100644
--- a/chardev/char-mux.h
+++ b/chardev/char-mux.h
@@ -58,6 +58,6 @@ typedef struct MuxChardev {
void mux_chr_set_handlers(Chardev *chr, GMainContext *context);
void mux_set_focus(Chardev *chr, int focus);
-void mux_chr_send_event(MuxChardev *d, int mux_nr, int event);
+void mux_chr_send_all_event(Chardev *chr, int event);
#endif /* CHAR_MUX_H */
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 5547a36a0a..37d42c65c6 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -114,7 +114,7 @@ static void mux_print_help(Chardev *chr)
}
}
-void mux_chr_send_event(MuxChardev *d, int mux_nr, int event)
+static void mux_chr_send_event(MuxChardev *d, int mux_nr, int event)
{
CharBackend *be = d->backends[mux_nr];
@@ -222,9 +222,9 @@ static void mux_chr_read(void *opaque, const uint8_t *buf,
int size)
bool muxes_realized;
-static void mux_chr_event(void *opaque, int event)
+void mux_chr_send_all_event(Chardev *chr, int event)
{
- MuxChardev *d = MUX_CHARDEV(opaque);
+ MuxChardev *d = MUX_CHARDEV(chr);
int i;
if (!muxes_realized) {
@@ -237,6 +237,11 @@ static void mux_chr_event(void *opaque, int event)
}
}
+static void mux_chr_event(void *opaque, int event)
+{
+ mux_chr_send_all_event(CHARDEV(opaque), event);
+}
+
static GSource *mux_chr_add_watch(Chardev *s, GIOCondition cond)
{
MuxChardev *d = MUX_CHARDEV(s);
diff --git a/chardev/char.c b/chardev/char.c
index aad639b620..674c097fbe 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -451,22 +451,17 @@ static void muxes_realize_done(Notifier *notifier, void
*unused)
{
Chardev *chr;
+ muxes_realized = true;
QTAILQ_FOREACH(chr, &chardevs, next) {
if (CHARDEV_IS_MUX(chr)) {
- MuxChardev *d = MUX_CHARDEV(chr);
- int i;
-
/* send OPENED to all already-attached FEs */
- for (i = 0; i < d->mux_cnt; i++) {
- mux_chr_send_event(d, i, CHR_EVENT_OPENED);
- }
+ mux_chr_send_all_event(CHARDEV(chr), CHR_EVENT_OPENED);
/* mark mux as OPENED so any new FEs will immediately receive
* OPENED event
*/
qemu_chr_be_event(chr, CHR_EVENT_OPENED);
}
}
- muxes_realized = true;
}
static Notifier muxes_realize_notify = {
--
2.12.0.191.gc5d8de91d
- [Qemu-devel] [PATCH v3 00/21] chardev clean-ups & tests (after 2.9), Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 01/21] char: remove qemu_chr_be_generic_open, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 02/21] mux: simplfy muxes_realize_done,
Marc-André Lureau <=
- [Qemu-devel] [PATCH v3 04/21] container: don't leak container reference, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 03/21] xen: use a better chardev type check, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 05/21] char: add a /chardevs container, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 06/21] vl: add todo note about root container cleanup, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 07/21] char: use /chardevs container instead of chardevs list, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 08/21] char: remove qemu_chardev_add, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 09/21] char: remove chardevs list, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 10/21] char: useless NULL check, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 12/21] char-socket: update local address after listen, Marc-André Lureau, 2017/03/16
- [Qemu-devel] [PATCH v3 11/21] char-socket: introduce update_disconnected_filename(), Marc-André Lureau, 2017/03/16