X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=ginge.git;a=blobdiff_plain;f=loader%2Femu.c;h=f14b0fc64334f1bdc8bd439fd80ebe6979169097;hp=8dc6d51bae91d97f56963b8bc0ef6f8216128807;hb=3ef07128a8ad8a12688beee244c5e0a2629581de;hpb=ad37f577261dad19e7b0c7aedf68a800f13ed515 diff --git a/loader/emu.c b/loader/emu.c index 8dc6d51..f14b0fc 100644 --- a/loader/emu.c +++ b/loader/emu.c @@ -1081,7 +1081,7 @@ static void *emu_mmap_dev(unsigned int length, int prot, int flags, unsigned int err("warning: uppermem @ %08x overflows by %d bytes\n", offset, umem + length - umem_end); - dbg("upper mem @ %08x %d\n", offset, length); + dbg("upper mem @ %08x %x = %p\n", offset, length, umem); return umem; } @@ -1101,6 +1101,19 @@ void *emu_do_mmap(unsigned int length, int prot, int flags, int fd, unsigned int return MAP_FAILED; } +int emu_do_munmap(void *addr, unsigned int length) +{ + u8 *p = addr; + + // don't allow to unmap upper mem + if ((u8 *)mmsp2.umem <= p && p < (u8 *)mmsp2.umem + 0x2000000) { + dbg("ignoring munmap: %p %x\n", addr, length); + return 0; + } + + return -EAGAIN; +} + static void emu_sound_open(int fd) { #ifdef PND