support for dynamic address space changes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2021 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
2a4188a38f
commit
9d42037b1d
8
exec.c
8
exec.c
@ -1779,6 +1779,7 @@ void cpu_register_physical_memory(target_phys_addr_t start_addr,
|
|||||||
{
|
{
|
||||||
target_phys_addr_t addr, end_addr;
|
target_phys_addr_t addr, end_addr;
|
||||||
PhysPageDesc *p;
|
PhysPageDesc *p;
|
||||||
|
CPUState *env;
|
||||||
|
|
||||||
size = (size + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK;
|
size = (size + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK;
|
||||||
end_addr = start_addr + size;
|
end_addr = start_addr + size;
|
||||||
@ -1789,6 +1790,13 @@ void cpu_register_physical_memory(target_phys_addr_t start_addr,
|
|||||||
(phys_offset & IO_MEM_ROMD))
|
(phys_offset & IO_MEM_ROMD))
|
||||||
phys_offset += TARGET_PAGE_SIZE;
|
phys_offset += TARGET_PAGE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* since each CPU stores ram addresses in its TLB cache, we must
|
||||||
|
reset the modified entries */
|
||||||
|
/* XXX: slow ! */
|
||||||
|
for(env = first_cpu; env != NULL; env = env->next_cpu) {
|
||||||
|
tlb_flush(env, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)
|
static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)
|
||||||
|
Loading…
Reference in New Issue
Block a user