From 56c440ba2455cf554ba3d32bda59b3983282379f Mon Sep 17 00:00:00 2001 From: raphaelthegreat <47210458+raphaelthegreat@users.noreply.github.com> Date: Mon, 10 Jun 2024 19:45:00 +0300 Subject: [PATCH] kernel: Move sceKernelReleaseDirectMemory where it belongs --- src/core/libraries/kernel/libkernel.h | 2 +- src/core/libraries/kernel/memory_management.cpp | 6 ++++++ src/core/libraries/kernel/memory_management.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/libraries/kernel/libkernel.h b/src/core/libraries/kernel/libkernel.h index 561482867..8f1690e49 100644 --- a/src/core/libraries/kernel/libkernel.h +++ b/src/core/libraries/kernel/libkernel.h @@ -18,7 +18,7 @@ struct OrbisTimesec { u32 dst_sec; }; -int32_t PS4_SYSV_ABI sceKernelReleaseDirectMemory(off_t start, size_t len); +int32_t PS4_SYSV_ABI sceKernelReleaseDirectMemory(size_t start, size_t len); int* PS4_SYSV_ABI __Error(); void LibKernel_Register(Core::Loader::SymbolsResolver* sym); diff --git a/src/core/libraries/kernel/memory_management.cpp b/src/core/libraries/kernel/memory_management.cpp index 05ff359b6..8aa7364a8 100644 --- a/src/core/libraries/kernel/memory_management.cpp +++ b/src/core/libraries/kernel/memory_management.cpp @@ -62,6 +62,12 @@ s32 PS4_SYSV_ABI sceKernelCheckedReleaseDirectMemory(u64 start, size_t len) { return ORBIS_OK; } +s32 PS4_SYSV_ABI sceKernelReleaseDirectMemory(u64 start, size_t len) { + auto* memory = Core::Memory::Instance(); + memory->Free(start, len); + return ORBIS_OK; +} + s32 PS4_SYSV_ABI sceKernelVirtualQuery(const void* addr, int flags, OrbisVirtualQueryInfo* info, size_t infoSize) { LOG_INFO(Kernel_Vmm, "called addr = {}, flags = {:#x}", fmt::ptr(addr), flags); diff --git a/src/core/libraries/kernel/memory_management.h b/src/core/libraries/kernel/memory_management.h index 651395324..4596dbad2 100644 --- a/src/core/libraries/kernel/memory_management.h +++ b/src/core/libraries/kernel/memory_management.h @@ -63,6 +63,7 @@ int PS4_SYSV_ABI sceKernelMapDirectMemory(void** addr, u64 len, int prot, int fl s64 directMemoryStart, u64 alignment); s32 PS4_SYSV_ABI sceKernelAllocateMainDirectMemory(size_t len, size_t alignment, int memoryType, s64* physAddrOut); +s32 PS4_SYSV_ABI sceKernelReleaseDirectMemory(u64 start, size_t len); s32 PS4_SYSV_ABI sceKernelCheckedReleaseDirectMemory(u64 start, size_t len); s32 PS4_SYSV_ABI sceKernelVirtualQuery(const void* addr, int flags, OrbisVirtualQueryInfo* info, size_t infoSize);