qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qemu v3 07/13] memory: Switch memory from using


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] [PATCH qemu v3 07/13] memory: Switch memory from using AddressSpace to FlatView
Date: Tue, 19 Sep 2017 00:06:21 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

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 <address@hidden>
> ---
>  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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]