mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-04-17 23:51:41 +00:00
bitmap: add bitmap_copy_and_clear_atomic
Backports commit d6eb1413920affb7be3df9982682dd183a805dd7 from qemu
This commit is contained in:
parent
b8b70dfcd2
commit
108354cc4a
|
@ -67,6 +67,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);
|
||||
|
||||
static inline unsigned long *bitmap_zero_extend(unsigned long *old,
|
||||
long old_nbits, long new_nbits)
|
||||
|
|
|
@ -137,3 +137,14 @@ 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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue