On 18/09/17 20:17, Alexey Kardashevskiy wrote: > FlatView's will be shared between AddressSpace's and subpage_t > and MemoryRegionSection cannot store AS anymore, hence this change. > > In particular, for: > > typedef struct subpage_t { > MemoryRegion iomem; > - AddressSpace *as; > + FlatView *fv; > hwaddr base; > uint16_t sub_section[]; > } subpage_t; > > struct MemoryRegionSection { > MemoryRegion *mr; > - AddressSpace *address_space; > + FlatView *fv; > hwaddr offset_within_region; > Int128 size; > hwaddr offset_within_address_space; > bool readonly; > }; > > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> > --- > include/exec/memory-internal.h | 2 +- > include/exec/memory.h | 51 ++++++++---- > exec.c | 180 > ++++++++++++++++++++++++----------------- > hw/intc/openpic_kvm.c | 2 +- > memory.c | 28 ++++--- > 5 files changed, 157 insertions(+), 106 deletions(-) > > diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h > index 6e08eda256..1cf8ad9869 100644 > --- a/include/exec/memory-internal.h > +++ b/include/exec/memory-internal.h > @@ -27,7 +27,7 @@ extern const MemoryRegionOps unassigned_mem_ops; > bool memory_region_access_valid(MemoryRegion *mr, hwaddr addr, > unsigned size, bool is_write); > > -void mem_add(AddressSpace *as, FlatView *fv, MemoryRegionSection *section); > +void mem_add(FlatView *fv, MemoryRegionSection *section); > AddressSpaceDispatch *mem_begin(AddressSpace *as); > void mem_commit(AddressSpaceDispatch *d); > > diff --git a/include/exec/memory.h b/include/exec/memory.h > index 2346f8b863..7816e5d655 100644 > --- a/include/exec/memory.h > +++ b/include/exec/memory.h > @@ -48,6 +48,7 @@ > > typedef struct MemoryRegionOps MemoryRegionOps; > typedef struct MemoryRegionMmio MemoryRegionMmio; > +typedef struct FlatView FlatView; >
This is missing, apparently. My gcc did not catch it :-/ diff --git a/memory.c b/memory.c index 69f3334c9b..21e1a6f38f 100644 --- a/memory.c +++ b/memory.c @@ -209,7 +209,6 @@ static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd a, } typedef struct FlatRange FlatRange; -typedef struct FlatView FlatView; -- Alexey