X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2F3ds%2Fsys%2Fmman.h;h=fdf5ac6a91dc908a2fdd79534d6534299356eaff;hb=323d7f3571b8bdc4371c69c3276e66b0ec6accae;hp=61dde6c21419bd3f5e1829574fecc3fa714014b0;hpb=3733c6fefd2bcc15a637139c036518762aa5956b;p=pcsx_rearmed.git diff --git a/frontend/3ds/sys/mman.h b/frontend/3ds/sys/mman.h index 61dde6c2..fdf5ac6a 100644 --- a/frontend/3ds/sys/mman.h +++ b/frontend/3ds/sys/mman.h @@ -7,6 +7,7 @@ extern "C" { #include #include +#include #include #include @@ -39,14 +40,18 @@ static inline void* mmap(void *addr, size_t len, int prot, int flags, int fd, of /* this hack works only for pcsx_rearmed */ uint32_t currentHandle; - if(!dynarec_cache) + if (!dynarec_cache) { dynarec_cache = memalign(0x1000, len); + if (!dynarec_cache) + return MAP_FAILED; + } svcDuplicateHandle(¤tHandle, 0xFFFF8001); svcControlProcessMemory(currentHandle, addr, dynarec_cache, len, MEMOP_MAP, prot); svcCloseHandle(currentHandle); dynarec_cache_mapping = addr; + memset(addr, 0, len); return addr; } else @@ -57,10 +62,11 @@ static inline void* mmap(void *addr, size_t len, int prot, int flags, int fd, of } - addr_out = malloc(len); - if(!addr_out) + addr_out = memalign(0x1000, len); + if (!addr_out) return MAP_FAILED; + memset(addr_out, 0, len); return addr_out; }