aboutsummaryrefslogtreecommitdiff
path: root/include/qemu
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2018-10-29 16:23:15 -0400
committerJohn Snow <jsnow@redhat.com>2018-10-29 16:23:15 -0400
commitfa000f2f9fd96a75a0a33d50ead247fce11da92a (patch)
tree14d48c16ce0573c7bfa160c9535df1db060ce22a /include/qemu
parent56bd662497259400b7c9f155aaebaddde4450028 (diff)
downloadqemu-fa000f2f9fd96a75a0a33d50ead247fce11da92a.zip
qemu-fa000f2f9fd96a75a0a33d50ead247fce11da92a.tar.gz
qemu-fa000f2f9fd96a75a0a33d50ead247fce11da92a.tar.bz2
dirty-bitmap: make it possible to restore bitmap after merge
Add backup parameter to bdrv_merge_dirty_bitmap() to be used then with bdrv_restore_dirty_bitmap() if it needed to restore the bitmap after merge operation. This is needed to implement bitmap merge transaction action in further commit. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'include/qemu')
-rw-r--r--include/qemu/hbitmap.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/include/qemu/hbitmap.h b/include/qemu/hbitmap.h
index ddca52c..a7cb780 100644
--- a/include/qemu/hbitmap.h
+++ b/include/qemu/hbitmap.h
@@ -73,16 +73,23 @@ void hbitmap_truncate(HBitmap *hb, uint64_t size);
/**
* hbitmap_merge:
- * @a: The bitmap to store the result in.
- * @b: The bitmap to merge into @a.
- * @return true if the merge was successful,
- * false if it was not attempted.
- *
- * Merge two bitmaps together.
- * A := A (BITOR) B.
- * B is left unmodified.
+ *
+ * Store result of merging @a and @b into @result.
+ * @result is allowed to be equal to @a or @b.
+ *
+ * Return true if the merge was successful,
+ * false if it was not attempted.
+ */
+bool hbitmap_merge(const HBitmap *a, const HBitmap *b, HBitmap *result);
+
+/**
+ * hbitmap_can_merge:
+ *
+ * hbitmap_can_merge(a, b) && hbitmap_can_merge(a, result) is sufficient and
+ * necessary for hbitmap_merge will not fail.
+ *
*/
-bool hbitmap_merge(HBitmap *a, const HBitmap *b);
+bool hbitmap_can_merge(const HBitmap *a, const HBitmap *b);
/**
* hbitmap_empty: