| 319 | } |
| 320 | |
| 321 | unsigned long long mtime_since(const struct timeval *s, const struct timeval *e) |
| 322 | { |
| 323 | long long sec, usec; |
| 324 | |
| 325 | sec = e->tv_sec - s->tv_sec; |
| 326 | usec = (e->tv_usec - s->tv_usec); |
| 327 | if (sec > 0 && usec < 0) { |
| 328 | sec--; |
| 329 | usec += 1000000; |
| 330 | } |
| 331 | |
| 332 | sec *= 1000; |
| 333 | usec /= 1000; |
| 334 | return sec + usec; |
| 335 | } |
| 336 | |
| 337 | unsigned long long mtime_since_now(struct timeval *tv) |
| 338 | { |