aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/exec/memory.h2
-rw-r--r--softmmu/memory.c4
-rw-r--r--tests/qtest/fuzz/generic_fuzz.c5
3 files changed, 9 insertions, 2 deletions
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 88c2451c06..5728a681b2 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -782,6 +782,7 @@ static inline FlatView *address_space_to_flatview(AddressSpace *as)
* @start: start address of the range within the FlatView
* @len: length of the range in bytes
* @mr: MemoryRegion covering this range
+ * @offset_in_region: offset of the first byte of the range within @mr
* @opaque: data pointer passed to flatview_for_each_range()
*
* Returns: true to stop the iteration, false to keep going.
@@ -789,6 +790,7 @@ static inline FlatView *address_space_to_flatview(AddressSpace *as)
typedef bool (*flatview_cb)(Int128 start,
Int128 len,
const MemoryRegion *mr,
+ hwaddr offset_in_region,
void *opaque);
/**
diff --git a/softmmu/memory.c b/softmmu/memory.c
index c4730ec47a..d4493ef9e4 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -671,8 +671,10 @@ void flatview_for_each_range(FlatView *fv, flatview_cb cb , void *opaque)
assert(cb);
FOR_EACH_FLAT_RANGE(fr, fv) {
- if (cb(fr->addr.start, fr->addr.size, fr->mr, opaque))
+ if (cb(fr->addr.start, fr->addr.size, fr->mr,
+ fr->offset_in_region, opaque)) {
break;
+ }
}
}
diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c
index b6af4cbb18..ae219540b4 100644
--- a/tests/qtest/fuzz/generic_fuzz.c
+++ b/tests/qtest/fuzz/generic_fuzz.c
@@ -99,7 +99,10 @@ struct get_io_cb_info {
};
static bool get_io_address_cb(Int128 start, Int128 size,
- const MemoryRegion *mr, void *opaque) {
+ const MemoryRegion *mr,
+ hwaddr offset_in_region,
+ void *opaque)
+{
struct get_io_cb_info *info = opaque;
if (g_hash_table_lookup(fuzzable_memoryregions, mr)) {
if (info->index == 0) {