[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/10] bitmap: add bitmap_copy_and_clear_atomic
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 01/10] bitmap: add bitmap_copy_and_clear_atomic |
Date: |
Tue, 4 Apr 2017 12:23:06 +0200 |
Signed-off-by: Gerd Hoffmann <address@hidden>
---
include/qemu/bitmap.h | 2 ++
util/bitmap.c | 11 +++++++++++
2 files changed, 13 insertions(+)
diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h
index 63ea2d0..c318da1 100644
--- a/include/qemu/bitmap.h
+++ b/include/qemu/bitmap.h
@@ -220,6 +220,8 @@ void bitmap_set(unsigned long *map, long i, long len);
void bitmap_set_atomic(unsigned long *map, long i, long len);
void bitmap_clear(unsigned long *map, long start, long nr);
bool bitmap_test_and_clear_atomic(unsigned long *map, long start, long nr);
+void bitmap_copy_and_clear_atomic(unsigned long *dst, unsigned long *src,
+ long nr);
unsigned long bitmap_find_next_zero_area(unsigned long *map,
unsigned long size,
unsigned long start,
diff --git a/util/bitmap.c b/util/bitmap.c
index c1a84ca..efced9a 100644
--- a/util/bitmap.c
+++ b/util/bitmap.c
@@ -287,6 +287,17 @@ bool bitmap_test_and_clear_atomic(unsigned long *map, long
start, long nr)
return dirty != 0;
}
+void bitmap_copy_and_clear_atomic(unsigned long *dst, unsigned long *src,
+ long nr)
+{
+ while (nr > 0) {
+ *dst = atomic_xchg(src, 0);
+ dst++;
+ src++;
+ nr -= BITS_PER_LONG;
+ }
+}
+
#define ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
/**
--
2.9.3
- [Qemu-devel] [PATCH 02/10] memory: add support getting and using a dirty bitmap copy., (continued)
- [Qemu-devel] [PATCH 02/10] memory: add support getting and using a dirty bitmap copy., Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 06/10] cg3: fix up size parameter for memory_region_get_dirty(), Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 10/10] [testing] console: remove do_safe_dpy_refresh, Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 03/10] vga: add vga_scanline_invalidated helper, Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 08/10] tcx: introduce tcx_check_dirty() function, Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 05/10] cg3: remove TARGET_PAGE_SIZE rounding on dirty page detection, Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 01/10] bitmap: add bitmap_copy_and_clear_atomic,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 07/10] cg3: make display updates thread safe, Gerd Hoffmann, 2017/04/04
- [Qemu-devel] [PATCH 04/10] vga: make display updates thread safe., Gerd Hoffmann, 2017/04/04
- Re: [Qemu-devel] [PATCH 00/10] make display updates thread safe., Mark Cave-Ayland, 2017/04/04