1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2026 Enji Cooper 5 */ 6 7 #ifndef _LIBNETBSD_SYS_TIME_H_ 8 #define _LIBNETBSD_SYS_TIME_H_ 9 10 #include_next <sys/time.h> 11 12 #define timercmp(tvp, uvp, cmp) \ 13 (((tvp)->tv_sec == (uvp)->tv_sec) ? \ 14 ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ 15 ((tvp)->tv_sec cmp (uvp)->tv_sec)) 16 #define timespecadd(tsp, usp, vsp) \ 17 do { \ 18 (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ 19 (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ 20 if ((vsp)->tv_nsec >= 1000000000L) { \ 21 (vsp)->tv_sec++; \ 22 (vsp)->tv_nsec -= 1000000000L; \ 23 } \ 24 } while (0) 25 #define timespecsub(tsp, usp, vsp) \ 26 do { \ 27 (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ 28 (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ 29 if ((vsp)->tv_nsec < 0) { \ 30 (vsp)->tv_sec--; \ 31 (vsp)->tv_nsec += 1000000000L; \ 32 } \ 33 } while (0) 34 35 #endif 36