diff --git a/src/common/platform/sysFileIO.h b/src/common/platform/sysFileIO.h index 76974d133..6cca03a56 100644 --- a/src/common/platform/sysFileIO.h +++ b/src/common/platform/sysFileIO.h @@ -52,7 +52,6 @@ uint64_t SysFileTell(sys_file_t& f); // NOLINT(google-runt bool SysFileTruncate(sys_file_t& f, uint64_t size); // NOLINT(google-runtime-references) bool SysFileUnlink(sys_file_t& f, const std::filesystem::path& name); // NOLINT(google-runtime-references) -void SysFileWrite(uint32_t n, sys_file_t& f); // NOLINT(google-runtime-references) uint64_t SysFileSize(const std::filesystem::path& file_name); bool SysFileIsError(sys_file_t& f); // NOLINT(google-runtime-references) bool SysFileIsDirectoryExisting(const std::filesystem::path& path); diff --git a/src/common/platform/sysLinuxFileIO.cpp b/src/common/platform/sysLinuxFileIO.cpp index e53e6a138..38029296b 100644 --- a/src/common/platform/sysLinuxFileIO.cpp +++ b/src/common/platform/sysLinuxFileIO.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -151,10 +152,6 @@ void SysFileWrite(const void* data, uint32_t size, sys_file_t& f, uint32_t* byte } } -void SysFileWrite(uint32_t n, sys_file_t& f) { - SysFileWrite(&n, 4, f); -} - sys_file_t* SysFileCreate(const std::filesystem::path& file_name) { auto* ret = new sys_file_t; diff --git a/src/common/platform/sysLinuxVirtual.cpp b/src/common/platform/sysLinuxVirtual.cpp index 2c0bdf251..154d621d9 100644 --- a/src/common/platform/sysLinuxVirtual.cpp +++ b/src/common/platform/sysLinuxVirtual.cpp @@ -5,7 +5,6 @@ #else #include "common/assert.h" -#include "common/platform/sysVirtual.h" #include "common/virtualMemory.h" #include @@ -28,12 +27,12 @@ #define KYTY_FIXED_NOREPLACE #endif -namespace Common { +namespace Common::VirtualMemory { static pthread_mutex_t g_virtual_mutex {}; static std::map* g_allocs = nullptr; -void SysVirtualInit() { +void Init() { pthread_mutexattr_t attr {}; pthread_mutexattr_init(&attr); @@ -48,19 +47,19 @@ void SysVirtualInit() { g_allocs = new std::map; } -static int get_protection_flag(VirtualMemory::Mode mode) { +static int get_protection_flag(Mode mode) { int protect = PROT_NONE; switch (mode) { - case VirtualMemory::Mode::Read: protect = PROT_READ; break; - case VirtualMemory::Mode::Write: - case VirtualMemory::Mode::ReadWrite: protect = PROT_READ | PROT_WRITE; break; // NOLINT - case VirtualMemory::Mode::Execute: protect = PROT_EXEC; break; - case VirtualMemory::Mode::ExecuteRead: protect = PROT_EXEC | PROT_READ; break; // NOLINT - case VirtualMemory::Mode::ExecuteWrite: - case VirtualMemory::Mode::ExecuteReadWrite: + case Mode::Read: protect = PROT_READ; break; + case Mode::Write: + case Mode::ReadWrite: protect = PROT_READ | PROT_WRITE; break; // NOLINT + case Mode::Execute: protect = PROT_EXEC; break; + case Mode::ExecuteRead: protect = PROT_EXEC | PROT_READ; break; // NOLINT + case Mode::ExecuteWrite: + case Mode::ExecuteReadWrite: protect = PROT_EXEC | PROT_WRITE | PROT_READ; break; // NOLINT - case VirtualMemory::Mode::NoAccess: + case Mode::NoAccess: default: protect = PROT_NONE; break; } return protect; @@ -130,7 +129,7 @@ static void* map_anonymous(uintptr_t addr, size_t size, int protect, int flags) return mmap(nullptr, size, protect, flags, -1, 0); // NOLINT } -uint64_t SysVirtualAlloc(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +uint64_t Alloc(uint64_t address, uint64_t size, Mode mode) { EXIT_IF(g_allocs == nullptr); auto addr = static_cast(address); @@ -154,8 +153,7 @@ static uintptr_t align_up(uintptr_t addr, uint64_t alignment) { return (addr + alignment - 1) & ~(alignment - 1); } -uint64_t SysVirtualAllocAligned(uint64_t address, uint64_t size, VirtualMemory::Mode mode, - uint64_t alignment) { +uint64_t AllocAligned(uint64_t address, uint64_t size, Mode mode, uint64_t alignment) { if (alignment == 0) { return 0; } @@ -224,7 +222,7 @@ uint64_t SysVirtualAllocAligned(uint64_t address, uint64_t size, VirtualMemory:: } if (ptr == MAP_FAILED) { - return SysVirtualAllocAligned(address, size, mode, alignment << 1u); + return AllocAligned(address, size, mode, alignment << 1u); } pthread_mutex_lock(&g_virtual_mutex); @@ -281,7 +279,7 @@ static bool is_mapped(void* ptr, size_t length) { } #endif -bool SysVirtualAllocFixed(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +bool AllocFixed(uint64_t address, uint64_t size, Mode mode) { EXIT_IF(g_allocs == nullptr); auto addr = static_cast(address); @@ -318,15 +316,15 @@ bool SysVirtualAllocFixed(uint64_t address, uint64_t size, VirtualMemory::Mode m return false; } -bool SysVirtualCommit(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { - return SysVirtualProtect(address, size, mode); +bool Commit(uint64_t address, uint64_t size, Mode mode) { + return Protect(address, size, mode); } -uint64_t SysVirtualReserve(uint64_t address, uint64_t size) { - return SysVirtualReserveAligned(address, size, 1); +uint64_t Reserve(uint64_t address, uint64_t size) { + return ReserveAligned(address, size, 1); } -uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alignment) { +uint64_t ReserveAligned(uint64_t address, uint64_t size, uint64_t alignment) { if (alignment == 0) { return 0; } @@ -395,7 +393,7 @@ uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alig } if (ptr == MAP_FAILED) { - return SysVirtualReserveAligned(address, size, alignment << 1u); + return ReserveAligned(address, size, alignment << 1u); } pthread_mutex_lock(&g_virtual_mutex); @@ -405,7 +403,7 @@ uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alig return ret_addr; } -bool SysVirtualReserveFixed(uint64_t address, uint64_t size) { +bool ReserveFixed(uint64_t address, uint64_t size) { EXIT_IF(g_allocs == nullptr); auto addr = static_cast(address); @@ -441,9 +439,9 @@ bool SysVirtualReserveFixed(uint64_t address, uint64_t size) { return false; } -bool SysVirtualDecommit(uint64_t address, uint64_t size) { +bool Decommit(uint64_t address, uint64_t size) { // Drop physical pages while preserving the reservation. - if (!SysVirtualProtect(address, size, VirtualMemory::Mode::NoAccess)) { + if (!Protect(address, size, Mode::NoAccess)) { return false; } @@ -467,7 +465,7 @@ bool SysVirtualDecommit(uint64_t address, uint64_t size) { return true; } -bool SysVirtualFree(uint64_t address) { +bool Free(uint64_t address) { EXIT_IF(g_allocs == nullptr); size_t size = 0; @@ -487,7 +485,7 @@ bool SysVirtualFree(uint64_t address) { return munmap(reinterpret_cast(addr), size) == 0; } -bool SysVirtualFreeRange(uint64_t address, uint64_t size) { +bool FreeRange(uint64_t address, uint64_t size) { EXIT_IF(g_allocs == nullptr); if (size == 0 || (address & 0xfffu) != 0 || (size & 0xfffu) != 0) { return false; @@ -543,7 +541,7 @@ bool SysVirtualFreeRange(uint64_t address, uint64_t size) { return true; } -bool SysVirtualProtect(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +bool Protect(uint64_t address, uint64_t size, Mode mode) { const auto addr = static_cast(address); const auto page_start = addr >> 12u; const auto page_end = (addr + size - 1) >> 12u; @@ -551,10 +549,10 @@ bool SysVirtualProtect(uint64_t address, uint64_t size, VirtualMemory::Mode mode get_protection_flag(mode)) == 0; } -bool SysVirtualFlushInstructionCache(uint64_t /*address*/, uint64_t /*size*/) { +bool FlushInstructionCache(uint64_t /*address*/, uint64_t /*size*/) { return true; } -} // namespace Common +} // namespace Common::VirtualMemory #endif diff --git a/src/common/platform/sysSwapByteOrder.h b/src/common/platform/sysSwapByteOrder.h deleted file mode 100644 index bdb1244d1..000000000 --- a/src/common/platform/sysSwapByteOrder.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef KYTY_COMMON_PLATFORM_SYSSWAPBYTEORDER_H_ -#define KYTY_COMMON_PLATFORM_SYSSWAPBYTEORDER_H_ - -#include "common/common.h" - -#include - -inline uint16_t SwapByteOrder16(uint16_t value) { - uint16_t hi = value << 8u; - uint16_t lo = value >> 8u; - return hi | lo; -} - -inline uint32_t SwapByteOrder32(uint32_t value) { - return __builtin_bswap32(value); -} - -inline uint64_t SwapByteOrder64(uint64_t value) { - return __builtin_bswap64(value); -} - -template -inline void SwapByteOrder(T& x) { - if (sizeof(x) == 2) { - if (std::is_signed_v) { - x = static_cast>( - SwapByteOrder16(static_cast>(x))); - } else { - x = SwapByteOrder16(x); - } - } - if (sizeof(x) == 4) { - if (std::is_signed_v) { - x = static_cast>( - SwapByteOrder32(static_cast>(x))); - } else { - x = SwapByteOrder32(x); - } - } - if (sizeof(x) == 8) { - if (std::is_signed_v) { - x = static_cast>( - SwapByteOrder64(static_cast>(x))); - } else { - x = SwapByteOrder64(x); - } - } -} - -template -inline void NoSwapByteOrder(T& x) {} - -#endif /* KYTY_COMMON_PLATFORM_SYSSWAPBYTEORDER_H_ */ diff --git a/src/common/platform/sysTimer.h b/src/common/platform/sysTimer.h index a53f7617f..b6a91e6de 100644 --- a/src/common/platform/sysTimer.h +++ b/src/common/platform/sysTimer.h @@ -151,10 +151,6 @@ inline void SysTimeTToSystem(time_t t, SysTimeStruct& s) { SysFileToSystemTimeUtc(ft, s); } -inline time_t SysTimegm(struct tm* tm) { - return timegm(tm); -} - inline void SysSystemToFileTimeUtc(const SysTimeStruct& f, SysFileTimeStruct& t) { struct tm i {}; @@ -165,7 +161,7 @@ inline void SysSystemToFileTimeUtc(const SysTimeStruct& f, SysFileTimeStruct& t) i.tm_min = f.Minute; i.tm_sec = f.Second; - t.is_invalid = (f.is_invalid || (t.time = SysTimegm(&i)) == static_cast(-1)); + t.is_invalid = (f.is_invalid || (t.time = ::timegm(&i)) == static_cast(-1)); } // Retrieves the current local date and time. diff --git a/src/common/platform/sysVirtual.h b/src/common/platform/sysVirtual.h deleted file mode 100644 index 3be507614..000000000 --- a/src/common/platform/sysVirtual.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef KYTY_COMMON_PLATFORM_SYSVIRTUAL_H_ -#define KYTY_COMMON_PLATFORM_SYSVIRTUAL_H_ - -#include "common/common.h" -#include "common/virtualMemory.h" - -namespace Common { - -void SysVirtualInit(); - -uint64_t SysVirtualAlloc(uint64_t address, uint64_t size, VirtualMemory::Mode mode); -uint64_t SysVirtualAllocAligned(uint64_t address, uint64_t size, VirtualMemory::Mode mode, - uint64_t alignment); -bool SysVirtualAllocFixed(uint64_t address, uint64_t size, VirtualMemory::Mode mode); -bool SysVirtualCommit(uint64_t address, uint64_t size, VirtualMemory::Mode mode); -uint64_t SysVirtualReserve(uint64_t address, uint64_t size); -uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alignment); -bool SysVirtualReserveFixed(uint64_t address, uint64_t size); -bool SysVirtualDecommit(uint64_t address, uint64_t size); -bool SysVirtualFree(uint64_t address); -bool SysVirtualFreeRange(uint64_t address, uint64_t size); -bool SysVirtualProtect(uint64_t address, uint64_t size, VirtualMemory::Mode mode); -bool SysVirtualFlushInstructionCache(uint64_t address, uint64_t size); - -} // namespace Common - -#endif /* KYTY_COMMON_PLATFORM_SYSVIRTUAL_H_ */ diff --git a/src/common/platform/sysWindowsFileIO.cpp b/src/common/platform/sysWindowsFileIO.cpp index 6bd239260..cbe1c2693 100644 --- a/src/common/platform/sysWindowsFileIO.cpp +++ b/src/common/platform/sysWindowsFileIO.cpp @@ -14,6 +14,7 @@ #include "common/stringUtils.h" #include +#include #include // NOLINTNEXTLINE(readability-identifier-naming) @@ -135,10 +136,6 @@ void SysFileWrite(const void* data, uint32_t size, sys_file_t& f, uint32_t* byte } } -void SysFileWrite(uint32_t n, sys_file_t& f) { - SysFileWrite(&n, 4, f); -} - sys_file_t* SysFileCreate(const std::filesystem::path& file_name) { auto* ret = new sys_file_t; diff --git a/src/common/platform/sysWindowsVirtual.cpp b/src/common/platform/sysWindowsVirtual.cpp index b2725eda7..0d68fb1ad 100644 --- a/src/common/platform/sysWindowsVirtual.cpp +++ b/src/common/platform/sysWindowsVirtual.cpp @@ -10,7 +10,6 @@ #include // IWYU pragma: keep #include "common/assert.h" -#include "common/platform/sysVirtual.h" #include "common/virtualMemory.h" // IWYU pragma: no_include @@ -22,33 +21,33 @@ // IWYU pragma: no_include // IWYU pragma: no_include -namespace Common { +namespace Common::VirtualMemory { -static DWORD GetProtectionFlag(VirtualMemory::Mode mode) { +static DWORD GetProtectionFlag(Mode mode) { DWORD protect = PAGE_NOACCESS; switch (mode) { - case VirtualMemory::Mode::Read: protect = PAGE_READONLY; break; + case Mode::Read: protect = PAGE_READONLY; break; - case VirtualMemory::Mode::Write: - case VirtualMemory::Mode::ReadWrite: protect = PAGE_READWRITE; break; + case Mode::Write: + case Mode::ReadWrite: protect = PAGE_READWRITE; break; - case VirtualMemory::Mode::Execute: protect = PAGE_EXECUTE; break; + case Mode::Execute: protect = PAGE_EXECUTE; break; - case VirtualMemory::Mode::ExecuteRead: protect = PAGE_EXECUTE_READ; break; + case Mode::ExecuteRead: protect = PAGE_EXECUTE_READ; break; - case VirtualMemory::Mode::ExecuteWrite: - case VirtualMemory::Mode::ExecuteReadWrite: protect = PAGE_EXECUTE_READWRITE; break; + case Mode::ExecuteWrite: + case Mode::ExecuteReadWrite: protect = PAGE_EXECUTE_READWRITE; break; - case VirtualMemory::Mode::NoAccess: + case Mode::NoAccess: default: protect = PAGE_NOACCESS; break; } return protect; } -void SysVirtualInit() {} +void Init() {} -uint64_t SysVirtualAlloc(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { - auto ptr = (address == 0 ? SysVirtualAllocAligned(address, size, mode, 1) +uint64_t Alloc(uint64_t address, uint64_t size, Mode mode) { + auto ptr = (address == 0 ? AllocAligned(address, size, mode, 1) : reinterpret_cast(VirtualAlloc( reinterpret_cast(static_cast(address)), size, static_cast(MEM_COMMIT) | static_cast(MEM_RESERVE), @@ -59,7 +58,7 @@ uint64_t SysVirtualAlloc(uint64_t address, uint64_t size, VirtualMemory::Mode mo if (err != ERROR_INVALID_ADDRESS) { printf("VirtualAlloc() failed: 0x%08" PRIx32 "\n", err); } else { - return SysVirtualAllocAligned(address, size, mode, 1); + return AllocAligned(address, size, mode, 1); } } return ptr; @@ -80,8 +79,7 @@ static uint64_t AlignUp(uint64_t addr, uint64_t alignment) { return (addr + alignment - 1) & ~(alignment - 1); } -uint64_t SysVirtualAllocAligned(uint64_t address, uint64_t size, VirtualMemory::Mode mode, - uint64_t alignment) { +uint64_t AllocAligned(uint64_t address, uint64_t size, Mode mode, uint64_t alignment) { if (alignment == 0) { printf("VirtualAlloc2 failed: 0x%08" PRIx32 "\n", static_cast(GetLastError())); return 0; @@ -135,13 +133,13 @@ uint64_t SysVirtualAllocAligned(uint64_t address, uint64_t size, VirtualMemory:: printf("VirtualAlloc2(alignment = 0x%016" PRIx64 ") failed: 0x%08" PRIx32 "\n", alignment, err); } else { - return SysVirtualAllocAligned(address, size, mode, alignment << 1u); + return AllocAligned(address, size, mode, alignment << 1u); } } return ptr; } -bool SysVirtualAllocFixed(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +bool AllocFixed(uint64_t address, uint64_t size, Mode mode) { auto ptr = reinterpret_cast(VirtualAlloc( reinterpret_cast(static_cast(address)), size, static_cast(MEM_COMMIT) | static_cast(MEM_RESERVE), GetProtectionFlag(mode))); @@ -161,7 +159,7 @@ bool SysVirtualAllocFixed(uint64_t address, uint64_t size, VirtualMemory::Mode m return true; } -bool SysVirtualCommit(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +bool Commit(uint64_t address, uint64_t size, Mode mode) { auto ptr = reinterpret_cast( VirtualAlloc(reinterpret_cast(static_cast(address)), size, static_cast(MEM_COMMIT), GetProtectionFlag(mode))); @@ -179,8 +177,8 @@ bool SysVirtualCommit(uint64_t address, uint64_t size, VirtualMemory::Mode mode) return true; } -uint64_t SysVirtualReserve(uint64_t address, uint64_t size) { - auto ptr = (address == 0 ? SysVirtualReserveAligned(address, size, 1) +uint64_t Reserve(uint64_t address, uint64_t size) { + auto ptr = (address == 0 ? ReserveAligned(address, size, 1) : reinterpret_cast(VirtualAlloc( reinterpret_cast(static_cast(address)), size, static_cast(MEM_RESERVE), PAGE_NOACCESS))); @@ -190,13 +188,13 @@ uint64_t SysVirtualReserve(uint64_t address, uint64_t size) { if (err != ERROR_INVALID_ADDRESS) { printf("VirtualAlloc(MEM_RESERVE) failed: 0x%08" PRIx32 "\n", err); } else { - return SysVirtualReserveAligned(address, size, 1); + return ReserveAligned(address, size, 1); } } return ptr; } -uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alignment) { +uint64_t ReserveAligned(uint64_t address, uint64_t size, uint64_t alignment) { if (alignment == 0) { printf("VirtualAlloc2(MEM_RESERVE) failed: 0x%08" PRIx32 "\n", static_cast(GetLastError())); @@ -250,13 +248,13 @@ uint64_t SysVirtualReserveAligned(uint64_t address, uint64_t size, uint64_t alig "\n", alignment, err); } else { - return SysVirtualReserveAligned(address, size, alignment << 1u); + return ReserveAligned(address, size, alignment << 1u); } } return ptr; } -bool SysVirtualReserveFixed(uint64_t address, uint64_t size) { +bool ReserveFixed(uint64_t address, uint64_t size) { auto ptr = reinterpret_cast( VirtualAlloc(reinterpret_cast(static_cast(address)), size, static_cast(MEM_RESERVE), PAGE_NOACCESS)); @@ -276,7 +274,7 @@ bool SysVirtualReserveFixed(uint64_t address, uint64_t size) { return true; } -bool SysVirtualDecommit(uint64_t address, uint64_t size) { +bool Decommit(uint64_t address, uint64_t size) { if (VirtualFree(reinterpret_cast(static_cast(address)), size, MEM_DECOMMIT) == 0) { printf("VirtualFree(MEM_DECOMMIT) failed: 0x%08" PRIx32 "\n", @@ -286,7 +284,7 @@ bool SysVirtualDecommit(uint64_t address, uint64_t size) { return true; } -bool SysVirtualFree(uint64_t address) { +bool Free(uint64_t address) { if (VirtualFree(reinterpret_cast(static_cast(address)), 0, MEM_RELEASE) == 0) { printf("VirtualFree() failed: 0x%08" PRIx32 "\n", static_cast(GetLastError())); @@ -295,7 +293,7 @@ bool SysVirtualFree(uint64_t address) { return true; } -bool SysVirtualFreeRange(uint64_t address, uint64_t size) { +bool FreeRange(uint64_t address, uint64_t size) { if (address == 0 || size == 0) { return false; } @@ -313,10 +311,10 @@ bool SysVirtualFreeRange(uint64_t address, uint64_t size) { } current = next; } - return current - address == size && SysVirtualFree(address); + return current - address == size && Free(address); } -bool SysVirtualProtect(uint64_t address, uint64_t size, VirtualMemory::Mode mode) { +bool Protect(uint64_t address, uint64_t size, Mode mode) { DWORD old_protect = 0; if (VirtualProtect(reinterpret_cast(static_cast(address)), size, GetProtectionFlag(mode), &old_protect) == 0) { @@ -326,7 +324,7 @@ bool SysVirtualProtect(uint64_t address, uint64_t size, VirtualMemory::Mode mode return true; } -bool SysVirtualFlushInstructionCache(uint64_t address, uint64_t size) { +bool FlushInstructionCache(uint64_t address, uint64_t size) { if (::FlushInstructionCache(GetCurrentProcess(), reinterpret_cast(static_cast(address)), size) == 0) { @@ -337,6 +335,6 @@ bool SysVirtualFlushInstructionCache(uint64_t address, uint64_t size) { return true; } -} // namespace Common +} // namespace Common::VirtualMemory #endif diff --git a/src/common/virtualMemory.cpp b/src/common/virtualMemory.cpp deleted file mode 100644 index d5e48dde8..000000000 --- a/src/common/virtualMemory.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "common/virtualMemory.h" - -#include "common/platform/sysVirtual.h" - -namespace Common { - -namespace VirtualMemory { - -void Init() { - SysVirtualInit(); -} - -uint64_t Alloc(uint64_t address, uint64_t size, Mode mode) { - return SysVirtualAlloc(address, size, mode); -} - -uint64_t AllocAligned(uint64_t address, uint64_t size, Mode mode, uint64_t alignment) { - return SysVirtualAllocAligned(address, size, mode, alignment); -} - -bool AllocFixed(uint64_t address, uint64_t size, Mode mode) { - return SysVirtualAllocFixed(address, size, mode); -} - -bool Commit(uint64_t address, uint64_t size, Mode mode) { - return SysVirtualCommit(address, size, mode); -} - -uint64_t Reserve(uint64_t address, uint64_t size) { - return SysVirtualReserve(address, size); -} - -uint64_t ReserveAligned(uint64_t address, uint64_t size, uint64_t alignment) { - return SysVirtualReserveAligned(address, size, alignment); -} - -bool ReserveFixed(uint64_t address, uint64_t size) { - return SysVirtualReserveFixed(address, size); -} - -bool Decommit(uint64_t address, uint64_t size) { - return SysVirtualDecommit(address, size); -} - -bool Free(uint64_t address) { - return SysVirtualFree(address); -} - -bool FreeRange(uint64_t address, uint64_t size) { - return SysVirtualFreeRange(address, size); -} - -bool Protect(uint64_t address, uint64_t size, Mode mode) { - return SysVirtualProtect(address, size, mode); -} - -bool FlushInstructionCache(uint64_t address, uint64_t size) { - return SysVirtualFlushInstructionCache(address, size); -} - -} // namespace VirtualMemory - -} // namespace Common