mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 06:43:53 -06:00
qemu-option: move standard option definitions out of qemu-config.c
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
63fb259083
commit
4d4545743f
15 changed files with 700 additions and 700 deletions
681
qemu-config.c
681
qemu-config.c
|
@ -5,667 +5,7 @@
|
|||
#include "hw/qdev.h"
|
||||
#include "qapi/error.h"
|
||||
|
||||
static QemuOptsList qemu_drive_opts = {
|
||||
.name = "drive",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_drive_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "bus",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "bus number",
|
||||
},{
|
||||
.name = "unit",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "unit number (i.e. lun for scsi)",
|
||||
},{
|
||||
.name = "if",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
|
||||
},{
|
||||
.name = "index",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "index number",
|
||||
},{
|
||||
.name = "cyls",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "number of cylinders (ide disk geometry)",
|
||||
},{
|
||||
.name = "heads",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "number of heads (ide disk geometry)",
|
||||
},{
|
||||
.name = "secs",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "number of sectors (ide disk geometry)",
|
||||
},{
|
||||
.name = "trans",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "chs translation (auto, lba. none)",
|
||||
},{
|
||||
.name = "media",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "media type (disk, cdrom)",
|
||||
},{
|
||||
.name = "snapshot",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "enable/disable snapshot mode",
|
||||
},{
|
||||
.name = "file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "disk image",
|
||||
},{
|
||||
.name = "cache",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "host cache usage (none, writeback, writethrough, "
|
||||
"directsync, unsafe)",
|
||||
},{
|
||||
.name = "aio",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "host AIO implementation (threads, native)",
|
||||
},{
|
||||
.name = "format",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "disk format (raw, qcow2, ...)",
|
||||
},{
|
||||
.name = "serial",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "disk serial number",
|
||||
},{
|
||||
.name = "rerror",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "read error action",
|
||||
},{
|
||||
.name = "werror",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "write error action",
|
||||
},{
|
||||
.name = "addr",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "pci address (virtio only)",
|
||||
},{
|
||||
.name = "readonly",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "open drive file as read-only",
|
||||
},{
|
||||
.name = "iops",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit total I/O operations per second",
|
||||
},{
|
||||
.name = "iops_rd",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit read operations per second",
|
||||
},{
|
||||
.name = "iops_wr",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit write operations per second",
|
||||
},{
|
||||
.name = "bps",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit total bytes per second",
|
||||
},{
|
||||
.name = "bps_rd",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit read bytes per second",
|
||||
},{
|
||||
.name = "bps_wr",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "limit write bytes per second",
|
||||
},{
|
||||
.name = "copy-on-read",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "copy read data from backing file into image file",
|
||||
},{
|
||||
.name = "boot",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "(deprecated, ignored)",
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_iscsi_opts = {
|
||||
.name = "iscsi",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "user",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "username for CHAP authentication to target",
|
||||
},{
|
||||
.name = "password",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "password for CHAP authentication to target",
|
||||
},{
|
||||
.name = "header-digest",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "HeaderDigest setting. "
|
||||
"{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
|
||||
},{
|
||||
.name = "initiator-name",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Initiator iqn name to use when connecting",
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_chardev_opts = {
|
||||
.name = "chardev",
|
||||
.implied_opt_name = "backend",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_chardev_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "backend",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "path",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "host",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "port",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "localaddr",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "localport",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "to",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "ipv4",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "ipv6",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "wait",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "server",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "delay",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "telnet",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "width",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "height",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "cols",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "rows",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "mux",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "signal",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "name",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "debug",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_fsdev_opts = {
|
||||
.name = "fsdev",
|
||||
.implied_opt_name = "fsdriver",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_fsdev_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "fsdriver",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "path",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "security_model",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "writeout",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "readonly",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
|
||||
}, {
|
||||
.name = "socket",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "sock_fd",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},
|
||||
|
||||
{ /*End of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_virtfs_opts = {
|
||||
.name = "virtfs",
|
||||
.implied_opt_name = "fsdriver",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_virtfs_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "fsdriver",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "path",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "mount_tag",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "security_model",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "writeout",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "readonly",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
}, {
|
||||
.name = "socket",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "sock_fd",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},
|
||||
|
||||
{ /*End of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_device_opts = {
|
||||
.name = "device",
|
||||
.implied_opt_name = "driver",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_device_opts.head),
|
||||
.desc = {
|
||||
/*
|
||||
* no elements => accept any
|
||||
* sanity checking will happen later
|
||||
* when setting device properties
|
||||
*/
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_netdev_opts = {
|
||||
.name = "netdev",
|
||||
.implied_opt_name = "type",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_netdev_opts.head),
|
||||
.desc = {
|
||||
/*
|
||||
* no elements => accept any params
|
||||
* validation will happen later
|
||||
*/
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_net_opts = {
|
||||
.name = "net",
|
||||
.implied_opt_name = "type",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_net_opts.head),
|
||||
.desc = {
|
||||
/*
|
||||
* no elements => accept any params
|
||||
* validation will happen later
|
||||
*/
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_rtc_opts = {
|
||||
.name = "rtc",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_rtc_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "base",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "clock",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "driftfix",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_global_opts = {
|
||||
.name = "global",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_global_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "driver",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "property",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "value",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_sandbox_opts = {
|
||||
.name = "sandbox",
|
||||
.implied_opt_name = "enable",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_sandbox_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "enable",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_mon_opts = {
|
||||
.name = "mon",
|
||||
.implied_opt_name = "chardev",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_mon_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "mode",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "chardev",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "default",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "pretty",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_trace_opts = {
|
||||
.name = "trace",
|
||||
.implied_opt_name = "trace",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "events",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_spice_opts = {
|
||||
.name = "spice",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_spice_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "port",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "tls-port",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
},{
|
||||
.name = "addr",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "ipv4",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "ipv6",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "password",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "disable-ticketing",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "disable-copy-paste",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "sasl",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "x509-dir",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "x509-key-file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "x509-key-password",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "x509-cert-file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "x509-cacert-file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "x509-dh-key-file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "tls-ciphers",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "tls-channel",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "plaintext-channel",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "image-compression",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "jpeg-wan-compression",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "zlib-glz-wan-compression",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "streaming-video",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "agent-mouse",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},{
|
||||
.name = "playback-compression",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
}, {
|
||||
.name = "seamless-migration",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_option_rom_opts = {
|
||||
.name = "option-rom",
|
||||
.implied_opt_name = "romfile",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_option_rom_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "bootindex",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
}, {
|
||||
.name = "romfile",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_machine_opts = {
|
||||
.name = "machine",
|
||||
.implied_opt_name = "type",
|
||||
.merge_lists = true,
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_machine_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "type",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "emulated machine"
|
||||
}, {
|
||||
.name = "accel",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "accelerator list",
|
||||
}, {
|
||||
.name = "kernel_irqchip",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "use KVM in-kernel irqchip",
|
||||
}, {
|
||||
.name = "kvm_shadow_mem",
|
||||
.type = QEMU_OPT_SIZE,
|
||||
.help = "KVM shadow MMU size",
|
||||
}, {
|
||||
.name = "kernel",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Linux kernel image file",
|
||||
}, {
|
||||
.name = "initrd",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Linux initial ramdisk file",
|
||||
}, {
|
||||
.name = "append",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Linux kernel command line",
|
||||
}, {
|
||||
.name = "dtb",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Linux kernel device tree file",
|
||||
}, {
|
||||
.name = "dumpdtb",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Dump current dtb to a file and quit",
|
||||
}, {
|
||||
.name = "phandle_start",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "The first phandle ID we may generate dynamically",
|
||||
}, {
|
||||
.name = "dt_compatible",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Overrides the \"compatible\" property of the dt root node",
|
||||
}, {
|
||||
.name = "dump-guest-core",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "Include guest memory in a core dump",
|
||||
}, {
|
||||
.name = "mem-merge",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "enable/disable memory merge support",
|
||||
},{
|
||||
.name = "usb",
|
||||
.type = QEMU_OPT_BOOL,
|
||||
.help = "Set on/off to enable/disable usb",
|
||||
}, {
|
||||
.name = "nvram",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "Drive backing persistent NVRAM",
|
||||
},
|
||||
{ /* End of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
QemuOptsList qemu_boot_opts = {
|
||||
.name = "boot-opts",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_boot_opts.head),
|
||||
.desc = {
|
||||
/* the three names below are not used now */
|
||||
{
|
||||
.name = "order",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "once",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "menu",
|
||||
.type = QEMU_OPT_STRING,
|
||||
/* following are really used */
|
||||
}, {
|
||||
.name = "splash",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "splash-time",
|
||||
.type = QEMU_OPT_STRING,
|
||||
}, {
|
||||
.name = "reboot-timeout",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /*End of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_add_fd_opts = {
|
||||
.name = "add-fd",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_add_fd_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "fd",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "file descriptor of which a duplicate is added to fd set",
|
||||
},{
|
||||
.name = "set",
|
||||
.type = QEMU_OPT_NUMBER,
|
||||
.help = "ID of the fd set to add fd to",
|
||||
},{
|
||||
.name = "opaque",
|
||||
.type = QEMU_OPT_STRING,
|
||||
.help = "free-form string used to describe fd",
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_object_opts = {
|
||||
.name = "object",
|
||||
.implied_opt_name = "qom-type",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_object_opts.head),
|
||||
.desc = {
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList *vm_config_groups[32] = {
|
||||
&qemu_drive_opts,
|
||||
&qemu_chardev_opts,
|
||||
&qemu_device_opts,
|
||||
&qemu_netdev_opts,
|
||||
&qemu_net_opts,
|
||||
&qemu_rtc_opts,
|
||||
&qemu_global_opts,
|
||||
&qemu_mon_opts,
|
||||
&qemu_trace_opts,
|
||||
&qemu_option_rom_opts,
|
||||
&qemu_machine_opts,
|
||||
&qemu_boot_opts,
|
||||
&qemu_iscsi_opts,
|
||||
&qemu_sandbox_opts,
|
||||
&qemu_add_fd_opts,
|
||||
&qemu_object_opts,
|
||||
NULL,
|
||||
};
|
||||
static QemuOptsList *vm_config_groups[32];
|
||||
|
||||
static QemuOptsList *find_list(QemuOptsList **lists, const char *group,
|
||||
Error **errp)
|
||||
|
@ -748,25 +88,6 @@ int qemu_set_option(const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int qemu_global_option(const char *str)
|
||||
{
|
||||
char driver[64], property[64];
|
||||
QemuOpts *opts;
|
||||
int rc, offset;
|
||||
|
||||
rc = sscanf(str, "%63[^.].%63[^=]%n", driver, property, &offset);
|
||||
if (rc < 2 || str[offset] != '=') {
|
||||
error_report("can't parse: \"%s\"", str);
|
||||
return -1;
|
||||
}
|
||||
|
||||
opts = qemu_opts_create_nofail(&qemu_global_opts);
|
||||
qemu_opt_set(opts, "driver", driver);
|
||||
qemu_opt_set(opts, "property", property);
|
||||
qemu_opt_set(opts, "value", str+offset+1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct ConfigWriteData {
|
||||
QemuOptsList *list;
|
||||
FILE *fp;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue