On Tue, Feb 02, 2010 at 03:15:18PM +0100, Daniel Veillard wrote:
On Mon, Feb 01, 2010 at 06:39:32PM +0000, Daniel P. Berrange wrote:
> The way QEMU is started has been changed to use '-device' and
> the new style '-drive' syntax. This needs to be mirrored in
> the hotplug code, requiring addition of two new APIs.
>
> * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c: Define APIs
> qemuMonitorAddDevice() and qemuMonitorAddDrive()
> * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
> src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
> Implement the new monitor APIs
> ---
[...]
> +int qemuMonitorJSONAddDrive(qemuMonitorPtr mon,
> + const char *drivestr)
> +{
> + int ret;
> + virJSONValuePtr cmd;
> + virJSONValuePtr reply = NULL;
> +
> + cmd = qemuMonitorJSONMakeCommand("drive_add",
> + "s:pci_addr", "dummy",
> + "s:opts", drivestr,
> + NULL);
[...]
> +int qemuMonitorTextAddDrive(qemuMonitorPtr mon,
> + const char *drivestr)
> +{
> + char *cmd = NULL;
> + char *reply = NULL;
> + int ret = -1;
> + char *safe_str;
> +
> + safe_str = qemuMonitorEscapeArg(drivestr);
> + if (!safe_str) {
> + virReportOOMError(NULL);
> + return -1;
> + }
> +
> + ret = virAsprintf(&cmd, "drive_add dummy %s", safe_str);
Like Matthias I'm wondering, it seems to be allowed for network and
drive naming, but still a bit surprizing
This is a really bizarre bit of QEMU :-) Normally you would put a
PCI address in that part of the command. In this cae though, we're
not adding a PCI device, but rather adding a disk on a drive
controller, therefore there is no relevant PCI address & we put
in the placeholder 'dummy'.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|