Skip to content

Commit 5edd9ff

Browse files
Improved sceKernelMapNamedFlexibleMemory logging (#3050)
* More descriptive sceKernelMapNamedFlexibleMemory logging * Misc exports These functions are used by Overwatch: Origins Edition * Clang * Function parameter cleanup Changes the parameters on our sceKernelMapNamedFlexibleMemory and sceKernelMapFlexibleMemory functions to better align with our current standards.
1 parent 91d2945 commit 5edd9ff

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

src/core/libraries/kernel/kernel.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,10 @@ void RegisterKernel(Core::Loader::SymbolsResolver* sym) {
273273
Libraries::Net::sceNetInetNtop); // TODO fix it to sys_ ...
274274
LIB_FUNCTION("4n51s0zEf0c", "libScePosix", 1, "libkernel", 1, 1,
275275
Libraries::Net::sceNetInetPton); // TODO fix it to sys_ ...
276+
LIB_FUNCTION("XVL8So3QJUk", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_connect);
277+
LIB_FUNCTION("3e+4Iv7IJ8U", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_accept);
278+
LIB_FUNCTION("aNeavPDNKzA", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_sendmsg);
279+
LIB_FUNCTION("pxnCmagrtao", "libScePosix", 1, "libkernel", 1, 1, Libraries::Net::sys_listen);
276280
}
277281

278282
} // namespace Libraries::Kernel

src/core/libraries/kernel/memory.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,10 @@ s32 PS4_SYSV_ABI sceKernelMapDirectMemory2(void** addr, u64 len, s32 type, s32 p
222222
return ret;
223223
}
224224

225-
s32 PS4_SYSV_ABI sceKernelMapNamedFlexibleMemory(void** addr_in_out, std::size_t len, int prot,
226-
int flags, const char* name) {
227-
225+
s32 PS4_SYSV_ABI sceKernelMapNamedFlexibleMemory(void** addr_in_out, u64 len, s32 prot, s32 flags,
226+
const char* name) {
227+
LOG_INFO(Kernel_Vmm, "in_addr = {}, len = {:#x}, prot = {:#x}, flags = {:#x}, name = '{}'",
228+
fmt::ptr(*addr_in_out), len, prot, flags, name);
228229
if (len == 0 || !Common::Is16KBAligned(len)) {
229230
LOG_ERROR(Kernel_Vmm, "len is 0 or not 16kb multiple");
230231
return ORBIS_KERNEL_ERROR_EINVAL;
@@ -243,18 +244,14 @@ s32 PS4_SYSV_ABI sceKernelMapNamedFlexibleMemory(void** addr_in_out, std::size_t
243244
const VAddr in_addr = reinterpret_cast<VAddr>(*addr_in_out);
244245
const auto mem_prot = static_cast<Core::MemoryProt>(prot);
245246
const auto map_flags = static_cast<Core::MemoryMapFlags>(flags);
246-
SCOPE_EXIT {
247-
LOG_INFO(Kernel_Vmm,
248-
"in_addr = {:#x}, out_addr = {}, len = {:#x}, prot = {:#x}, flags = {:#x}",
249-
in_addr, fmt::ptr(*addr_in_out), len, prot, flags);
250-
};
251247
auto* memory = Core::Memory::Instance();
252-
return memory->MapMemory(addr_in_out, in_addr, len, mem_prot, map_flags,
253-
Core::VMAType::Flexible, name);
248+
const auto ret = memory->MapMemory(addr_in_out, in_addr, len, mem_prot, map_flags,
249+
Core::VMAType::Flexible, name);
250+
LOG_INFO(Kernel_Vmm, "out_addr = {}", fmt::ptr(*addr_in_out));
251+
return ret;
254252
}
255253

256-
s32 PS4_SYSV_ABI sceKernelMapFlexibleMemory(void** addr_in_out, std::size_t len, int prot,
257-
int flags) {
254+
s32 PS4_SYSV_ABI sceKernelMapFlexibleMemory(void** addr_in_out, u64 len, s32 prot, s32 flags) {
258255
return sceKernelMapNamedFlexibleMemory(addr_in_out, len, prot, flags, "anon");
259256
}
260257

src/core/libraries/kernel/memory.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,9 @@ s32 PS4_SYSV_ABI sceKernelAvailableDirectMemorySize(u64 searchStart, u64 searchE
141141
s32 PS4_SYSV_ABI sceKernelVirtualQuery(const void* addr, int flags, OrbisVirtualQueryInfo* info,
142142
size_t infoSize);
143143
s32 PS4_SYSV_ABI sceKernelReserveVirtualRange(void** addr, u64 len, int flags, u64 alignment);
144-
s32 PS4_SYSV_ABI sceKernelMapNamedFlexibleMemory(void** addrInOut, std::size_t len, int prot,
145-
int flags, const char* name);
146-
s32 PS4_SYSV_ABI sceKernelMapFlexibleMemory(void** addr_in_out, std::size_t len, int prot,
147-
int flags);
144+
s32 PS4_SYSV_ABI sceKernelMapNamedFlexibleMemory(void** addr_in_out, u64 len, s32 prot, s32 flags,
145+
const char* name);
146+
s32 PS4_SYSV_ABI sceKernelMapFlexibleMemory(void** addr_in_out, u64 len, s32 prot, s32 flags);
148147
int PS4_SYSV_ABI sceKernelQueryMemoryProtection(void* addr, void** start, void** end, u32* prot);
149148

150149
s32 PS4_SYSV_ABI sceKernelMprotect(const void* addr, u64 size, s32 prot);

src/core/libraries/kernel/threads/mutex.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ void RegisterMutex(Core::Loader::SymbolsResolver* sym) {
426426
// Posix
427427
LIB_FUNCTION("ttHNfU+qDBU", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_init);
428428
LIB_FUNCTION("7H0iTOciTLo", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_lock);
429+
LIB_FUNCTION("Io9+nTKXZtA", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_timedlock);
429430
LIB_FUNCTION("2Z+PpY6CaJg", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_unlock);
430431
LIB_FUNCTION("ltCfaGr2JGE", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_destroy);
431432
LIB_FUNCTION("dQHWEsJtoE4", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutexattr_init);

0 commit comments

Comments
 (0)