mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
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
1 changed files with 13 additions and 3 deletions
16
vl.c
16
vl.c
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue