[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 20/23] Allow -serial chardev:<name>
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH v2 20/23] Allow -serial chardev:<name> |
Date: |
Thu, 10 Sep 2009 10:58:52 +0200 |
Lets put -chardev into use now. With this patch applied chardev:name is
accepted as chardev specification everywhere, i.e. now you can:
-chardev stdio,id=ttyS0
-serial chardev:ttyS0
which does the same as '-serial stdio".
Muxing can be done this way:
-chardev stdio,id=mux,mux=on
-serial chardev:mux
-monitor chardev:mux
You can mux more than two streams.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
qemu-char.c | 16 ++++++++++++++++
qemu-char.h | 1 +
qemu-config.c | 3 +++
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index ef73afe..ce2799e 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2416,6 +2416,10 @@ CharDriverState *qemu_chr_open(const char *label, const
char *filename, void (*i
CharDriverState *chr;
QemuOpts *opts;
+ if (strstart(filename, "chardev:", &p)) {
+ return qemu_chr_find(p);
+ }
+
opts = qemu_chr_parse_compat(label, filename);
if (!opts)
return NULL;
@@ -2445,3 +2449,15 @@ void qemu_chr_info(Monitor *mon)
monitor_printf(mon, "%s: filename=%s\n", chr->label, chr->filename);
}
}
+
+CharDriverState *qemu_chr_find(const char *name)
+{
+ CharDriverState *chr;
+
+ TAILQ_FOREACH(chr, &chardevs, next) {
+ if (strcmp(chr->label, name) != 0)
+ continue;
+ return chr;
+ }
+ return NULL;
+}
diff --git a/qemu-char.h b/qemu-char.h
index 9bff0c7..0bf8944 100644
--- a/qemu-char.h
+++ b/qemu-char.h
@@ -90,6 +90,7 @@ void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len);
int qemu_chr_get_msgfd(CharDriverState *s);
void qemu_chr_accept_input(CharDriverState *s);
void qemu_chr_info(Monitor *mon);
+CharDriverState *qemu_chr_find(const char *name);
extern int term_escape_char;
diff --git a/qemu-config.c b/qemu-config.c
index 8404f1b..f6f4cb4 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -130,6 +130,9 @@ QemuOptsList qemu_chardev_opts = {
},{
.name = "rows",
.type = QEMU_OPT_NUMBER,
+ },{
+ .name = "mux",
+ .type = QEMU_OPT_BOOL,
},
{ /* end if list */ }
},
--
1.6.2.5
- [Qemu-devel] [PATCH v2 11/23] convert pty chardev to QemuOpts., (continued)
- [Qemu-devel] [PATCH v2 11/23] convert pty chardev to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 10/23] convert unix+tcp chardevs to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 09/23] sockets: add inet_listen_opts, Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 15/23] convert windows console chardev to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 21/23] qdev: add parser for chardev properties, Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 17/23] convert vc chardev to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 19/23] convert udp chardev to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 07/23] sockets: add unix_*_opts for windows., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 22/23] monitor: fix muxing, Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 16/23] convert tty + parport chardevs to QemuOpts., Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 20/23] Allow -serial chardev:<name>,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH v2 23/23] move mux focus field from CharDriverState to MuxDriver, Gerd Hoffmann, 2009/09/10
- [Qemu-devel] [PATCH v2 18/23] convert mux chardev to QemuOpts., Gerd Hoffmann, 2009/09/10