Message ID | 1349280245-16341-16-git-send-email-avi@redhat.com |
---|---|
State | New |
Headers | show |
Avi Kivity <avi@redhat.com> writes: > With this change, memory.c no longer knows anything about special address > spaces, so it is prepared for AddressSpace based DMA. > > Signed-off-by: Avi Kivity <avi@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Regards, Anthony Liguori > --- > exec-memory.h | 6 ------ > exec.c | 9 +++++++-- > memory.c | 16 ---------------- > 3 files changed, 7 insertions(+), 24 deletions(-) > > diff --git a/exec-memory.h b/exec-memory.h > index 1cd92ee..6707e40 100644 > --- a/exec-memory.h > +++ b/exec-memory.h > @@ -33,12 +33,6 @@ MemoryRegion *get_system_memory(void); > */ > MemoryRegion *get_system_io(void); > > -/* Set the root memory region. This region is the system memory map. */ > -void set_system_memory_map(MemoryRegion *mr); > - > -/* Set the I/O memory region. This region is the I/O memory map. */ > -void set_system_io_map(MemoryRegion *mr); > - > #endif > > #endif > diff --git a/exec.c b/exec.c > index 51a32e7..e5f26fb 100644 > --- a/exec.c > +++ b/exec.c > @@ -116,6 +116,9 @@ > static MemoryRegion *system_memory; > static MemoryRegion *system_io; > > +static AddressSpace address_space_io; > +static AddressSpace address_space_memory; > + > MemoryRegion io_mem_ram, io_mem_rom, io_mem_unassigned, io_mem_notdirty; > static MemoryRegion io_mem_subpage_ram; > > @@ -3245,11 +3248,13 @@ static void memory_map_init(void) > { > system_memory = g_malloc(sizeof(*system_memory)); > memory_region_init(system_memory, "system", INT64_MAX); > - set_system_memory_map(system_memory); > + address_space_init(&address_space_memory, system_memory); > + address_space_memory.name = "memory"; > > system_io = g_malloc(sizeof(*system_io)); > memory_region_init(system_io, "io", 65536); > - set_system_io_map(system_io); > + address_space_init(&address_space_io, system_io); > + address_space_io.name = "I/O"; > > memory_listener_register(&core_memory_listener, system_memory); > memory_listener_register(&io_memory_listener, system_io); > diff --git a/memory.c b/memory.c > index eb75349..7bc5a32 100644 > --- a/memory.c > +++ b/memory.c > @@ -358,8 +358,6 @@ static void access_with_adjusted_size(target_phys_addr_t addr, > } > } > > -static AddressSpace address_space_memory; > - > static const MemoryRegionPortio *find_portio(MemoryRegion *mr, uint64_t offset, > unsigned width, bool write) > { > @@ -448,8 +446,6 @@ static void memory_region_iorange_destructor(IORange *iorange) > .destructor = memory_region_iorange_destructor, > }; > > -static AddressSpace address_space_io; > - > static AddressSpace *memory_region_to_address_space(MemoryRegion *mr) > { > AddressSpace *as; > @@ -1556,18 +1552,6 @@ void address_space_init(AddressSpace *as, MemoryRegion *root) > memory_region_transaction_commit(); > } > > -void set_system_memory_map(MemoryRegion *mr) > -{ > - address_space_init(&address_space_memory, mr); > - address_space_memory.name = "memory"; > -} > - > -void set_system_io_map(MemoryRegion *mr) > -{ > - address_space_init(&address_space_io, mr); > - address_space_io.name = "I/O"; > -} > - > uint64_t io_mem_read(MemoryRegion *mr, target_phys_addr_t addr, unsigned size) > { > return memory_region_dispatch_read(mr, addr, size); > -- > 1.7.12
diff --git a/exec-memory.h b/exec-memory.h index 1cd92ee..6707e40 100644 --- a/exec-memory.h +++ b/exec-memory.h @@ -33,12 +33,6 @@ MemoryRegion *get_system_memory(void); */ MemoryRegion *get_system_io(void); -/* Set the root memory region. This region is the system memory map. */ -void set_system_memory_map(MemoryRegion *mr); - -/* Set the I/O memory region. This region is the I/O memory map. */ -void set_system_io_map(MemoryRegion *mr); - #endif #endif diff --git a/exec.c b/exec.c index 51a32e7..e5f26fb 100644 --- a/exec.c +++ b/exec.c @@ -116,6 +116,9 @@ static MemoryRegion *system_memory; static MemoryRegion *system_io; +static AddressSpace address_space_io; +static AddressSpace address_space_memory; + MemoryRegion io_mem_ram, io_mem_rom, io_mem_unassigned, io_mem_notdirty; static MemoryRegion io_mem_subpage_ram; @@ -3245,11 +3248,13 @@ static void memory_map_init(void) { system_memory = g_malloc(sizeof(*system_memory)); memory_region_init(system_memory, "system", INT64_MAX); - set_system_memory_map(system_memory); + address_space_init(&address_space_memory, system_memory); + address_space_memory.name = "memory"; system_io = g_malloc(sizeof(*system_io)); memory_region_init(system_io, "io", 65536); - set_system_io_map(system_io); + address_space_init(&address_space_io, system_io); + address_space_io.name = "I/O"; memory_listener_register(&core_memory_listener, system_memory); memory_listener_register(&io_memory_listener, system_io); diff --git a/memory.c b/memory.c index eb75349..7bc5a32 100644 --- a/memory.c +++ b/memory.c @@ -358,8 +358,6 @@ static void access_with_adjusted_size(target_phys_addr_t addr, } } -static AddressSpace address_space_memory; - static const MemoryRegionPortio *find_portio(MemoryRegion *mr, uint64_t offset, unsigned width, bool write) { @@ -448,8 +446,6 @@ static void memory_region_iorange_destructor(IORange *iorange) .destructor = memory_region_iorange_destructor, }; -static AddressSpace address_space_io; - static AddressSpace *memory_region_to_address_space(MemoryRegion *mr) { AddressSpace *as; @@ -1556,18 +1552,6 @@ void address_space_init(AddressSpace *as, MemoryRegion *root) memory_region_transaction_commit(); } -void set_system_memory_map(MemoryRegion *mr) -{ - address_space_init(&address_space_memory, mr); - address_space_memory.name = "memory"; -} - -void set_system_io_map(MemoryRegion *mr) -{ - address_space_init(&address_space_io, mr); - address_space_io.name = "I/O"; -} - uint64_t io_mem_read(MemoryRegion *mr, target_phys_addr_t addr, unsigned size) { return memory_region_dispatch_read(mr, addr, size);
With this change, memory.c no longer knows anything about special address spaces, so it is prepared for AddressSpace based DMA. Signed-off-by: Avi Kivity <avi@redhat.com> --- exec-memory.h | 6 ------ exec.c | 9 +++++++-- memory.c | 16 ---------------- 3 files changed, 7 insertions(+), 24 deletions(-)