[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/10] hbitmap: move hbitmap_iter_next_word to hbitmap.c
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v2 02/10] hbitmap: move hbitmap_iter_next_word to hbitmap.c |
Date: |
Tue, 22 Oct 2019 15:58:31 +0300 |
The function is definitely internal (it's not used by third party and
it has complicated interface). Move it to .c file.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
include/qemu/hbitmap.h | 30 ------------------------------
util/hbitmap.c | 29 +++++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 30 deletions(-)
diff --git a/include/qemu/hbitmap.h b/include/qemu/hbitmap.h
index 1bf944ca3d..ab227b117f 100644
--- a/include/qemu/hbitmap.h
+++ b/include/qemu/hbitmap.h
@@ -362,34 +362,4 @@ void hbitmap_free_meta(HBitmap *hb);
*/
int64_t hbitmap_iter_next(HBitmapIter *hbi);
-/**
- * hbitmap_iter_next_word:
- * @hbi: HBitmapIter to operate on.
- * @p_cur: Location where to store the next non-zero word.
- *
- * Return the index of the next nonzero word that is set in @hbi's
- * associated HBitmap, and set *p_cur to the content of that word
- * (bits before the index that was passed to hbitmap_iter_init are
- * trimmed on the first call). Return -1, and set *p_cur to zero,
- * if all remaining words are zero.
- */
-static inline size_t hbitmap_iter_next_word(HBitmapIter *hbi, unsigned long
*p_cur)
-{
- unsigned long cur = hbi->cur[HBITMAP_LEVELS - 1];
-
- if (cur == 0) {
- cur = hbitmap_iter_skip_words(hbi);
- if (cur == 0) {
- *p_cur = 0;
- return -1;
- }
- }
-
- /* The next call will resume work from the next word. */
- hbi->cur[HBITMAP_LEVELS - 1] = 0;
- *p_cur = cur;
- return hbi->pos;
-}
-
-
#endif
diff --git a/util/hbitmap.c b/util/hbitmap.c
index 0a0e0f2b89..dd3ab345d7 100644
--- a/util/hbitmap.c
+++ b/util/hbitmap.c
@@ -298,6 +298,35 @@ uint64_t hbitmap_count(const HBitmap *hb)
return hb->count << hb->granularity;
}
+/**
+ * hbitmap_iter_next_word:
+ * @hbi: HBitmapIter to operate on.
+ * @p_cur: Location where to store the next non-zero word.
+ *
+ * Return the index of the next nonzero word that is set in @hbi's
+ * associated HBitmap, and set *p_cur to the content of that word
+ * (bits before the index that was passed to hbitmap_iter_init are
+ * trimmed on the first call). Return -1, and set *p_cur to zero,
+ * if all remaining words are zero.
+ */
+static size_t hbitmap_iter_next_word(HBitmapIter *hbi, unsigned long *p_cur)
+{
+ unsigned long cur = hbi->cur[HBITMAP_LEVELS - 1];
+
+ if (cur == 0) {
+ cur = hbitmap_iter_skip_words(hbi);
+ if (cur == 0) {
+ *p_cur = 0;
+ return -1;
+ }
+ }
+
+ /* The next call will resume work from the next word. */
+ hbi->cur[HBITMAP_LEVELS - 1] = 0;
+ *p_cur = cur;
+ return hbi->pos;
+}
+
/* Count the number of set bits between start and end, not accounting for
* the granularity. Also an example of how to use hbitmap_iter_next_word.
*/
--
2.21.0
- [PATCH v2 00/10] Further bitmaps improvements, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 03/10] hbitmap: unpublish hbitmap_iter_skip_words, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 02/10] hbitmap: move hbitmap_iter_next_word to hbitmap.c,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v2 01/10] hbitmap: assert that we don't create bitmap larger than INT64_MAX, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 10/10] block/qcow2-bitmap: use bdrv_dirty_bitmap_next_dirty, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 04/10] hbitmap: drop meta bitmaps as they are unused, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 08/10] nbd/server: introduce NBDExtentArray, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 06/10] block/dirty-bitmap: add _next_dirty API, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 07/10] block/dirty-bitmap: improve _next_dirty_area API, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 05/10] block/dirty-bitmap: switch _next_dirty_area and _next_zero to int64_t, Vladimir Sementsov-Ogievskiy, 2019/10/22
- [PATCH v2 09/10] nbd/server: use bdrv_dirty_bitmap_next_dirty_area, Vladimir Sementsov-Ogievskiy, 2019/10/22