mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-20 19:44:46 +00:00
enabled sceKernelNanosleep always been forgotten
applied @psucien fix to posix_usleep added posix_getpagesize
This commit is contained in:
parent
bff2f006fb
commit
27a4a57ad6
3 changed files with 33 additions and 6 deletions
|
@ -225,6 +225,10 @@ s32 PS4_SYSV_ABI sceKernelDlsym(s32 handle, const char* symbol, void** addrp) {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
s64 PS4_SYSV_ABI posix_getpagesize() {
|
||||
return 4096;
|
||||
}
|
||||
|
||||
void LibKernel_Register(Core::Loader::SymbolsResolver* sym) {
|
||||
// obj
|
||||
LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", 1, 1, &g_stack_chk_guard);
|
||||
|
@ -268,6 +272,7 @@ void LibKernel_Register(Core::Loader::SymbolsResolver* sym) {
|
|||
LIB_FUNCTION("-o5uEDpN+oY", "libkernel", 1, "libkernel", 1, 1, sceKernelConvertUtcToLocaltime);
|
||||
LIB_FUNCTION("WB66evu8bsU", "libkernel", 1, "libkernel", 1, 1, sceKernelGetCompiledSdkVersion);
|
||||
LIB_FUNCTION("DRuBt2pvICk", "libkernel", 1, "libkernel", 1, 1, ps4__read);
|
||||
LIB_FUNCTION("k+AXqu2-eBc", "libScePosix", 1, "libkernel", 1, 1, posix_getpagesize);
|
||||
|
||||
Libraries::Kernel::fileSystemSymbolsRegister(sym);
|
||||
Libraries::Kernel::timeSymbolsRegister(sym);
|
||||
|
|
|
@ -63,9 +63,7 @@ int PS4_SYSV_ABI sceKernelUsleep(u32 microseconds) {
|
|||
}
|
||||
|
||||
int PS4_SYSV_ABI posix_usleep(u32 microseconds) {
|
||||
ASSERT(microseconds >= 1000);
|
||||
std::this_thread::sleep_for(std::chrono::microseconds(microseconds));
|
||||
return 0;
|
||||
return sceKernelUsleep(microseconds);
|
||||
}
|
||||
|
||||
u32 PS4_SYSV_ABI sceKernelSleep(u32 seconds) {
|
||||
|
@ -79,11 +77,15 @@ int PS4_SYSV_ABI sceKernelClockGettime(s32 clock_id, OrbisKernelTimespec* tp) {
|
|||
}
|
||||
clockid_t pclock_id = CLOCK_REALTIME;
|
||||
switch (clock_id) {
|
||||
case 0:
|
||||
case ORBIS_CLOCK_REALTIME:
|
||||
case ORBIS_CLOCK_REALTIME_PRECISE:
|
||||
case ORBIS_CLOCK_REALTIME_FAST:
|
||||
pclock_id = CLOCK_REALTIME;
|
||||
break;
|
||||
case 13:
|
||||
case 4:
|
||||
case ORBIS_CLOCK_SECOND:
|
||||
case ORBIS_CLOCK_MONOTONIC:
|
||||
case ORBIS_CLOCK_MONOTONIC_PRECISE:
|
||||
case ORBIS_CLOCK_MONOTONIC_FAST:
|
||||
pclock_id = CLOCK_MONOTONIC;
|
||||
break;
|
||||
default:
|
||||
|
@ -167,6 +169,7 @@ void timeSymbolsRegister(Core::Loader::SymbolsResolver* sym) {
|
|||
LIB_FUNCTION("QcteRwbsnV0", "libScePosix", 1, "libkernel", 1, 1, posix_usleep);
|
||||
LIB_FUNCTION("-ZR+hG7aDHw", "libkernel", 1, "libkernel", 1, 1, sceKernelSleep);
|
||||
LIB_FUNCTION("0wu33hunNdE", "libScePosix", 1, "libkernel", 1, 1, sceKernelSleep);
|
||||
LIB_FUNCTION("QvsZxomvUHs", "libkernel", 1, "libkernel", 1, 1, sceKernelNanosleep);
|
||||
LIB_FUNCTION("yS8U2TGCe1A", "libkernel", 1, "libkernel", 1, 1, posix_nanosleep);
|
||||
LIB_FUNCTION("QBi7HCK03hw", "libkernel", 1, "libkernel", 1, 1, sceKernelClockGettime);
|
||||
LIB_FUNCTION("lLMT9vJAck0", "libkernel", 1, "libkernel", 1, 1, clock_gettime);
|
||||
|
|
|
@ -11,6 +11,25 @@ class SymbolsResolver;
|
|||
|
||||
namespace Libraries::Kernel {
|
||||
|
||||
constexpr int ORBIS_CLOCK_REALTIME = 0;
|
||||
constexpr int ORBIS_CLOCK_VIRTUAL = 1;
|
||||
constexpr int ORBIS_CLOCK_PROF = 2;
|
||||
constexpr int ORBIS_CLOCK_MONOTONIC = 4;
|
||||
constexpr int ORBIS_CLOCK_UPTIME = 5;
|
||||
constexpr int ORBIS_CLOCK_UPTIME_PRECISE = 7;
|
||||
constexpr int ORBIS_CLOCK_UPTIME_FAST = 8;
|
||||
constexpr int ORBIS_CLOCK_REALTIME_PRECISE = 9;
|
||||
constexpr int ORBIS_CLOCK_REALTIME_FAST = 10;
|
||||
constexpr int ORBIS_CLOCK_MONOTONIC_PRECISE = 11;
|
||||
constexpr int ORBIS_CLOCK_MONOTONIC_FAST = 12;
|
||||
constexpr int ORBIS_CLOCK_SECOND = 13;
|
||||
constexpr int ORBIS_CLOCK_THREAD_CPUTIME_ID = 14;
|
||||
constexpr int ORBIS_CLOCK_PROCTIME = 15;
|
||||
constexpr int ORBIS_CLOCK_EXT_NETWORK = 16;
|
||||
constexpr int ORBIS_CLOCK_EXT_DEBUG_NETWORK = 17;
|
||||
constexpr int ORBIS_CLOCK_EXT_AD_NETWORK = 18;
|
||||
constexpr int ORBIS_CLOCK_EXT_RAW_NETWORK = 19;
|
||||
|
||||
struct OrbisKernelTimeval {
|
||||
s64 tv_sec;
|
||||
s64 tv_usec;
|
||||
|
|
Loading…
Add table
Reference in a new issue