Rather than generating the transaction contents in random places add a unified set of APIs to generate the contents for a 'transaction' for the dirty bitmap APIs. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/qemu/qemu_monitor.c | 48 ++++++++++++++++++++++++ src/qemu/qemu_monitor.h | 24 ++++++++++++ src/qemu/qemu_monitor_json.c | 71 ++++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor_json.h | 24 ++++++++++++ 4 files changed, 167 insertions(+) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index b6d2936872..b1499503d4 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -4491,3 +4491,51 @@ qemuMonitorGetJobInfo(qemuMonitorPtr mon, return qemuMonitorJSONGetJobInfo(mon, jobs, njobs); } + + +int +qemuMonitorTransactionBitmapAdd(virJSONValuePtr actions, + const char *node, + const char *name, + bool persistent, + bool disabled) +{ + return qemuMonitorJSONTransactionBitmapAdd(actions, node, name, persistent, disabled); +} + + +int +qemuMonitorTransactionBitmapRemove(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionBitmapRemove(actions, node, name); +} + + +int +qemuMonitorTransactionBitmapEnable(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionBitmapEnable(actions, node, name); +} + + +int +qemuMonitorTransactionBitmapDisable(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionBitmapDisable(actions, node, name); +} + + +int +qemuMonitorTransactionBitmapMerge(virJSONValuePtr actions, + const char *node, + const char *target, + virJSONValuePtr *sources) +{ + return qemuMonitorJSONTransactionBitmapMerge(actions, node, target, sources); +} diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 8fc11c955e..4f449f3515 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1337,3 +1337,27 @@ VIR_DEFINE_AUTOPTR_FUNC(qemuMonitorJobInfo, qemuMonitorJobInfoFree); int qemuMonitorGetJobInfo(qemuMonitorPtr mon, qemuMonitorJobInfoPtr **jobs, size_t *njobs); + +int +qemuMonitorTransactionBitmapAdd(virJSONValuePtr actions, + const char *node, + const char *name, + bool persistent, + bool disabled); +int +qemuMonitorTransactionBitmapRemove(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorTransactionBitmapEnable(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorTransactionBitmapDisable(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorTransactionBitmapMerge(virJSONValuePtr actions, + const char *node, + const char *target, + virJSONValuePtr *sources); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index cdfaf9785a..b1f29e4870 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -9029,6 +9029,77 @@ qemuMonitorJSONDeleteBitmap(qemuMonitorPtr mon, } +int +qemuMonitorJSONTransactionBitmapAdd(virJSONValuePtr actions, + const char *node, + const char *name, + bool persistent, + bool disabled) +{ + return qemuMonitorJSONTransactionAdd(actions, + "block-dirty-bitmap-add", + "s:node", node, + "s:name", name, + "b:persistent", persistent, + "b:disabled", disabled, + NULL); +} + + +int +qemuMonitorJSONTransactionBitmapRemove(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionAdd(actions, + "block-dirty-bitmap-remove", + "s:node", node, + "s:name", name, + NULL); +} + + +int +qemuMonitorJSONTransactionBitmapEnable(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionAdd(actions, + "block-dirty-bitmap-enable", + "s:node", node, + "s:name", name, + NULL); +} + + +int +qemuMonitorJSONTransactionBitmapDisable(virJSONValuePtr actions, + const char *node, + const char *name) +{ + return qemuMonitorJSONTransactionAdd(actions, + "block-dirty-bitmap-disable", + "s:node", node, + "s:name", name, + NULL); +} + + +int +qemuMonitorJSONTransactionBitmapMerge(virJSONValuePtr actions, + const char *node, + const char *target, + virJSONValuePtr *sources) +{ + return qemuMonitorJSONTransactionAdd(actions, + "block-dirty-bitmap-merge", + "s:node", node, + "s:target", target, + "a:bitmaps", sources, + NULL); +} + + static qemuMonitorJobInfoPtr qemuMonitorJSONGetJobInfoOne(virJSONValuePtr data) { diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index a608410703..d5408107be 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -632,3 +632,27 @@ int qemuMonitorJSONMergeBitmaps(qemuMonitorPtr mon, int qemuMonitorJSONDeleteBitmap(qemuMonitorPtr mon, const char *node, const char *bitmap); + +int +qemuMonitorJSONTransactionBitmapAdd(virJSONValuePtr actions, + const char *node, + const char *name, + bool persistent, + bool disabled); +int +qemuMonitorJSONTransactionBitmapRemove(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorJSONTransactionBitmapEnable(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorJSONTransactionBitmapDisable(virJSONValuePtr actions, + const char *node, + const char *name); +int +qemuMonitorJSONTransactionBitmapMerge(virJSONValuePtr actions, + const char *node, + const char *target, + virJSONValuePtr *sources); -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list