}
+int
+qemuMonitorTransactionBitmapMergeSourceAddBitmap(virJSONValuePtr sources,
+ const char *sourcenode,
+ const char *sourcebitmap)
+{
+ return qemuMonitorJSONTransactionBitmapMergeSourceAddBitmap(sources, sourcenode, sourcebitmap);
+}
+
+
int
qemuMonitorTransactionSnapshotLegacy(virJSONValuePtr actions,
const char *device,
const char *node,
const char *target,
virJSONValuePtr *sources);
+int
+qemuMonitorTransactionBitmapMergeSourceAddBitmap(virJSONValuePtr sources,
+ const char *sourcenode,
+ const char *sourcebitmap);
int
qemuMonitorTransactionSnapshotLegacy(virJSONValuePtr actions,
}
+int
+qemuMonitorJSONTransactionBitmapMergeSourceAddBitmap(virJSONValuePtr sources,
+ const char *sourcenode,
+ const char *sourcebitmap)
+{
+ g_autoptr(virJSONValue) sourceobj = NULL;
+
+ if (virJSONValueObjectCreate(&sourceobj,
+ "s:node", sourcenode,
+ "s:name", sourcebitmap,
+ NULL) < 0)
+ return -1;
+
+ if (virJSONValueArrayAppend(sources, sourceobj) < 0)
+ return -1;
+
+ sourceobj = NULL;
+ return 0;
+}
+
+
int
qemuMonitorJSONTransactionSnapshotLegacy(virJSONValuePtr actions,
const char *device,
const char *target,
virJSONValuePtr *sources);
+int
+qemuMonitorJSONTransactionBitmapMergeSourceAddBitmap(virJSONValuePtr sources,
+ const char *sourcenode,
+ const char *sourcebitmap);
+
int
qemuMonitorJSONTransactionSnapshotLegacy(virJSONValuePtr actions,
const char *device,
!(mergebitmaps = virJSONValueNewArray()))
return -1;
- if (virJSONValueArrayAppendString(mergebitmaps, "mergemap1") < 0 ||
- virJSONValueArrayAppendString(mergebitmaps, "mergemap2") < 0)
+ if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(mergebitmaps, "node1", "bitmap1") < 0 ||
+ qemuMonitorTransactionBitmapMergeSourceAddBitmap(mergebitmaps, "node2", "bitmap2") < 0)
return -1;
if (qemuMonitorTransactionBitmapAdd(actions, "node1", "bitmap1", true, true) < 0 ||