[libvirt] [PATCH 03/13] Introduce internal QEMU monitor APIs for drive + device hotadd
Daniel P. Berrange
berrange at redhat.com
Tue Feb 2 14:21:07 UTC 2010
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 :|
More information about the libvir-list
mailing list