vmem/alloc: TARGET_NO_NVMEM to not use page tricks

This combined with various other configs avoid segfault/pagefaults usage
This commit is contained in:
~skmp 2015-02-17 00:53:22 +02:00 committed by Stefanos Kornilios Mitsis Poiitidis
parent 59c6012db2
commit a2831d67a0
1 changed files with 15 additions and 4 deletions

View File

@ -393,7 +393,7 @@ void _vmem_term()
#include "hw/pvr/pvr_mem.h"
#include "hw/sh4/sh4_mem.h"
#ifndef TARGET_NACL32
#if !defined(TARGET_NO_NVMEM)
#define MAP_RAM_START_OFFSET 0
#define MAP_VRAM_START_OFFSET (MAP_RAM_START_OFFSET+RAM_SIZE)
@ -726,16 +726,27 @@ bool _vmem_reserve()
}
#else
void* malloc_pages(size_t size) {
u8* rv = (u8*)malloc(size + PAGE_SIZE);
return rv + PAGE_SIZE - ((unat)rv % PAGE_SIZE);
}
bool _vmem_reserve()
{
p_sh4rcb=(Sh4RCB*)malloc_pages(sizeof(Sh4RCB));
mem_b.size=RAM_SIZE;
mem_b.data=(u8*)malloc(RAM_SIZE);
mem_b.data=(u8*)malloc_pages(RAM_SIZE);
vram.size=VRAM_SIZE;
vram.data=(u8*)malloc(VRAM_SIZE);
vram.data=(u8*)malloc_pages(VRAM_SIZE);
aica_ram.size=ARAM_SIZE;
aica_ram.data=(u8*)malloc(ARAM_SIZE);
aica_ram.data=(u8*)malloc_pages(ARAM_SIZE);
return true;
}
#endif