[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v1 09/11] exec: use per-cpu address-spaces for c
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [RFC PATCH v1 09/11] exec: use per-cpu address-spaces for cpuisms |
Date: |
Mon, 2 Jun 2014 19:11:33 -0700 |
Rather than address_space_memory.
Needs a few random callsites with hardcoded address_space_memory to be
patched. Use first_cpu->as in these cases.
Signed-off-by: Peter Crosthwaite <address@hidden>
---
Long term, cpu_physical_memory_rw and friends needs to be replaced.
exec.c | 5 +++--
hw/core/loader.c | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/exec.c b/exec.c
index aa39f6c..2535b32 100644
--- a/exec.c
+++ b/exec.c
@@ -487,7 +487,8 @@ void cpu_exec_init(CPUArchState *env)
QTAILQ_INIT(&cpu->breakpoints);
QTAILQ_INIT(&cpu->watchpoints);
#ifndef CONFIG_USER_ONLY
- cpu->as = &address_space_memory;
+ object_property_set_link(OBJECT(cpu), OBJECT(system_memory), "mr",
+ &error_abort);
cpu->thread_id = qemu_get_thread_id();
#endif
QTAILQ_INSERT_TAIL(&cpus, cpu, node);
@@ -2105,7 +2106,7 @@ bool address_space_read(AddressSpace *as, hwaddr addr,
uint8_t *buf, int len)
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
int len, int is_write)
{
- address_space_rw(&address_space_memory, addr, buf, len, is_write);
+ address_space_rw(first_cpu->as, addr, buf, len, is_write);
}
enum write_rom_type {
diff --git a/hw/core/loader.c b/hw/core/loader.c
index 2bf6b8f..16473a9 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -798,7 +798,7 @@ static void rom_reset(void *unused)
void *host = memory_region_get_ram_ptr(rom->mr);
memcpy(host, rom->data, rom->datasize);
} else {
- cpu_physical_memory_write_rom(&address_space_memory,
+ cpu_physical_memory_write_rom(first_cpu->as,
rom->addr, rom->data, rom->datasize);
}
if (rom->isrom) {
--
2.0.0
- [Qemu-devel] [RFC PATCH v1 00/11] Per Master Addressing (PMA), Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 01/11] microblaze: ml605: Get rid of useless ddr_base variable, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 02/11] dma: axidma: Variablise repeated s->streams[i] sub-expr, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 03/11] exec: Parent root MRs to the machine, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 04/11] exec: dummy_section: Pass address space through., Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 05/11] memory: Parent Memory Regions to their registered owners, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 06/11] memory: address_space_init: do nothing if no root region given, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 07/11] memory.c: Add address_space_init_shareable(), Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 08/11] qom/cpu: Add Memory Region Property, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 09/11] exec: use per-cpu address-spaces for cpuisms,
Peter Crosthwaite <=
- [Qemu-devel] [RFC PATCH v1 10/11] microblaze: ml605: Convert to PMA, Peter Crosthwaite, 2014/06/02
- [Qemu-devel] [RFC PATCH v1 11/11] dma: axidma: Convert to PMA, Peter Crosthwaite, 2014/06/02
- Re: [Qemu-devel] [RFC PATCH v1 00/11] Per Master Addressing (PMA), Paolo Bonzini, 2014/06/03
- Re: [Qemu-devel] [RFC PATCH v1 00/11] Per Master Addressing (PMA), Peter Maydell, 2014/06/03