static int _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv, _PyTime_round_t round, int raise) { _PyTime_t secs, secs2; int us; int res; res = _PyTime_AsTimeval_impl(t, &secs, &us, round); #ifdef MS_WINDOWS tv->tv_sec = (long)secs; #else tv->tv_sec = secs; #endif tv->tv_usec = us; secs2 = (_PyTime_t)tv->tv_sec; if (res < 0 || secs2 != secs) { if (raise) error_time_t_overflow(); return -1; } return 0; }
int _PyTime_AsTimevalTime_t(_PyTime_t t, time_t *p_secs, int *us, _PyTime_round_t round) { _PyTime_t secs; int res; res = _PyTime_AsTimeval_impl(t, &secs, us, round); *p_secs = secs; if (res < 0 || (_PyTime_t)*p_secs != secs) { error_time_t_overflow(); return -1; } return 0; }
int _PyTime_AsTimeval_noraise(_PyTime_t t, struct timeval *tv, _PyTime_round_t round) { return _PyTime_AsTimeval_impl(t, tv, round, 0); }