On Thu, 2009-09-24 at 16:00 +0100, Daniel P. Berrange wrote: > * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c: Add new APIs > qemuMonitorSaveVirtualMemory() and qemuMonitorSavePhysicalMemory() > * src/qemu/qemu_driver.c: Use the new qemuMonitorSaveVirtualMemory() > and qemuMonitorSavePhysicalMemory() APIs > --- > src/qemu/qemu_driver.c | 21 ++++----------- > src/qemu/qemu_monitor_text.c | 54 ++++++++++++++++++++++++++++++++++++++++++ > src/qemu/qemu_monitor_text.h | 10 +++++++ > 3 files changed, 70 insertions(+), 15 deletions(-) > ... > diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c > index 8be8047..a5f43c5 100644 > --- a/src/qemu/qemu_monitor_text.c > +++ b/src/qemu/qemu_monitor_text.c > @@ -810,3 +810,57 @@ cleanup: > return ret; > } > > +static int qemuMonitorSaveMemory(const virDomainObjPtr vm, > + const char *cmdtype, > + unsigned long long offset, > + size_t length, > + const char *path) > +{ > + char *cmd = NULL; > + char *reply = NULL; > + char *safepath = NULL; > + int ret = -1; > + > + if (!(safepath = qemudEscapeMonitorArg(path))) { > + virReportOOMError(NULL); > + goto cleanup; > + } That's new, would have made sense as a separate patch > + > + if (virAsprintf(&cmd, "%s %llu %zi \"%s\"", cmdtype, offset, length, safepath) < 0) { > + virReportOOMError(NULL); > + goto cleanup; > + } > + > + if (qemudMonitorCommand(vm, cmd, &reply) < 0) { > + qemudReportError(NULL, NULL, NULL, VIR_ERR_OPERATION_FAILED, > + _("could save memory region to '%s'"), path); > + goto cleanup; > + } > + > + /* XXX what is printed on failure ? */ No debug, but I assume that's fixed in 26/27 ACK Cheers, Mark. -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list