From 516db28a20aa61bcbac48a7ef78b5a9b5485107a Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Thu, 26 Nov 2020 18:06:27 -0800 Subject: [PATCH] Moves some memory op implementations to x64 file These will need to be unique for 32bit --- .../Source/Interface/HLE/Syscalls/Memory.cpp | 15 --------------- .../FEXCore/Source/Interface/HLE/x64/Memory.cpp | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 15 deletions(-) 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(); + }); } }