}
+int
+qemuMonitorSnapshotLoad(qemuMonitor *mon,
+ const char *jobname,
+ const char *snapshotname,
+ const char *vmstate_disk,
+ const char **disks)
+{
+ VIR_DEBUG("jobname='%s', snapshotname='%s', vmstate_disk='%s'",
+ jobname, snapshotname, vmstate_disk);
+
+ QEMU_CHECK_MONITOR(mon);
+
+ return qemuMonitorJSONSnapshotLoad(mon, jobname, snapshotname, vmstate_disk, disks);
+}
+
+
int
qemuMonitorSnapshotDelete(qemuMonitor *mon,
const char *jobname,
const char *vmstate_disk,
const char **disks);
+int
+qemuMonitorSnapshotLoad(qemuMonitor *mon,
+ const char *jobname,
+ const char *snapshotname,
+ const char *vmstate_disk,
+ const char **disks);
+
int
qemuMonitorSnapshotDelete(qemuMonitor *mon,
const char *jobname,
}
+int
+qemuMonitorJSONSnapshotLoad(qemuMonitor *mon,
+ const char *jobname,
+ const char *snapshotname,
+ const char *vmstate_disk,
+ const char **disks)
+{
+ g_autoptr(virJSONValue) cmd = NULL;
+ g_autoptr(virJSONValue) reply = NULL;
+ g_autoptr(virJSONValue) devices = virJSONValueNewArray();
+
+ for (; *disks; disks++) {
+ if (virJSONValueArrayAppendString(devices, *disks) < 0)
+ return -1;
+ }
+
+ if (!(cmd = qemuMonitorJSONMakeCommand("snapshot-load",
+ "s:job-id", jobname,
+ "s:tag", snapshotname,
+ "s:vmstate", vmstate_disk,
+ "a:devices", &devices,
+ NULL)))
+ return -1;
+
+ if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+ return -1;
+
+ return qemuMonitorJSONCheckError(cmd, reply);
+}
+
+
int
qemuMonitorJSONSnapshotDelete(qemuMonitor *mon,
const char *jobname,
const char *vmstate_disk,
const char **disks);
+int
+qemuMonitorJSONSnapshotLoad(qemuMonitor *mon,
+ const char *jobname,
+ const char *snapshotname,
+ const char *vmstate_disk,
+ const char **disks);
+
int
qemuMonitorJSONSnapshotDelete(qemuMonitor *mon,
const char *jobname,