//--------------------------------------------------------------------------------- int __libctru_gtod(struct _reent *ptr, struct timeval *tp, struct timezone *tz) { //--------------------------------------------------------------------------------- if (tp != NULL) { datetime_t dt = getSysTime(); u64 delta = svcGetSystemTick() - dt.update_tick; u32 offset = (u32)(u64_to_double(delta)/TICKS_PER_USEC); // adjust from 1900 to 1970 u64 now = ((dt.date_time - 2208988800000ULL) * 1000) + offset; tp->tv_sec = u64_to_double(now)/1000000.0; tp->tv_usec = now - ((tp->tv_sec) * 1000000); } if (tz != NULL) { tz->tz_minuteswest = 0; tz->tz_dsttime = 0; } return 0; }
size_t EMUFILE::readdouble(double* val) { u64 temp; size_t ret = read64le(&temp); *val = u64_to_double(temp); return ret; }
// Returns number of milliseconds since 1st Jan 1900 00:00. //--------------------------------------------------------------------------------- u64 osGetTime(void) { //--------------------------------------------------------------------------------- datetime_t dt = getSysTime(); u64 delta = svcGetSystemTick() - dt.update_tick; return dt.date_time + (u32)(u64_to_double(delta)/TICKS_PER_MSEC); }
uint32_t CtrUi::GetTicks() const { double ticks = u64_to_double(svcGetSystemTick()); u64 usecs = (u64)(ticks/TICKS_PER_MSEC); return usecs; }
//--------------------------------------------------------------------------------- double osTickCounterRead(TickCounter* cnt) { //--------------------------------------------------------------------------------- return u64_to_double(cnt->elapsed) / TICKS_PER_MSEC; }