X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fpsxmem.c;fp=libpcsxcore%2Fpsxmem.c;h=6277220cded77b27bad2772afb4a457b8912d4f3;hp=86da68ce693e86654ea425c86f2e5865e4efd703;hb=85f2398236b54db46340dad14330102f281ca4f3;hpb=663fc55992e210a2b0299764bacac3663f32613b diff --git a/libpcsxcore/psxmem.c b/libpcsxcore/psxmem.c index 86da68ce..6277220c 100644 --- a/libpcsxcore/psxmem.c +++ b/libpcsxcore/psxmem.c @@ -49,20 +49,21 @@ void *psxMap(unsigned long addr, size_t size, int is_fixed, retry: if (psxMapHook != NULL) { - ret = psxMapHook(addr, size, is_fixed, tag); - goto out; + ret = psxMapHook(addr, size, 0, tag); + if (ret == NULL) + return NULL; + } + else { + /* avoid MAP_FIXED, it overrides existing mappings.. */ + /* if (is_fixed) + flags |= MAP_FIXED; */ + + req = (void *)addr; + ret = mmap(req, size, PROT_READ | PROT_WRITE, flags, -1, 0); + if (ret == MAP_FAILED) + return NULL; } - /* avoid MAP_FIXED, it overrides existing mappings.. */ - /* if (is_fixed) - flags |= MAP_FIXED; */ - - req = (void *)addr; - ret = mmap(req, size, PROT_READ | PROT_WRITE, flags, -1, 0); - if (ret == MAP_FAILED) - return NULL; - -out: if (addr != 0 && ret != (void *)addr) { SysMessage("psxMap: warning: wanted to map @%08x, got %p\n", addr, ret); @@ -72,8 +73,7 @@ out: return NULL; } - if (ret != NULL && ((addr ^ (long)ret) & 0x00ffffff) - && !tried_to_align) + if (((addr ^ (long)ret) & 0x00ffffff) && !tried_to_align) { psxUnmap(ret, size, tag);