[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH QEMU 1/5] bitmap: Add a new bitmap_move function
From: |
Liang Li |
Subject: |
[Qemu-devel] [PATCH QEMU 1/5] bitmap: Add a new bitmap_move function |
Date: |
Tue, 19 Apr 2016 22:20:39 +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>
---
include/qemu/bitmap.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h
index 0e33fa5..ce07444 100644
--- a/include/qemu/bitmap.h
+++ b/include/qemu/bitmap.h
@@ -38,6 +38,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
*/
@@ -137,6 +138,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.8.3.1
- [Qemu-devel] [PATCH QEMU 0/5] spee up live migration by skipping free pages, Liang Li, 2016/04/19
- [Qemu-devel] [PATCH QEMU 1/5] bitmap: Add a new bitmap_move function,
Liang Li <=
- [Qemu-devel] [PATCH QEMU 2/5] kvm: Add two new arch specific functions, Liang Li, 2016/04/19
- [Qemu-devel] [PATCH QEMU 3/5] virtio-balloon: Add a new feature to balloon device, Liang Li, 2016/04/19
- [Qemu-devel] [PATCH QEMU 4/5] migration: filter out free pages during live migration, Liang Li, 2016/04/19
- [Qemu-devel] [PATCH QEMU 5/5] migration: Add the interface for cache drop control, Liang Li, 2016/04/19
- Re: [Qemu-devel] [PATCH QEMU 0/5] spee up live migration by skipping free pages, Alexander Graf, 2016/04/19