
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 :|