From 94cd3be814cdcd00fc43473c8e42365c086e1293 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Sat, 30 Mar 2024 15:34:01 +0200 Subject: [PATCH] dummy sysmodule module --- CMakeLists.txt | 2 + src/common/logging/filter.cpp | 1 + src/common/logging/types.h | 5 +- src/core/hle/libraries/libs.cpp | 2 + src/core/libraries/libscessl.cpp | 2 +- src/core/libraries/libscesysmodule.cpp | 134 ++++++++++++++++++++ src/core/libraries/libscesysmodule.h | 164 +++++++++++++++++++++++++ 7 files changed, 307 insertions(+), 3 deletions(-) create mode 100644 src/core/libraries/libscesysmodule.cpp create mode 100644 src/core/libraries/libscesysmodule.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 63a16126..d18fa0c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,6 +114,8 @@ set(LIBRARIES src/core/libraries/library_common.h src/core/libraries/libscesavedata.h src/core/libraries/libscessl.cpp src/core/libraries/libscessl.h + src/core/libraries/libscesysmodule.cpp + src/core/libraries/libscesysmodule.h src/core/libraries/libscesystemservice.cpp src/core/libraries/libscesystemservice.h src/core/libraries/libsceuserservice.cpp diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp index 0ee022de..0714362c 100644 --- a/src/common/logging/filter.cpp +++ b/src/common/logging/filter.cpp @@ -93,6 +93,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) { SUB(Lib, SaveData) \ SUB(Lib, Http) \ SUB(Lib, Ssl) \ + SUB(Lib, SysModule) \ CLS(Frontend) \ CLS(Render) \ SUB(Render, Vulkan) \ diff --git a/src/common/logging/types.h b/src/common/logging/types.h index 9fa50412..0d4fb575 100644 --- a/src/common/logging/types.h +++ b/src/common/logging/types.h @@ -58,8 +58,9 @@ enum class Class : u8 { Lib_Net, ///< The LibSceNet implementation. Lib_NetCtl, ///< The LibSecNetCtl implementation. Lib_SaveData, ///< The LibSceSaveData implementation. - Lib_Ssl, ///< The LibSsl implementation. - Lib_Http, ///< The LibHttp implementation. + Lib_Ssl, ///< The LibSceSsl implementation. + Lib_Http, ///< The LibSceHttp implementation. + Lib_SysModule, ///< The LibSceSysModule implementation Frontend, ///< Emulator UI Render, ///< Video Core Render_Vulkan, ///< Vulkan backend diff --git a/src/core/hle/libraries/libs.cpp b/src/core/hle/libraries/libs.cpp index 2c8aedc8..a58c3e92 100644 --- a/src/core/hle/libraries/libs.cpp +++ b/src/core/hle/libraries/libs.cpp @@ -18,6 +18,7 @@ #include "src/core/libraries/libscessl.h" #include "src/core/libraries/libscesystemservice.h" #include "src/core/libraries/libsceuserservice.h" +#include "src/core/libraries/libscesysmodule.h" namespace OldLibraries { @@ -41,6 +42,7 @@ void InitHLELibs(Core::Loader::SymbolsResolver* sym) { Libraries::NetCtl::RegisterlibSceNetCtl(sym); Libraries::SaveData::RegisterlibSceSaveData(sym); Libraries::Ssl::RegisterlibSceSsl(sym); + Libraries::SysModule::RegisterlibSceSysmodule(sym); } } // namespace OldLibraries diff --git a/src/core/libraries/libscessl.cpp b/src/core/libraries/libscessl.cpp index 2d95dd50..3a3a0ff2 100644 --- a/src/core/libraries/libscessl.cpp +++ b/src/core/libraries/libscessl.cpp @@ -694,7 +694,7 @@ int PS4_SYSV_ABI sceSslGetSubjectName() { } int PS4_SYSV_ABI sceSslInit(std::size_t poolSize) { - LOG_ERROR(Lib_Ssl, "(DUMMY) called poolSize = {}",poolSize); + LOG_ERROR(Lib_Ssl, "(DUMMY) called poolSize = {}", poolSize); //return a value >1 static int id = 0; return ++id; diff --git a/src/core/libraries/libscesysmodule.cpp b/src/core/libraries/libscesysmodule.cpp new file mode 100644 index 00000000..d47ff136 --- /dev/null +++ b/src/core/libraries/libscesysmodule.cpp @@ -0,0 +1,134 @@ +// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +// Generated By moduleGenerator +#include +#include "common/logging/log.h" +#include "error_codes.h" +#include "libscesysmodule.h" + +namespace Libraries::SysModule { + +int PS4_SYSV_ABI sceSysmoduleGetModuleHandleInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleGetModuleInfoForUnwind() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleIsCalledFromSysModule() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleIsCameraPreloaded() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleIsLoaded() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleIsLoadedInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +template <> +struct magic_enum::customize::enum_range { + static constexpr int min = 0; + static constexpr int max = 300; +}; + +int PS4_SYSV_ABI sceSysmoduleLoadModule(OrbisSysModule id) { + auto color_name = magic_enum::enum_name(id); + LOG_ERROR(Lib_SysModule, "(DUMMY) called module = {}", magic_enum::enum_name(id)); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleLoadModuleByNameInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleLoadModuleInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleLoadModuleInternalWithArg() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleMapLibcForLibkernel() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmodulePreloadModuleForLibkernel() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleUnloadModule() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleUnloadModuleByNameInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleUnloadModuleInternal() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +int PS4_SYSV_ABI sceSysmoduleUnloadModuleInternalWithArg() { + LOG_ERROR(Lib_SysModule, "(STUBBED) called"); + return ORBIS_OK; +} + +void RegisterlibSceSysmodule(Core::Loader::SymbolsResolver* sym) { + LIB_FUNCTION("D8cuU4d72xM", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleGetModuleHandleInternal); + LIB_FUNCTION("4fU5yvOkVG4", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleGetModuleInfoForUnwind); + LIB_FUNCTION("ctfO7dQ7geg", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleIsCalledFromSysModule); + LIB_FUNCTION("no6T3EfiS3E", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleIsCameraPreloaded); + LIB_FUNCTION("fMP5NHUOaMk", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleIsLoaded); + LIB_FUNCTION("ynFKQ5bfGks", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleIsLoadedInternal); + LIB_FUNCTION("g8cM39EUZ6o", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleLoadModule); + LIB_FUNCTION("CU8m+Qs+HN4", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleLoadModuleByNameInternal); + LIB_FUNCTION("39iV5E1HoCk", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleLoadModuleInternal); + LIB_FUNCTION("hHrGoGoNf+s", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleLoadModuleInternalWithArg); + LIB_FUNCTION("lZ6RvVl0vo0", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleMapLibcForLibkernel); + LIB_FUNCTION("DOO+zuW1lrE", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmodulePreloadModuleForLibkernel); + LIB_FUNCTION("eR2bZFAAU0Q", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleUnloadModule); + LIB_FUNCTION("vpTHmA6Knvg", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleUnloadModuleByNameInternal); + LIB_FUNCTION("vXZhrtJxkGc", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleUnloadModuleInternal); + LIB_FUNCTION("aKa6YfBKZs4", "libSceSysmodule", 1, "libSceSysmodule", 1, 1, + sceSysmoduleUnloadModuleInternalWithArg); +}; + +} // namespace Libraries::SysModule \ No newline at end of file diff --git a/src/core/libraries/libscesysmodule.h b/src/core/libraries/libscesysmodule.h new file mode 100644 index 00000000..7f58fe7b --- /dev/null +++ b/src/core/libraries/libscesysmodule.h @@ -0,0 +1,164 @@ +// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "library_common.h" + +namespace Libraries::SysModule { + +enum class OrbisSysModule : u16 { + ORBIS_SYSMODULE_INVALID = 0x0000, + ORBIS_SYSMODULE_FIBER = 0x0006, // libSceFiber.sprx + ORBIS_SYSMODULE_ULT = 0x0007, // libSceUlt.sprx + ORBIS_SYSMODULE_NGS2 = 0x000B, // libSceNgs2.sprx + ORBIS_SYSMODULE_XML = 0x0017, // libSceXml.sprx + ORBIS_SYSMODULE_NP_UTILITY = 0x0019, // libSceNpUtility.sprx + ORBIS_SYSMODULE_VOICE = 0x001A, // libSceVoice.sprx + ORBIS_SYSMODULE_VOICEQOS = 0x001B, // libSceVoiceQos.sprx + ORBIS_SYSMODULE_NP_MATCHING2 = 0x001C, // libSceNpMatching2.sprx + ORBIS_SYSMODULE_NP_SCORE_RANKING = 0x001E, // libSceNpScoreRanking.sprx + ORBIS_SYSMODULE_RUDP = 0x0021, // libSceRudp.sprx + ORBIS_SYSMODULE_NP_TUS = 0x002C, // libSceNpTus.sprx + ORBIS_SYSMODULE_FACE = 0x0038, + ORBIS_SYSMODULE_SMART = 0x0039, + ORBIS_SYSMODULE_JSON = 0x0080, + ORBIS_SYSMODULE_GAME_LIVE_STREAMING = 0x0081, // libSceGameLiveStreaming.sprx + ORBIS_SYSMODULE_COMPANION_UTIL = 0x0082, // libSceCompanionUtil.sprx + ORBIS_SYSMODULE_PLAYGO = 0x0083, // libScePlayGo.sprx + ORBIS_SYSMODULE_FONT = 0x0084, // libSceFont.sprx + ORBIS_SYSMODULE_VIDEO_RECORDING = 0x0085, // libSceVideoRecording.sprx + ORBIS_SYSMODULE_S3DCONVERSION = 0x0086, + ORBIS_SYSMODULE_AUDIODEC = 0x0088, // libSceAudiodec.sprx + ORBIS_SYSMODULE_JPEG_DEC = 0x008A, // libSceJpegDec.sprx + ORBIS_SYSMODULE_JPEG_ENC = 0x008B, // libSceJpegEnc.sprx + ORBIS_SYSMODULE_PNG_DEC = 0x008C, // libScePngDec.sprx + ORBIS_SYSMODULE_PNG_ENC = 0x008D, // libScePngEnc.sprx + ORBIS_SYSMODULE_VIDEODEC = 0x008E, // libSceVideodec.sprx + ORBIS_SYSMODULE_MOVE = 0x008F, // libSceMove.sprx + ORBIS_SYSMODULE_PAD_TRACKER = 0x0091, // libScePadTracker.sprx + ORBIS_SYSMODULE_DEPTH = 0x0092, // libSceDepth.sprx + ORBIS_SYSMODULE_HAND = 0x0093, + ORBIS_SYSMODULE_LIBIME = 0x0095, // libSceIme.sprx + ORBIS_SYSMODULE_IME_DIALOG = 0x0096, // libSceImeDialog.sprx + ORBIS_SYSMODULE_NP_PARTY = 0x0097, // libSceNpParty.sprx + ORBIS_SYSMODULE_FONT_FT = 0x0098, // libSceFontFt.sprx + ORBIS_SYSMODULE_FREETYPE_OT = 0x0099, // libSceFreeTypeOt.sprx + ORBIS_SYSMODULE_FREETYPE_OL = 0x009A, // libSceFreeTypeOl.sprx + ORBIS_SYSMODULE_FREETYPE_OPT_OL = 0x009B, // libSceFreeTypeOptOl.sprx + ORBIS_SYSMODULE_SCREEN_SHOT = 0x009C, // libSceScreenShot.sprx + ORBIS_SYSMODULE_NP_AUTH = 0x009D, // libSceNpAuth.sprx + ORBIS_SYSMODULE_SULPHA = 0x009F, + ORBIS_SYSMODULE_SAVE_DATA_DIALOG = 0x00A0, // libSceSaveDataDialog.sprx + ORBIS_SYSMODULE_INVITATION_DIALOG = 0x00A2, // libSceInvitationDialog.sprx + ORBIS_SYSMODULE_DEBUG_KEYBOARD = 0x00A3, + ORBIS_SYSMODULE_MESSAGE_DIALOG = 0x00A4, // libSceMsgDialog.sprx + ORBIS_SYSMODULE_AV_PLAYER = 0x00A5, // libSceAvPlayer.sprx + ORBIS_SYSMODULE_CONTENT_EXPORT = 0x00A6, // libSceContentExport.sprx + ORBIS_SYSMODULE_AUDIO_3D = 0x00A7, // libSceAudio3d.sprx + ORBIS_SYSMODULE_NP_COMMERCE = 0x00A8, // libSceNpCommerce.sprx + ORBIS_SYSMODULE_MOUSE = 0x00A9, // libSceMouse.sprx + ORBIS_SYSMODULE_COMPANION_HTTPD = 0x00AA, // libSceCompanionHttpd.sprx + ORBIS_SYSMODULE_WEB_BROWSER_DIALOG = 0x00AB, // libSceWebBrowserDialog.sprx + ORBIS_SYSMODULE_ERROR_DIALOG = 0x00AC, // libSceErrorDialog.sprx + ORBIS_SYSMODULE_NP_TROPHY = 0x00AD, // libSceNpTrophy.sprx + ORBIS_SYSMODULE_VIDEO_CORE_IF = 0x00AE, // libSceVideoCoreInterface.sprx + ORBIS_SYSMODULE_VIDEO_CORE_SERVER_IF = 0x00AF, // libSceVideoCoreServerInterface.sprx + ORBIS_SYSMODULE_NP_SNS_FACEBOOK = 0x00B0, // libSceNpSnsFacebookDialog.sprx + ORBIS_SYSMODULE_MOVE_TRACKER = 0x00B1, // libSceMoveTracker.sprx + ORBIS_SYSMODULE_NP_PROFILE_DIALOG = 0x00B2, // libSceNpProfileDialog.sprx + ORBIS_SYSMODULE_NP_FRIEND_LIST_DIALOG = 0x00B3, // libSceNpFriendListDialog.sprx + ORBIS_SYSMODULE_APP_CONTENT = 0x00B4, // libSceAppContent.sprx + ORBIS_SYSMODULE_NP_SIGNALING = 0x00B5, // libSceNpSignaling.sprx + ORBIS_SYSMODULE_REMOTE_PLAY = 0x00B6, // libSceRemoteplay.sprx + ORBIS_SYSMODULE_USBD = 0x00B7, // libSceUsbd.sprx + ORBIS_SYSMODULE_GAME_CUSTOM_DATA_DIALOG = 0x00B8, // libSceGameCustomDataDialog.sprx + ORBIS_SYSMODULE_NP_EULA_DIALOG = 0x00B9, // libSceNpEulaDialog.sprx + ORBIS_SYSMODULE_RANDOM = 0x00BA, // libSceRandom.sprx + ORBIS_SYSMODULE_RESERVED2 = 0x00BB, + ORBIS_SYSMODULE_M4AAC_ENC = 0x00BC, // libSceM4aacEnc.sprx + ORBIS_SYSMODULE_AUDIODEC_CPU = 0x00BD, // libSceAudiodecCpu.sprx + ORBIS_SYSMODULE_AUDIODEC_CPU_DDP = 0x00BE, // libSceAudiodecCpuDdp.sprx + ORBIS_SYSMODULE_AUDIODEC_CPU_M4AAC = 0x00C0, // libSceAudiodecCpuM4aac.sprx + ORBIS_SYSMODULE_BEMP2_SYS = 0x00C1, // libSceBemp2sys.sprx + ORBIS_SYSMODULE_BEISOBMF = 0x00C2, // libSceBeisobmf.sprx + ORBIS_SYSMODULE_PLAY_READY = 0x00C3, // libScePlayReady.sprx + ORBIS_SYSMODULE_VIDEO_NATIVE_EXT_ESSENTIAL = 0x00C4, // libSceVideoNativeExtEssential.sprx + ORBIS_SYSMODULE_ZLIB = 0x00C5, // libSceZlib.sprx + ORBIS_SYSMODULE_DTCP_IP = 0x00C6, // libSceDtcpIp.sprx + ORBIS_SYSMODULE_CONTENT_SEARCH = 0x00C7, // libSceContentSearch.sprx + ORBIS_SYSMODULE_SHARE_UTILITY = 0x00C8, // libSceShareUtility.sprx + ORBIS_SYSMODULE_AUDIODEC_CPU_DTS_HD_LBR = 0x00C9, // libSceAudiodecCpuDtsHdLbr.sprx + ORBIS_SYSMODULE_DECI4H = 0x00CA, + ORBIS_SYSMODULE_HEAD_TRACKER = 0x00CB, + ORBIS_SYSMODULE_GAME_UPDATE = 0x00CC, // libSceGameUpdate.sprx + ORBIS_SYSMODULE_AUTO_MOUNTER_CLIENT = 0x00CD, // libSceAutoMounterClient.sprx + ORBIS_SYSMODULE_SYSTEM_GESTURE = 0x00CE, // libSceSystemGesture.sprx + ORBIS_SYSMODULE_VIDEODEC2 = 0x00CF, + ORBIS_SYSMODULE_VDECWRAP = 0x00D0, // libSceVdecwrap.sprx + ORBIS_SYSMODULE_AT9_ENC = 0x00D1, // libSceAt9Enc.sprx + ORBIS_SYSMODULE_CONVERT_KEYCODE = 0x00D2, // libSceConvertKeycode.sprx + ORBIS_SYSMODULE_SHARE_PLAY = 0x00D3, // libSceSharePlay.sprx + ORBIS_SYSMODULE_HMD = 0x00D4, // libSceHmd.sprx + ORBIS_SYSMODULE_USB_STORAGE = 0x00D5, // libSceUsbStorage.sprx + ORBIS_SYSMODULE_USB_STORAGE_DIALOG = 0x00D6, // libSceUsbStorageDialog.sprx + ORBIS_SYSMODULE_DISC_MAP = 0x00D7, // libSceDiscMap.sprx + ORBIS_SYSMODULE_FACE_TRACKER = 0x00D8, + ORBIS_SYSMODULE_HAND_TRACKER = 0x00D9, + ORBIS_SYSMODULE_NP_SNS_YOUTUBE_DIALOG = 0x00DA, // libSceNpSnsYouTubeDialog.sprx + ORBIS_SYSMODULE_PROFILE_CACHE_EXTERNAL = 0x00DC, // libSceProfileCacheExternal.sprx + ORBIS_SYSMODULE_MUSIC_PLAYER_SERVICE = 0x00DD, // libSceMusicPlayerService.sprx + ORBIS_SYSMODULE_SP_SYS_CALL_WRAPPER = 0x00DE, // libSceSpSysCallWrapper.sprx + ORBIS_SYSMODULE_PS2_EMU_MENU_DIALOG = 0x00DF, // libScePs2EmuMenuDialog.sprx + ORBIS_SYSMODULE_NP_SNS_DIALYMOTION_DIALOG = 0x00E0, // libSceNpSnsDailyMotionDialog.sprx + ORBIS_SYSMODULE_AUDIODEC_CPU_HEVAG = 0x00E1, // libSceAudiodecCpuHevag.sprx + ORBIS_SYSMODULE_LOGIN_DIALOG = 0x00E2, // libSceLoginDialog.sprx + ORBIS_SYSMODULE_LOGIN_SERVICE = 0x00E3, // libSceLoginService.sprx + ORBIS_SYSMODULE_SIGNIN_DIALOG = 0x00E4, // libSceSigninDialog.sprx + ORBIS_SYSMODULE_VDECSW = 0x00E5, // libSceVdecsw.sprx + ORBIS_SYSMODULE_CUSTOM_MUSIC_CORE = 0x00E6, // libSceCustomMusicCore.sprx + ORBIS_SYSMODULE_JSON2 = 0x00E7, // libSceJson2.sprx + ORBIS_SYSMODULE_AUDIO_LATENCY_ESTIMATION = 0x00E8, + ORBIS_SYSMODULE_WK_FONT_CONFIG = 0x00E9, // libSceWkFontConfig.sprx + ORBIS_SYSMODULE_RESERVED27 = 0x00EA, + ORBIS_SYSMODULE_HMD_SETUP_DIALOG = 0x00EB, // libSceHmdSetupDialog.sprx + ORBIS_SYSMODULE_RESERVED28 = 0x00EC, + ORBIS_SYSMODULE_VR_TRACKER = 0x00ED, // libSceVrTracker.sprx + ORBIS_SYSMODULE_CONTENT_DELETE = 0x00EE, // libSceContentDelete.sprx + ORBIS_SYSMODULE_IME_BACKEND = 0x00EF, // libSceImeBackend.sprx + ORBIS_SYSMODULE_NET_CTL_AP_DIALOG = 0x00F0, // libSceNetCtlApDialog.sprx + ORBIS_SYSMODULE_PLAYGO_DIALOG = 0x00F1, // libScePlayGoDialog.sprx + ORBIS_SYSMODULE_SOCIAL_SCREEN = 0x00F2, // libSceSocialScreen.sprx + ORBIS_SYSMODULE_EDIT_MP4 = 0x00F3, // libSceEditMp4.sprx + ORBIS_SYSMODULE_PSM_KIT_SYSTEM = 0x00F5, // libScePsmKitSystem.sprx + ORBIS_SYSMODULE_TEXT_TO_SPEECH = 0x00F6, // libSceTextToSpeech.sprx + ORBIS_SYSMODULE_NP_TOOLKIT = 0x00F7, + ORBIS_SYSMODULE_CUSTOM_MUSIC_SERVICE = 0x00F8, // libSceCustomMusicService.sprx + ORBIS_SYSMODULE_CL_SYS_CALL_WRAPPER = 0x00F9, // libSceClSysCallWrapper.sprx + ORBIS_SYSMODULE_SYSTEM_LOGGER = 0x00FA, // libSceSystemLogger.sprx + ORBIS_SYSMODULE_BLUETOOTH_HID = 0x00FB, // libSceBluetoothHid.sprx + ORBIS_SYSMODULE_VIDEO_DECODER_ARBITRATION = 0x00FC, // libSceVideoDecoderArbitration.sprx + ORBIS_SYSMODULE_VR_SERVICE_DIALOG = 0x00FD, // libSceVrServiceDialog.sprx + ORBIS_SYSMODULE_JOB_MANAGER = 0x00FE, + ORBIS_SYSMODULE_KEYBOARD = 0x0106, +}; + +int PS4_SYSV_ABI sceSysmoduleGetModuleHandleInternal(); +int PS4_SYSV_ABI sceSysmoduleGetModuleInfoForUnwind(); +int PS4_SYSV_ABI sceSysmoduleIsCalledFromSysModule(); +int PS4_SYSV_ABI sceSysmoduleIsCameraPreloaded(); +int PS4_SYSV_ABI sceSysmoduleIsLoaded(); +int PS4_SYSV_ABI sceSysmoduleIsLoadedInternal(); +int PS4_SYSV_ABI sceSysmoduleLoadModule(OrbisSysModule id); +int PS4_SYSV_ABI sceSysmoduleLoadModuleByNameInternal(); +int PS4_SYSV_ABI sceSysmoduleLoadModuleInternal(); +int PS4_SYSV_ABI sceSysmoduleLoadModuleInternalWithArg(); +int PS4_SYSV_ABI sceSysmoduleMapLibcForLibkernel(); +int PS4_SYSV_ABI sceSysmodulePreloadModuleForLibkernel(); +int PS4_SYSV_ABI sceSysmoduleUnloadModule(); +int PS4_SYSV_ABI sceSysmoduleUnloadModuleByNameInternal(); +int PS4_SYSV_ABI sceSysmoduleUnloadModuleInternal(); +int PS4_SYSV_ABI sceSysmoduleUnloadModuleInternalWithArg(); + +void RegisterlibSceSysmodule(Core::Loader::SymbolsResolver* sym); +} // namespace Libraries::SysModule \ No newline at end of file