shadPS4/src/core/hle/libraries/libkernel/libkernel.cpp

56 lines
2.1 KiB
C++
Raw Normal View History

2023-11-05 12:41:10 +01:00
#include "common/log.h"
#include "common/debug.h"
#include "common/singleton.h"
2023-11-06 00:11:54 +01:00
#include "core/loader/elf.h"
#include "core/hle/kernel/Objects/physical_memory.h"
#include "core/hle/kernel/cpu_management.h"
#include "core/hle/kernel/event_queues.h"
#include "core/hle/kernel/memory_management.h"
#include "core/hle/libraries/libkernel/libkernel.h"
2023-10-31 07:47:58 +01:00
#include "core/hle/libraries/libkernel/file_system.h"
#include "core/hle/libraries/libkernel/time_management.h"
2023-11-06 00:11:54 +01:00
#include "core/hle/libraries/libs.h"
#ifdef _WIN64
#include <windows.h>
#endif
2023-07-13 11:56:36 +02:00
2023-11-06 00:11:54 +01:00
namespace Core::Libraries::LibKernel {
2023-07-13 11:56:36 +02:00
2023-10-06 20:49:53 +02:00
static u64 g_stack_chk_guard = 0xDEADBEEF54321ABC; // dummy return
2023-07-13 11:56:36 +02:00
2023-10-06 20:49:53 +02:00
int32_t PS4_SYSV_ABI sceKernelReleaseDirectMemory(off_t start, size_t len) {
BREAKPOINT();
return 0;
}
2023-07-14 13:29:13 +02:00
2023-11-06 00:11:54 +01:00
static PS4_SYSV_ABI void stack_chk_fail() {
BREAKPOINT();
}
int PS4_SYSV_ABI sceKernelMunmap(void* addr, size_t len) {
BREAKPOINT();
}
2023-11-06 00:11:54 +01:00
void LibKernel_Register(Loader::SymbolsResolver* sym) {
2023-10-06 20:49:53 +02:00
// obj
2023-11-06 00:11:54 +01:00
LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", 1, 1, &g_stack_chk_guard);
2023-10-06 20:49:53 +02:00
// memory
2023-11-06 00:11:54 +01:00
LIB_FUNCTION("rTXw65xmLIA", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelAllocateDirectMemory);
LIB_FUNCTION("pO96TwzOm5E", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelGetDirectMemorySize);
LIB_FUNCTION("L-Q3LEjIbgA", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelMapDirectMemory);
2023-10-06 20:49:53 +02:00
LIB_FUNCTION("MBuItvba6z8", "libkernel", 1, "libkernel", 1, 1, sceKernelReleaseDirectMemory);
LIB_FUNCTION("cQke9UuBQOk", "libkernel", 1, "libkernel", 1, 1, sceKernelMunmap);
// equeue
2023-11-06 00:11:54 +01:00
LIB_FUNCTION("D0OdFMjp46I", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelCreateEqueue);
LIB_FUNCTION("fzyMKs9kim0", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelWaitEqueue);
2023-10-06 20:49:53 +02:00
// misc
2023-11-06 00:11:54 +01:00
LIB_FUNCTION("WslcK1FQcGI", "libkernel", 1, "libkernel", 1, 1, Kernel::sceKernelIsNeoMode);
2023-10-06 20:49:53 +02:00
LIB_FUNCTION("Ou3iL1abvng", "libkernel", 1, "libkernel", 1, 1, stack_chk_fail);
2023-10-30 22:04:57 +01:00
Core::Libraries::LibKernel::fileSystemSymbolsRegister(sym);
Core::Libraries::LibKernel::timeSymbolsRegister(sym);
2023-10-06 20:49:53 +02:00
}
2023-07-13 11:56:36 +02:00
2023-11-06 00:11:54 +01:00
} // namespace Core::Libraries::LibKernel