implement lizardy's changes

This commit is contained in:
CrazyBloo 2024-08-31 22:21:12 -04:00
parent d27c6319c5
commit 58cc7616d5
3 changed files with 89 additions and 87 deletions

View File

@ -66,54 +66,54 @@ int PS4_SYSV_ABI sceRtcCompareTick(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2) {
return ORBIS_FAIL; return ORBIS_FAIL;
} }
int PS4_SYSV_ABI sceRtcConvertLocalTimeToUtc(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2) { int PS4_SYSV_ABI sceRtcConvertLocalTimeToUtc(OrbisRtcTick* pTickLocal, OrbisRtcTick* pTickUtc) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr) if (pTickLocal == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
time_t seconds; time_t seconds;
Kernel::OrbisKernelTimezone timezone; Kernel::OrbisKernelTimezone timezone;
int convertValue = Kernel::sceKernelConvertLocaltimeToUtc( int convertValue = Kernel::sceKernelConvertLocaltimeToUtc(
(pTick1->tick + 0xff23400100d44000U) / 1000000, 0xffffffff, &seconds, &timezone, 0); (pTickLocal->tick + 0xff23400100d44000U) / 1000000, 0xffffffff, &seconds, &timezone, 0);
if (convertValue >= 0) { if (convertValue >= 0) {
convertValue = sceRtcTickAddMinutes( convertValue = sceRtcTickAddMinutes(
pTick2, pTick1, -((timezone.tz_dsttime + timezone.tz_minuteswest) / 0x3c)); pTickUtc, pTickLocal, -((timezone.tz_dsttime + timezone.tz_minuteswest) / 0x3c));
} }
return convertValue; return convertValue;
} }
int PS4_SYSV_ABI sceRtcConvertUtcToLocalTime(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2) { int PS4_SYSV_ABI sceRtcConvertUtcToLocalTime(OrbisRtcTick* pTickUtc, OrbisRtcTick* pTickLocal) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr) if (pTickUtc == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
time_t seconds; time_t seconds;
Kernel::OrbisTimesec timezone; Kernel::OrbisTimesec timezone;
int convertValue = Kernel::sceKernelConvertUtcToLocaltime( int convertValue = Kernel::sceKernelConvertUtcToLocaltime(
(pTick1->tick + 0xff23400100d44000U) / 1000000, &seconds, &timezone, 0); (pTickUtc->tick + 0xff23400100d44000U) / 1000000, &seconds, &timezone, 0);
if (convertValue >= 0) { if (convertValue >= 0) {
auto newTime = ((timezone.dst_sec + timezone.west_sec) / 0x3c) * 60000000; auto newTime = ((timezone.dst_sec + timezone.west_sec) / 0x3c) * 60000000;
if (pTick2 == nullptr) if (pTickLocal == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
if (newTime < 0) { if (newTime < 0) {
if (pTick1->tick < -newTime) { if (pTickUtc->tick < -newTime) {
return ORBIS_RTC_ERROR_INVALID_VALUE; return ORBIS_RTC_ERROR_INVALID_VALUE;
} }
} else { } else {
if ((pTick1->tick + newTime) < pTick1->tick) { if ((pTickUtc->tick + newTime) < pTickUtc->tick) {
return ORBIS_RTC_ERROR_INVALID_VALUE; return ORBIS_RTC_ERROR_INVALID_VALUE;
} }
} }
pTick2->tick = pTick1->tick + newTime; pTickLocal->tick = pTickUtc->tick + newTime;
convertValue = 0; convertValue = 0;
} }
@ -124,32 +124,34 @@ int PS4_SYSV_ABI sceRtcEnd() {
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcFormatRFC2822() { int PS4_SYSV_ABI sceRtcFormatRFC2822(char* pszDateTime, const OrbisRtcTick* pTickUtc, int minutes) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcFormatRFC2822LocalTime() { int PS4_SYSV_ABI sceRtcFormatRFC2822LocalTime(char* pszDateTime, const OrbisRtcTick* pTickUtc) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcFormatRFC3339() { int PS4_SYSV_ABI sceRtcFormatRFC3339(char* pszDateTime, const OrbisRtcTick* pTickUtc, int minutes) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcFormatRFC3339LocalTime() { int PS4_SYSV_ABI sceRtcFormatRFC3339LocalTime(char* pszDateTime, const OrbisRtcTick* pTickUtc) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcFormatRFC3339Precise() { int PS4_SYSV_ABI sceRtcFormatRFC3339Precise(char* pszDateTime, const OrbisRtcTick* pTickUtc,
int minutes) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcFormatRFC3339PreciseLocalTime() { int PS4_SYSV_ABI sceRtcFormatRFC3339PreciseLocalTime(char* pszDateTime,
const OrbisRtcTick* pTickUtc) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -172,7 +174,7 @@ int PS4_SYSV_ABI sceRtcGetCurrentAdNetworkTick(OrbisRtcTick* pTick) {
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcGetCurrentClock(OrbisRtcDateTime* pTime, int minutesToAdd) { int PS4_SYSV_ABI sceRtcGetCurrentClock(OrbisRtcDateTime* pTime, int timeZone) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTime == nullptr) if (pTime == nullptr)
@ -185,7 +187,7 @@ int PS4_SYSV_ABI sceRtcGetCurrentClock(OrbisRtcDateTime* pTime, int minutesToAdd
OrbisRtcTick clockTick; OrbisRtcTick clockTick;
clockTick.tick = clocktime.tv_nsec / 1000 + clocktime.tv_sec * 1000000 + 0xdcbffeff2bc000; clockTick.tick = clocktime.tv_nsec / 1000 + clocktime.tv_sec * 1000000 + 0xdcbffeff2bc000;
sceRtcTickAddMinutes(&clockTick, &clockTick, minutesToAdd); sceRtcTickAddMinutes(&clockTick, &clockTick, timeZone);
sceRtcSetTick(pTime, &clockTick); sceRtcSetTick(pTime, &clockTick);
} }
@ -292,7 +294,7 @@ int PS4_SYSV_ABI sceRtcGetCurrentTick(OrbisRtcTick* pTick) {
return returnValue; return returnValue;
} }
int PS4_SYSV_ABI sceRtcGetDayOfWeek() { int PS4_SYSV_ABI sceRtcGetDayOfWeek(int year, int month, int day) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -316,7 +318,7 @@ int PS4_SYSV_ABI sceRtcGetDaysInMonth(int iYear, int iMonth) {
return lastDay; return lastDay;
} }
int PS4_SYSV_ABI sceRtcGetDosTime() { int PS4_SYSV_ABI sceRtcGetDosTime(OrbisRtcDateTime* pTime, unsigned int* dosTime) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -356,18 +358,18 @@ int PS4_SYSV_ABI sceRtcGetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick) {
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcGetTickResolution() { unsigned int PS4_SYSV_ABI sceRtcGetTickResolution() {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
return 1000000; return 1000000;
} }
int PS4_SYSV_ABI sceRtcGetTime_t() { int PS4_SYSV_ABI sceRtcGetTime_t(OrbisRtcDateTime* pTime, time_t* llTime) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcGetWin32FileTime() { int PS4_SYSV_ABI sceRtcGetWin32FileTime(OrbisRtcDateTime* pTime, uint64_t* ulWin32Time) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -388,12 +390,12 @@ int PS4_SYSV_ABI sceRtcIsLeapYear(int yearInt) {
return (ymdl.day() == 29d); return (ymdl.day() == 29d);
} }
int PS4_SYSV_ABI sceRtcParseDateTime() { int PS4_SYSV_ABI sceRtcParseDateTime(OrbisRtcTick* pTickUtc, const char* pszDateTime) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcParseRFC3339() { int PS4_SYSV_ABI sceRtcParseRFC3339(OrbisRtcTick* pTickUtc, const char* pszDateTime) {
LOG_ERROR(Lib_Rtc, "(STUBBED) called"); LOG_ERROR(Lib_Rtc, "(STUBBED) called");
return ORBIS_OK; return ORBIS_OK;
} }
@ -492,7 +494,7 @@ int PS4_SYSV_ABI sceRtcSetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick) {
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, u64 iTime) { int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, time_t llTime) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTime == nullptr) if (pTime == nullptr)
@ -506,12 +508,12 @@ int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, u64 iTime) {
OrbisRtcTick newTick; OrbisRtcTick newTick;
if (sdk_version < 0x3000000) { if (sdk_version < 0x3000000) {
newTick.tick = (iTime & 0xffffffff) * 1000000; newTick.tick = (llTime & 0xffffffff) * 1000000;
} else { } else {
if (iTime < 0) { if (llTime < 0) {
return ORBIS_RTC_ERROR_INVALID_VALUE; return ORBIS_RTC_ERROR_INVALID_VALUE;
} }
newTick.tick = iTime * 1000000; newTick.tick = llTime * 1000000;
} }
newTick.tick += 0xdcbffeff2bc000; newTick.tick += 0xdcbffeff2bc000;
@ -520,13 +522,13 @@ int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, u64 iTime) {
return ORBIS_OK; return ORBIS_OK;
} }
int PS4_SYSV_ABI sceRtcSetWin32FileTime(OrbisRtcDateTime* pTime, u64 win32Time) { int PS4_SYSV_ABI sceRtcSetWin32FileTime(OrbisRtcDateTime* pTime, uint64_t ulWin32Time) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTime == nullptr) if (pTime == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
u64 convertedTime = (win32Time / 10) + 0xb36168b6a58000; u64 convertedTime = (ulWin32Time / 10) + 0xb36168b6a58000;
OrbisRtcTick convertedTick; OrbisRtcTick convertedTick;
convertedTick.tick = convertedTime; convertedTick.tick = convertedTime;
@ -536,59 +538,57 @@ int PS4_SYSV_ABI sceRtcSetWin32FileTime(OrbisRtcDateTime* pTime, u64 win32Time)
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddDays(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingDays) { int PS4_SYSV_ABI sceRtcTickAddDays(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = (addingDays * 86400000000) + pTick2->tick; pTick1->tick = (lAdd * 86400000000) + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddHours(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingHours) { int PS4_SYSV_ABI sceRtcTickAddHours(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = (addingHours * 3600000000) + pTick2->tick; pTick1->tick = (lAdd * 3600000000) + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddMicroseconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddMicroseconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd) {
s64 addingMicroseconds) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = addingMicroseconds + pTick2->tick; pTick1->tick = lAdd + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddMinutes(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddMinutes(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd) {
s64 addingMinutes) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = (addingMinutes * 60000000) + pTick2->tick; pTick1->tick = (lAdd * 60000000) + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingMonths) { int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
if (addingMonths == 0) { if (lAdd == 0) {
pTick1->tick = pTick2->tick; pTick1->tick = pTick2->tick;
return 0; return 0;
} }
@ -599,14 +599,14 @@ int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2,
sceRtcSetTick(&time, pTick1); sceRtcSetTick(&time, pTick1);
if (addingMonths >= 0) { if (lAdd >= 0) {
s = 1; s = 1;
} else { } else {
s = -1; s = -1;
} }
time.year += (addingMonths / 12); time.year += (lAdd / 12);
tempMonth = time.month + (addingMonths % 12) - 1; tempMonth = time.month + (lAdd % 12) - 1;
if (tempMonth > 11 || tempMonth < 0) { if (tempMonth > 11 || tempMonth < 0) {
tempMonth -= s * 12; tempMonth -= s * 12;
@ -635,41 +635,40 @@ int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2,
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddSeconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddSeconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd) {
s64 addingSeconds) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = (addingSeconds * 1000000) + pTick2->tick; pTick1->tick = (lAdd * 1000000) + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddTicks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 addingTicks) { int PS4_SYSV_ABI sceRtcTickAddTicks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = addingTicks + pTick2->tick; pTick1->tick = lAdd + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddWeeks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingWeeks) { int PS4_SYSV_ABI sceRtcTickAddWeeks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
return ORBIS_RTC_ERROR_INVALID_POINTER; return ORBIS_RTC_ERROR_INVALID_POINTER;
pTick1->tick = (addingWeeks * 0x8cd0e3a000) + pTick2->tick; pTick1->tick = (lAdd * 0x8cd0e3a000) + pTick2->tick;
return 0; return 0;
} }
int PS4_SYSV_ABI sceRtcTickAddYears(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s16 addingYears) { int PS4_SYSV_ABI sceRtcTickAddYears(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s16 lAdd) {
LOG_TRACE(Lib_Rtc, "called"); LOG_TRACE(Lib_Rtc, "called");
if (pTick1 == nullptr || pTick2 == nullptr) if (pTick1 == nullptr || pTick2 == nullptr)
@ -677,14 +676,14 @@ int PS4_SYSV_ABI sceRtcTickAddYears(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2,
OrbisRtcDateTime time; OrbisRtcDateTime time;
if (addingYears == 0) { if (lAdd == 0) {
pTick1->tick = pTick2->tick; pTick1->tick = pTick2->tick;
return 0; return 0;
} }
sceRtcSetTick(&time, pTick1); sceRtcSetTick(&time, pTick1);
time.year += addingYears; time.year += lAdd;
u64 timeIsValid = sceRtcCheckValid(&time); u64 timeIsValid = sceRtcCheckValid(&time);
if (timeIsValid == 0) { if (timeIsValid == 0) {

View File

@ -27,33 +27,35 @@ struct OrbisRtcDateTime {
int PS4_SYSV_ABI sceRtcCheckValid(OrbisRtcDateTime* pTime); int PS4_SYSV_ABI sceRtcCheckValid(OrbisRtcDateTime* pTime);
int PS4_SYSV_ABI sceRtcCompareTick(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2); int PS4_SYSV_ABI sceRtcCompareTick(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2);
int PS4_SYSV_ABI sceRtcConvertLocalTimeToUtc(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2); int PS4_SYSV_ABI sceRtcConvertLocalTimeToUtc(OrbisRtcTick* pTickLocal, OrbisRtcTick* pTickUtc);
int PS4_SYSV_ABI sceRtcConvertUtcToLocalTime(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2); int PS4_SYSV_ABI sceRtcConvertUtcToLocalTime(OrbisRtcTick* pTickUtc, OrbisRtcTick* pTickLocal);
int PS4_SYSV_ABI sceRtcEnd(); int PS4_SYSV_ABI sceRtcEnd();
int PS4_SYSV_ABI sceRtcFormatRFC2822(); int PS4_SYSV_ABI sceRtcFormatRFC2822(char* pszDateTime, const OrbisRtcTick* pTickUtc, int minutes);
int PS4_SYSV_ABI sceRtcFormatRFC2822LocalTime(); int PS4_SYSV_ABI sceRtcFormatRFC2822LocalTime(char* pszDateTime, const OrbisRtcTick* pTickUtc);
int PS4_SYSV_ABI sceRtcFormatRFC3339(); int PS4_SYSV_ABI sceRtcFormatRFC3339(char* pszDateTime, const OrbisRtcTick* pTickUtc, int minutes);
int PS4_SYSV_ABI sceRtcFormatRFC3339LocalTime(); int PS4_SYSV_ABI sceRtcFormatRFC3339LocalTime(char* pszDateTime, const OrbisRtcTick* pTickUtc);
int PS4_SYSV_ABI sceRtcFormatRFC3339Precise(); int PS4_SYSV_ABI sceRtcFormatRFC3339Precise(char* pszDateTime, const OrbisRtcTick* pTickUtc,
int PS4_SYSV_ABI sceRtcFormatRFC3339PreciseLocalTime(); int minutes);
int PS4_SYSV_ABI sceRtcFormatRFC3339PreciseLocalTime(char* pszDateTime,
const OrbisRtcTick* pTickUtc);
int PS4_SYSV_ABI sceRtcGetCurrentAdNetworkTick(OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetCurrentAdNetworkTick(OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetCurrentClock(OrbisRtcDateTime* pTime, int minutesToAdd); int PS4_SYSV_ABI sceRtcGetCurrentClock(OrbisRtcDateTime* pTime, int timeZone);
int PS4_SYSV_ABI sceRtcGetCurrentClockLocalTime(OrbisRtcDateTime* pTick); int PS4_SYSV_ABI sceRtcGetCurrentClockLocalTime(OrbisRtcDateTime* pTick);
int PS4_SYSV_ABI sceRtcGetCurrentDebugNetworkTick(OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetCurrentDebugNetworkTick(OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetCurrentNetworkTick(OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetCurrentNetworkTick(OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetCurrentRawNetworkTick(OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetCurrentRawNetworkTick(OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetCurrentTick(OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetCurrentTick(OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetDayOfWeek(); int PS4_SYSV_ABI sceRtcGetDayOfWeek(int year, int month, int day);
int PS4_SYSV_ABI sceRtcGetDaysInMonth(int year, int month); int PS4_SYSV_ABI sceRtcGetDaysInMonth(int year, int month);
int PS4_SYSV_ABI sceRtcGetDosTime(); int PS4_SYSV_ABI sceRtcGetDosTime(OrbisRtcDateTime* pTime, unsigned int* dosTime);
int PS4_SYSV_ABI sceRtcGetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcGetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcGetTickResolution(); unsigned int PS4_SYSV_ABI sceRtcGetTickResolution();
int PS4_SYSV_ABI sceRtcGetTime_t(); int PS4_SYSV_ABI sceRtcGetTime_t(OrbisRtcDateTime* pTime, time_t* llTime);
int PS4_SYSV_ABI sceRtcGetWin32FileTime(); int PS4_SYSV_ABI sceRtcGetWin32FileTime(OrbisRtcDateTime* pTime, uint64_t* ulWin32Time);
int PS4_SYSV_ABI sceRtcInit(); int PS4_SYSV_ABI sceRtcInit();
int PS4_SYSV_ABI sceRtcIsLeapYear(int yearInt); int PS4_SYSV_ABI sceRtcIsLeapYear(int yearInt);
int PS4_SYSV_ABI sceRtcParseDateTime(); int PS4_SYSV_ABI sceRtcParseDateTime(OrbisRtcTick* pTickUtc, const char* pszDateTime);
int PS4_SYSV_ABI sceRtcParseRFC3339(); int PS4_SYSV_ABI sceRtcParseRFC3339(OrbisRtcTick* pTickUtc, const char* pszDateTime);
int PS4_SYSV_ABI sceRtcSetConf(); int PS4_SYSV_ABI sceRtcSetConf();
int PS4_SYSV_ABI sceRtcSetCurrentAdNetworkTick(); int PS4_SYSV_ABI sceRtcSetCurrentAdNetworkTick();
int PS4_SYSV_ABI sceRtcSetCurrentDebugNetworkTick(); int PS4_SYSV_ABI sceRtcSetCurrentDebugNetworkTick();
@ -61,20 +63,17 @@ int PS4_SYSV_ABI sceRtcSetCurrentNetworkTick();
int PS4_SYSV_ABI sceRtcSetCurrentTick(); int PS4_SYSV_ABI sceRtcSetCurrentTick();
int PS4_SYSV_ABI sceRtcSetDosTime(OrbisRtcDateTime* pTime, u32 dosTime); int PS4_SYSV_ABI sceRtcSetDosTime(OrbisRtcDateTime* pTime, u32 dosTime);
int PS4_SYSV_ABI sceRtcSetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick); int PS4_SYSV_ABI sceRtcSetTick(OrbisRtcDateTime* pTime, OrbisRtcTick* pTick);
int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, u64 iTime); int PS4_SYSV_ABI sceRtcSetTime_t(OrbisRtcDateTime* pTime, time_t llTime);
int PS4_SYSV_ABI sceRtcSetWin32FileTime(OrbisRtcDateTime* pTime, u64 win32Time); int PS4_SYSV_ABI sceRtcSetWin32FileTime(OrbisRtcDateTime* pTime, uint64_t ulWin32Time);
int PS4_SYSV_ABI sceRtcTickAddDays(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingDays); int PS4_SYSV_ABI sceRtcTickAddDays(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd);
int PS4_SYSV_ABI sceRtcTickAddHours(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingHours); int PS4_SYSV_ABI sceRtcTickAddHours(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd);
int PS4_SYSV_ABI sceRtcTickAddMicroseconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddMicroseconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd);
s64 addingMicroseconds); int PS4_SYSV_ABI sceRtcTickAddMinutes(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd);
int PS4_SYSV_ABI sceRtcTickAddMinutes(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd);
s64 addingMinutes); int PS4_SYSV_ABI sceRtcTickAddSeconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd);
int PS4_SYSV_ABI sceRtcTickAddMonths(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingMonths); int PS4_SYSV_ABI sceRtcTickAddTicks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 lAdd);
int PS4_SYSV_ABI sceRtcTickAddSeconds(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, int PS4_SYSV_ABI sceRtcTickAddWeeks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 lAdd);
s64 addingSeconds); int PS4_SYSV_ABI sceRtcTickAddYears(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s16 lAdd);
int PS4_SYSV_ABI sceRtcTickAddTicks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s64 addingTicks);
int PS4_SYSV_ABI sceRtcTickAddWeeks(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s32 addingWeeks);
int PS4_SYSV_ABI sceRtcTickAddYears(OrbisRtcTick* pTick1, OrbisRtcTick* pTick2, s16 addingYears);
void RegisterlibSceRtc(Core::Loader::SymbolsResolver* sym); void RegisterlibSceRtc(Core::Loader::SymbolsResolver* sym);
} // namespace Libraries::Rtc } // namespace Libraries::Rtc

View File

@ -18,6 +18,10 @@ constexpr int ORBIS_RTC_ERROR_INVALID_MILLISECONDS_PARAMETER = 0x80010627;
constexpr int ORBIS_RTC_ERROR_NOT_INITIALIZED = 0x80B50001; constexpr int ORBIS_RTC_ERROR_NOT_INITIALIZED = 0x80B50001;
constexpr int ORBIS_RTC_ERROR_INVALID_POINTER = 0x80B50002; constexpr int ORBIS_RTC_ERROR_INVALID_POINTER = 0x80B50002;
constexpr int ORBIS_RTC_ERROR_INVALID_VALUE = 0x80B50003; constexpr int ORBIS_RTC_ERROR_INVALID_VALUE = 0x80B50003;
constexpr int ORBIS_RTC_ERROR_INVALID_ARG = 0x80B50004;
constexpr int ORBIS_RTC_ERROR_NOT_SUPPORTED = 0x80B50005;
constexpr int ORBIS_RTC_ERROR_NO_CLOCK = 0x80B50006;
constexpr int ORBIS_RTC_ERROR_BAD_PARSE = 0x80B50007;
constexpr int ORBIS_RTC_ERROR_INVALID_YEAR = 0x80B50008; constexpr int ORBIS_RTC_ERROR_INVALID_YEAR = 0x80B50008;
constexpr int ORBIS_RTC_ERROR_INVALID_MONTH = 0x80B50009; constexpr int ORBIS_RTC_ERROR_INVALID_MONTH = 0x80B50009;
constexpr int ORBIS_RTC_ERROR_INVALID_DAY = 0x80B5000A; constexpr int ORBIS_RTC_ERROR_INVALID_DAY = 0x80B5000A;