[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 qemu 4/6] bitmap: Add a new bitmap_move function
From: |
Liang Li |
Subject: |
[Qemu-devel] [PATCH v4 qemu 4/6] bitmap: Add a new bitmap_move function |
Date: |
Wed, 11 Jan 2017 16:48:42 +0800 |
Sometimes, it is need to move a portion of bitmap to another place
in a large bitmap, if overlap happens, the bitmap_copy can't not
work correctly, we need a new function to do this work.
Signed-off-by: Liang Li <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
---
include/qemu/bitmap.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h
index 63ea2d0..775d05e 100644
--- a/include/qemu/bitmap.h
+++ b/include/qemu/bitmap.h
@@ -37,6 +37,7 @@
* bitmap_set(dst, pos, nbits) Set specified bit area
* bitmap_set_atomic(dst, pos, nbits) Set specified bit area with atomic ops
* bitmap_clear(dst, pos, nbits) Clear specified bit area
+ * bitmap_move(dst, src, nbits) Move *src to *dst
* bitmap_test_and_clear_atomic(dst, pos, nbits) Test and clear area
* bitmap_find_next_zero_area(buf, len, pos, n, mask) Find bit free area
*/
@@ -129,6 +130,18 @@ static inline void bitmap_copy(unsigned long *dst, const
unsigned long *src,
}
}
+static inline void bitmap_move(unsigned long *dst, const unsigned long *src,
+ long nbits)
+{
+ if (small_nbits(nbits)) {
+ unsigned long tmp = *src;
+ *dst = tmp;
+ } else {
+ long len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
+ memmove(dst, src, len);
+ }
+}
+
static inline int bitmap_and(unsigned long *dst, const unsigned long *src1,
const unsigned long *src2, long nbits)
{
--
1.9.1
- [Qemu-devel] [PATCH v4 qemu 0/6] Fast (de)inflating & fast live migration, Liang Li, 2017/01/11
- [Qemu-devel] [PATCH v4 qemu 1/6] virtio-balloon: update linux head file, Liang Li, 2017/01/11
- [Qemu-devel] [PATCH v4 qemu 2/6] virtio-balloon: speed up inflating & deflating process, Liang Li, 2017/01/11
- [Qemu-devel] [PATCH v4 qemu 3/6] balloon: get unused page info from guest, Liang Li, 2017/01/11
- [Qemu-devel] [PATCH v4 qemu 4/6] bitmap: Add a new bitmap_move function,
Liang Li <=
- [Qemu-devel] [PATCH v4 qemu 5/6] kvm.c: Add two new arch specific functions, Liang Li, 2017/01/11
- [Qemu-devel] [PATCH v4 qemu 6/6] migration: skip unused pages during live migration, Liang Li, 2017/01/11
- Re: [Qemu-devel] [PATCH v4 qemu 0/6] Fast (de)inflating & fast live migration, no-reply, 2017/01/11
- Re: [Qemu-devel] [PATCH v4 qemu 0/6] Fast (de)inflating & fast live migration, no-reply, 2017/01/11