chardev: make chardevs specified in config file work.

The patch decuples the -chardev switch and the actual chardev
initialization.  Without this patch qemu ignores chardev entries
coming via -readconfig.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2009-12-08 13:11:36 +01:00 committed by Anthony Liguori
parent 07a8de3566
commit 1a688d3bbc

16
vl.c
View file

@ -4586,6 +4586,16 @@ static int device_init_func(QemuOpts *opts, void *opaque)
return 0;
}
static int chardev_init_func(QemuOpts *opts, void *opaque)
{
CharDriverState *chr;
chr = qemu_chr_open_opts(opts, NULL);
if (!chr)
return -1;
return 0;
}
struct device_config {
enum {
DEV_USB, /* -usbdevice */
@ -5180,9 +5190,6 @@ int main(int argc, char **argv, char **envp)
fprintf(stderr, "parse error: %s\n", optarg);
exit(1);
}
if (qemu_chr_open_opts(opts, NULL) == NULL) {
exit(1);
}
break;
case QEMU_OPTION_serial:
if (serial_device_index >= MAX_SERIAL_PORTS) {
@ -5501,6 +5508,9 @@ int main(int argc, char **argv, char **envp)
}
}
if (qemu_opts_foreach(&qemu_chardev_opts, chardev_init_func, NULL, 1) != 0)
exit(1);
#ifndef _WIN32
if (daemonize) {
pid_t pid;