diff --git a/External/FEXCore/Source/Interface/HLE/Syscalls/Memory.cpp b/External/FEXCore/Source/Interface/HLE/Syscalls/Memory.cpp index 31babf183..0958436a8 100644 --- a/External/FEXCore/Source/Interface/HLE/Syscalls/Memory.cpp +++ b/External/FEXCore/Source/Interface/HLE/Syscalls/Memory.cpp @@ -19,11 +19,6 @@ struct InternalThreadState; namespace FEXCore::HLE { void RegisterMemory() { - REGISTER_SYSCALL_IMPL(munmap, [](FEXCore::Core::InternalThreadState *Thread, void *addr, size_t length) -> uint64_t { - uint64_t Result = ::munmap(addr, length); - SYSCALL_ERRNO(); - }); - REGISTER_SYSCALL_IMPL(brk, [](FEXCore::Core::InternalThreadState *Thread, void *addr) -> uint64_t { uint64_t Result = Thread->CTX->SyscallHandler->HandleBRK(Thread, addr); SYSCALL_ERRNO(); @@ -54,16 +49,6 @@ namespace FEXCore::HLE { SYSCALL_ERRNO(); }); - REGISTER_SYSCALL_IMPL(mlockall, [](FEXCore::Core::InternalThreadState *Thread, int flags) -> uint64_t { - uint64_t Result = ::mlockall(flags); - SYSCALL_ERRNO(); - }); - - REGISTER_SYSCALL_IMPL(munlockall, [](FEXCore::Core::InternalThreadState *Thread) -> uint64_t { - uint64_t Result = ::munlockall(); - SYSCALL_ERRNO(); - }); - REGISTER_SYSCALL_IMPL(mlock2, [](FEXCore::Core::InternalThreadState *Thread, const void *addr, size_t len, int flags) -> uint64_t { uint64_t Result = ::mlock2(addr, len, flags); SYSCALL_ERRNO(); diff --git a/External/FEXCore/Source/Interface/HLE/x64/Memory.cpp b/External/FEXCore/Source/Interface/HLE/x64/Memory.cpp index 4bedcdd22..a990693df 100644 --- a/External/FEXCore/Source/Interface/HLE/x64/Memory.cpp +++ b/External/FEXCore/Source/Interface/HLE/x64/Memory.cpp @@ -7,6 +7,11 @@ #define MEM_PASSTHROUGH namespace FEXCore::HLE::x64 { void RegisterMemory() { + REGISTER_SYSCALL_IMPL_X64(munmap, [](FEXCore::Core::InternalThreadState *Thread, void *addr, size_t length) -> uint64_t { + uint64_t Result = ::munmap(addr, length); + SYSCALL_ERRNO(); + }); + REGISTER_SYSCALL_IMPL_X64(mmap, [](FEXCore::Core::InternalThreadState *Thread, void *addr, size_t length, int prot, int flags, int fd, off_t offset) -> uint64_t { #ifdef MEM_PASSTHROUGH uint64_t Result = reinterpret_cast(::mmap(addr, length, prot, flags, fd, offset)); @@ -25,5 +30,15 @@ namespace FEXCore::HLE::x64 { uint64_t Result = ::mprotect(addr, len, prot); SYSCALL_ERRNO(); }); + + REGISTER_SYSCALL_IMPL_X64(mlockall, [](FEXCore::Core::InternalThreadState *Thread, int flags) -> uint64_t { + uint64_t Result = ::mlockall(flags); + SYSCALL_ERRNO(); + }); + + REGISTER_SYSCALL_IMPL_X64(munlockall, [](FEXCore::Core::InternalThreadState *Thread) -> uint64_t { + uint64_t Result = ::munlockall(); + SYSCALL_ERRNO(); + }); } }