Lines Matching refs:tv

37 struct timeval *pa_gettimeofday(struct timeval *tv) {
38 pa_assert(tv);
61 tv->tv_sec = (time_t) (t / PA_USEC_PER_SEC);
62 tv->tv_usec = (suseconds_t) (t % PA_USEC_PER_SEC);
65 pa_assert_se(gettimeofday(tv, NULL) == 0);
70 return tv;
118 pa_usec_t pa_timeval_age(const struct timeval *tv) {
120 pa_assert(tv);
122 return pa_timeval_diff(pa_gettimeofday(&now), tv);
125 struct timeval* pa_timeval_add(struct timeval *tv, pa_usec_t v) {
127 pa_assert(tv);
131 if (PA_UNLIKELY(tv->tv_sec > PA_INT_TYPE_MAX(time_t) - secs))
134 tv->tv_sec += secs;
136 tv->tv_usec += (suseconds_t) v;
139 while ((pa_usec_t) tv->tv_usec >= PA_USEC_PER_SEC) {
141 if (PA_UNLIKELY(tv->tv_sec >= PA_INT_TYPE_MAX(time_t)))
144 tv->tv_sec++;
145 tv->tv_usec -= (suseconds_t) PA_USEC_PER_SEC;
148 return tv;
151 tv->tv_sec = PA_INT_TYPE_MAX(time_t);
152 tv->tv_usec = (suseconds_t) (PA_USEC_PER_SEC-1);
153 return tv;
156 struct timeval* pa_timeval_sub(struct timeval *tv, pa_usec_t v) {
158 pa_assert(tv);
162 if (PA_UNLIKELY(tv->tv_sec < secs))
165 tv->tv_sec -= secs;
168 if (tv->tv_usec >= (suseconds_t) v)
169 tv->tv_usec -= (suseconds_t) v;
172 if (PA_UNLIKELY(tv->tv_sec <= 0))
175 tv->tv_sec --;
176 tv->tv_usec += (suseconds_t) (PA_USEC_PER_SEC - v);
179 return tv;
182 tv->tv_sec = 0;
183 tv->tv_usec = 0;
184 return tv;
187 struct timeval* pa_timeval_store(struct timeval *tv, pa_usec_t v) {
188 pa_assert(tv);
191 tv->tv_sec = PA_INT_TYPE_MAX(time_t);
192 tv->tv_usec = (suseconds_t) (PA_USEC_PER_SEC-1);
194 return tv;
197 tv->tv_sec = (time_t) (v / PA_USEC_PER_SEC);
198 tv->tv_usec = (suseconds_t) (v % PA_USEC_PER_SEC);
200 return tv;
203 pa_usec_t pa_timeval_load(const struct timeval *tv) {
205 if (PA_UNLIKELY(!tv))
209 (pa_usec_t) tv->tv_sec * PA_USEC_PER_SEC +
210 (pa_usec_t) tv->tv_usec;