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:
parent
59c6012db2
commit
a2831d67a0
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue