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:
parent
07a8de3566
commit
1a688d3bbc
16
vl.c
16
vl.c
@ -4586,6 +4586,16 @@ static int device_init_func(QemuOpts *opts, void *opaque)
|
|||||||
return 0;
|
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 {
|
struct device_config {
|
||||||
enum {
|
enum {
|
||||||
DEV_USB, /* -usbdevice */
|
DEV_USB, /* -usbdevice */
|
||||||
@ -5180,9 +5190,6 @@ int main(int argc, char **argv, char **envp)
|
|||||||
fprintf(stderr, "parse error: %s\n", optarg);
|
fprintf(stderr, "parse error: %s\n", optarg);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (qemu_chr_open_opts(opts, NULL) == NULL) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case QEMU_OPTION_serial:
|
case QEMU_OPTION_serial:
|
||||||
if (serial_device_index >= MAX_SERIAL_PORTS) {
|
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
|
#ifndef _WIN32
|
||||||
if (daemonize) {
|
if (daemonize) {
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
|
Loading…
Reference in New Issue
Block a user