memory: reorganize file-based allocation

Split the internal interface in exec.c to a separate function, and
push the check on mem_path up to memory_region_init_ram.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Paolo Bonzini 2014-05-14 17:43:18 +08:00 committed by Michael S. Tsirkin
parent dfabb8b916
commit e1c57ab86f
5 changed files with 73 additions and 46 deletions

View file

@ -23,6 +23,7 @@
#include "exec/memory-internal.h"
#include "exec/ram_addr.h"
#include "sysemu/sysemu.h"
//#define DEBUG_UNASSIGNED
@ -1029,7 +1030,11 @@ void memory_region_init_ram(MemoryRegion *mr,
mr->ram = true;
mr->terminates = true;
mr->destructor = memory_region_destructor_ram;
mr->ram_addr = qemu_ram_alloc(size, mr);
if (mem_path) {
mr->ram_addr = qemu_ram_alloc_from_file(size, mr, mem_path);
} else {
mr->ram_addr = qemu_ram_alloc(size, mr);
}
}
void memory_region_init_ram_ptr(MemoryRegion *mr,