diff options
author | Twinaphex | 2016-09-07 09:09:22 +0200 |
---|---|---|
committer | GitHub | 2016-09-07 09:09:22 +0200 |
commit | 5dd01cbd4e93fdcaf8daeef76e79bfeab0b5b678 (patch) | |
tree | 7763f8e5a27b12440e2f5cb49607dca7fe9cff7f /frontend/vita/sys | |
parent | 201e4c416a48f547fbfd2f0c3e5ad5cbbc4cc10d (diff) | |
parent | 9facb65b76d846175f3ef9fbeafd1c590a0e0630 (diff) | |
download | pcsx_rearmed-5dd01cbd4e93fdcaf8daeef76e79bfeab0b5b678.tar.gz pcsx_rearmed-5dd01cbd4e93fdcaf8daeef76e79bfeab0b5b678.tar.bz2 pcsx_rearmed-5dd01cbd4e93fdcaf8daeef76e79bfeab0b5b678.zip |
Merge pull request #61 from frangarcj/master
(VITA) I think this is not going to work but if someone can test it
Diffstat (limited to 'frontend/vita/sys')
-rw-r--r-- | frontend/vita/sys/mman.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/frontend/vita/sys/mman.h b/frontend/vita/sys/mman.h index 66467f4..89da513 100644 --- a/frontend/vita/sys/mman.h +++ b/frontend/vita/sys/mman.h @@ -18,19 +18,32 @@ extern "C" { static inline void* mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset) { - (void)addr; (void)prot; (void)flags; (void)fd; (void)offset; - void* addr_out; + int block, ret; + + block = sceKernelAllocMemBlockForVM("code", len); + if(block<=0){ + sceClibPrintf("could not alloc mem block @0x%08X 0x%08X \n", block, len); + exit(1); + } + + // get base address + ret = sceKernelGetMemBlockBase(block, &addr); + if (ret < 0) + { + sceClibPrintf("could get address @0x%08X 0x%08X \n", block, addr); + exit(1); + } + - addr_out = malloc(len); - if(!addr_out) + if(!addr) return MAP_FAILED; - return addr_out; + return addr; } static inline int mprotect(void *addr, size_t len, int prot) @@ -43,8 +56,9 @@ static inline int mprotect(void *addr, size_t len, int prot) static inline int munmap(void *addr, size_t len) { - free(addr); - return 0; + int uid = sceKernelFindMemBlockByAddr(addr, len); + + return sceKernelFreeMemBlock(uid); } @@ -53,4 +67,3 @@ static inline int munmap(void *addr, size_t len) #endif #endif // MMAN_H - |