X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Flightrec%2Fmem.c;h=2c7647014779fa7d8157bfa6293a9ce57dfd676b;hb=6fffa2ff148630fc82e3b3ed5efa7596e38be4d0;hp=c3a1421ee7a585d7c192d887a66343608e00d6a4;hpb=e5794429475e9c479904cd20da5283b5de30d4c2;p=pcsx_rearmed.git diff --git a/libpcsxcore/lightrec/mem.c b/libpcsxcore/lightrec/mem.c index c3a1421e..2c764701 100644 --- a/libpcsxcore/lightrec/mem.c +++ b/libpcsxcore/lightrec/mem.c @@ -171,10 +171,24 @@ int lightrec_init_mmap(void) psxH = (s8 *)map; + map = mmap_huge((void *)(base + 0x800000), CODE_BUFFER_SIZE, + PROT_EXEC | PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED_NOREPLACE | MAP_ANONYMOUS, + 0, 0); + if (map == MAP_FAILED) { + err = -EINVAL; + fprintf(stderr, "Unable to mmap code buffer\n"); + goto err_unmap_scratch; + } + + code_buffer = map; + return 0; +err_unmap_scratch: + munmap(psxH, 0x10000); err_unmap_bios: - munmap(psxR, 0x80000); + munmap(psxR, 0x200000); err_unmap_parallel: munmap(psxP, 0x10000); err_unmap: @@ -187,8 +201,9 @@ void lightrec_free_mmap(void) { unsigned int i; + munmap(code_buffer, CODE_BUFFER_SIZE); munmap(psxH, 0x10000); - munmap(psxR, 0x80000); + munmap(psxR, 0x200000); munmap(psxP, 0x10000); for (i = 0; i < 4; i++) munmap((void *)((uintptr_t)psxM + i * 0x200000), 0x200000);