| | 8 | static inline int compare_timeval(struct timeval a, struct timeval b) { |
|---|
| | 9 | if (a.tv_sec < b.tv_sec) return -1; |
|---|
| | 10 | if (a.tv_sec > b.tv_sec) return 1; |
|---|
| | 11 | if (a.tv_usec < b.tv_usec) return -1; |
|---|
| | 12 | if (a.tv_usec > b.tv_usec) return 1; |
|---|
| | 13 | return 0; |
|---|
| | 14 | } |
|---|
| | 15 | |
|---|
| | 16 | static inline void sub_timeval(struct timeval a, struct timeval b, |
|---|
| | 17 | struct timeval *out) |
|---|
| | 18 | { |
|---|
| | 19 | out->tv_usec = a.tv_usec - b.tv_usec; |
|---|
| | 20 | if (out->tv_usec < 0L) { |
|---|
| | 21 | a.tv_sec--; |
|---|
| | 22 | out->tv_usec += 1000000L; |
|---|
| | 23 | } |
|---|
| | 24 | out->tv_sec = a.tv_sec - b.tv_sec; |
|---|
| | 25 | if (out->tv_sec < 0L) { |
|---|
| | 26 | out->tv_sec++; |
|---|
| | 27 | out->tv_usec -= 1000000L; |
|---|
| | 28 | } |
|---|
| | 29 | } |
|---|
| | 30 | |
|---|