From 4c8719d33d831535d07dfb5bd4090fbd56914fbf Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Sun, 19 May 2024 10:58:34 +0300 Subject: [PATCH] stubbed event_flag functions --- CMakeLists.txt | 4 +- .../kernel/event_flag/event_flag.cpp | 57 +++++++++++++++++++ .../libraries/kernel/event_flag/event_flag.h | 25 ++++++++ src/core/libraries/kernel/libkernel.cpp | 2 + 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 src/core/libraries/kernel/event_flag/event_flag.cpp create mode 100644 src/core/libraries/kernel/event_flag/event_flag.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 3aefcd8b..7d05e6f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,7 +100,9 @@ set(GNM_LIB src/core/libraries/gnmdriver/gnmdriver.cpp src/core/libraries/gnmdriver/gnmdriver.h ) -set(KERNEL_LIB src/core/libraries/kernel/cpu_management.cpp +set(KERNEL_LIB src/core/libraries/kernel/event_flag/event_flag.cpp + src/core/libraries/kernel/event_flag/event_flag.h + src/core/libraries/kernel/cpu_management.cpp src/core/libraries/kernel/cpu_management.h src/core/libraries/kernel/event_queue.cpp src/core/libraries/kernel/event_queue.h diff --git a/src/core/libraries/kernel/event_flag/event_flag.cpp b/src/core/libraries/kernel/event_flag/event_flag.cpp new file mode 100644 index 00000000..22c3ee78 --- /dev/null +++ b/src/core/libraries/kernel/event_flag/event_flag.cpp @@ -0,0 +1,57 @@ +// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "common/logging/log.h" +#include "core/libraries/error_codes.h" +#include "core/libraries/libs.h" +#include "event_flag.h" + +namespace Libraries::Kernel { +int PS4_SYSV_ABI sceKernelCreateEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelDeleteEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelOpenEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelCloseEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelClearEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelCancelEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelSetEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelPollEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +int PS4_SYSV_ABI sceKernelWaitEventFlag() { + LOG_ERROR(Kernel_Event, "(STUBBED) called"); + return ORBIS_OK; +} +void RegisterKernelEventFlag(Core::Loader::SymbolsResolver* sym) { + LIB_FUNCTION("PZku4ZrXJqg", "libkernel", 1, "libkernel", 1, 1, sceKernelCancelEventFlag); + LIB_FUNCTION("7uhBFWRAS60", "libkernel", 1, "libkernel", 1, 1, sceKernelClearEventFlag); + LIB_FUNCTION("s9-RaxukuzQ", "libkernel", 1, "libkernel", 1, 1, sceKernelCloseEventFlag); + LIB_FUNCTION("BpFoboUJoZU", "libkernel", 1, "libkernel", 1, 1, sceKernelCreateEventFlag); + LIB_FUNCTION("8mql9OcQnd4", "libkernel", 1, "libkernel", 1, 1, sceKernelDeleteEventFlag); + LIB_FUNCTION("1vDaenmJtyA", "libkernel", 1, "libkernel", 1, 1, sceKernelOpenEventFlag); + LIB_FUNCTION("9lvj5DjHZiA", "libkernel", 1, "libkernel", 1, 1, sceKernelPollEventFlag); + LIB_FUNCTION("IOnSvHzqu6A", "libkernel", 1, "libkernel", 1, 1, sceKernelSetEventFlag); + LIB_FUNCTION("JTvBflhYazQ", "libkernel", 1, "libkernel", 1, 1, sceKernelWaitEventFlag); +} +} // namespace Libraries::Kernel \ No newline at end of file diff --git a/src/core/libraries/kernel/event_flag/event_flag.h b/src/core/libraries/kernel/event_flag/event_flag.h new file mode 100644 index 00000000..d986d284 --- /dev/null +++ b/src/core/libraries/kernel/event_flag/event_flag.h @@ -0,0 +1,25 @@ +// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/types.h" + +namespace Core::Loader { +class SymbolsResolver; +} + +namespace Libraries::Kernel { +int PS4_SYSV_ABI sceKernelCreateEventFlag(); +int PS4_SYSV_ABI sceKernelDeleteEventFlag(); +int PS4_SYSV_ABI sceKernelOpenEventFlag(); +int PS4_SYSV_ABI sceKernelCloseEventFlag(); +int PS4_SYSV_ABI sceKernelClearEventFlag(); +int PS4_SYSV_ABI sceKernelCancelEventFlag(); +int PS4_SYSV_ABI sceKernelSetEventFlag(); +int PS4_SYSV_ABI sceKernelPollEventFlag(); +int PS4_SYSV_ABI sceKernelWaitEventFlag(); + +void RegisterKernelEventFlag(Core::Loader::SymbolsResolver* sym); + +} // namespace Libraries::Kernel \ No newline at end of file diff --git a/src/core/libraries/kernel/libkernel.cpp b/src/core/libraries/kernel/libkernel.cpp index 003e45e1..cefaf686 100644 --- a/src/core/libraries/kernel/libkernel.cpp +++ b/src/core/libraries/kernel/libkernel.cpp @@ -8,6 +8,7 @@ #include "common/singleton.h" #include "core/libraries/error_codes.h" #include "core/libraries/kernel/cpu_management.h" +#include "core/libraries/kernel/event_flag/event_flag.h" #include "core/libraries/kernel/event_queues.h" #include "core/libraries/kernel/file_system.h" #include "core/libraries/kernel/libkernel.h" @@ -229,6 +230,7 @@ void LibKernel_Register(Core::Loader::SymbolsResolver* sym) { Libraries::Kernel::fileSystemSymbolsRegister(sym); Libraries::Kernel::timeSymbolsRegister(sym); Libraries::Kernel::pthreadSymbolsRegister(sym); + Libraries::Kernel::RegisterKernelEventFlag(sym); // temp LIB_FUNCTION("NWtTN10cJzE", "libSceLibcInternalExt", 1, "libSceLibcInternal", 1, 1,