get_authinfo (#3760)

This commit is contained in:
Pavel
2025-10-31 16:56:11 +03:00
committed by GitHub
parent 493cda07c0
commit 6c7c5eb59c
4 changed files with 24 additions and 1 deletions

View File

@@ -23,6 +23,7 @@
#include "core/libraries/kernel/process.h" #include "core/libraries/kernel/process.h"
#include "core/libraries/kernel/threads.h" #include "core/libraries/kernel/threads.h"
#include "core/libraries/kernel/threads/exception.h" #include "core/libraries/kernel/threads/exception.h"
#include "core/libraries/kernel/threads/pthread.h"
#include "core/libraries/kernel/time.h" #include "core/libraries/kernel/time.h"
#include "core/libraries/libs.h" #include "core/libraries/libs.h"
#include "core/libraries/network/sys_net.h" #include "core/libraries/network/sys_net.h"
@@ -256,6 +257,18 @@ const char** PS4_SYSV_ABI getargv() {
return entry_params.argv; return entry_params.argv;
} }
s32 PS4_SYSV_ABI get_authinfo(int pid, AuthInfoData* p2) {
LOG_WARNING(Lib_Kernel, "(STUBBED) called, pid: {}", pid);
if ((pid != 0) && (pid != GLOBAL_PID)) {
*Kernel::__Error() = POSIX_ESRCH;
return -1;
}
*p2 = {};
p2->caps[0] = 0x2000000000000000;
return ORBIS_OK;
}
void RegisterLib(Core::Loader::SymbolsResolver* sym) { void RegisterLib(Core::Loader::SymbolsResolver* sym) {
service_thread = std::jthread{KernelServiceThread}; service_thread = std::jthread{KernelServiceThread};
@@ -273,6 +286,7 @@ void RegisterLib(Core::Loader::SymbolsResolver* sym) {
LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", &g_stack_chk_guard); LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", &g_stack_chk_guard);
LIB_FUNCTION("D4yla3vx4tY", "libkernel", 1, "libkernel", sceKernelError); LIB_FUNCTION("D4yla3vx4tY", "libkernel", 1, "libkernel", sceKernelError);
LIB_FUNCTION("Mv1zUObHvXI", "libkernel", 1, "libkernel", sceKernelGetSystemSwVersion); LIB_FUNCTION("Mv1zUObHvXI", "libkernel", 1, "libkernel", sceKernelGetSystemSwVersion);
LIB_FUNCTION("igMefp4SAv0", "libkernel", 1, "libkernel", get_authinfo);
LIB_FUNCTION("PfccT7qURYE", "libkernel", 1, "libkernel", kernel_ioctl); LIB_FUNCTION("PfccT7qURYE", "libkernel", 1, "libkernel", kernel_ioctl);
LIB_FUNCTION("wW+k21cmbwQ", "libkernel", 1, "libkernel", kernel_ioctl); LIB_FUNCTION("wW+k21cmbwQ", "libkernel", 1, "libkernel", kernel_ioctl);
LIB_FUNCTION("JGfTMBOdUJo", "libkernel", 1, "libkernel", sceKernelGetFsSandboxRandomWord); LIB_FUNCTION("JGfTMBOdUJo", "libkernel", 1, "libkernel", sceKernelGetFsSandboxRandomWord);

View File

@@ -44,6 +44,13 @@ struct SwVersionStruct {
u32 hex_representation; u32 hex_representation;
}; };
struct AuthInfoData {
u64 paid;
u64 caps[4];
u64 attrs[4];
u64 ucred[8];
};
void RegisterLib(Core::Loader::SymbolsResolver* sym); void RegisterLib(Core::Loader::SymbolsResolver* sym);
} // namespace Libraries::Kernel } // namespace Libraries::Kernel

View File

@@ -337,7 +337,7 @@ void PS4_SYSV_ABI sched_yield() {
} }
int PS4_SYSV_ABI posix_getpid() { int PS4_SYSV_ABI posix_getpid() {
return g_curthread->tid; return GLOBAL_PID;
} }
int PS4_SYSV_ABI posix_pthread_once(PthreadOnce* once_control, int PS4_SYSV_ABI posix_pthread_once(PthreadOnce* once_control,

View File

@@ -16,6 +16,8 @@
#include "core/thread.h" #include "core/thread.h"
#include "core/tls.h" #include "core/tls.h"
#define GLOBAL_PID 0xBAD1
namespace Core::Loader { namespace Core::Loader {
class SymbolsResolver; class SymbolsResolver;
} }