switch chardev to QemuOpts: infrastructure, null device

start switching chardevs to QemuOpts.  This patch adds the
infrastructure and converts the null device.

The patch brings two new functions:

qemu_chr_open_opts()
	same as qemu_chr_open(), but uses QemuOpts instead of a
	option char string.

qemu_chr_parse_compat()
	accepts a traditional chardev option string, returns the
	corresponding QemuOpts instance, to handle backward
	compatibility.

The patch also adds a new -chardev switch which can be used to create
named+unconnected chardevs, like this:

	-chardev null,id=test

This uses the new qemu_chr_open_opts.  Thus with this patch alone only
the null device works.  The other devices will follow ...

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-09-10 10:58:35 +02:00 committed by Anthony Liguori
parent 9d868d4517
commit 191bc01bc9
6 changed files with 93 additions and 4 deletions

View file

@ -75,6 +75,14 @@ QemuOptsList qemu_drive_opts = {
},
};
QemuOptsList qemu_chardev_opts = {
.name = "chardev",
.head = TAILQ_HEAD_INITIALIZER(qemu_chardev_opts.head),
.desc = {
{ /* end if list */ }
},
};
QemuOptsList qemu_device_opts = {
.name = "device",
.head = TAILQ_HEAD_INITIALIZER(qemu_device_opts.head),
@ -90,6 +98,7 @@ QemuOptsList qemu_device_opts = {
static QemuOptsList *lists[] = {
&qemu_drive_opts,
&qemu_chardev_opts,
&qemu_device_opts,
NULL,
};