From: Karel Zak Date: Mon, 13 Dec 2021 12:19:18 +0000 (+0100) Subject: include/c: add cmp_timespec() and cmp_stat_mtime() X-Git-Tag: v2.38-rc1~93 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0cfb8c5c3205a92ae81def278cdded63ea47094f;p=thirdparty%2Futil-linux.git include/c: add cmp_timespec() and cmp_stat_mtime() It's like timercmp() in libc, but for timespec and for stat.st_mtim (or stat.st_mtime for old struct stat versions). Signed-off-by: Karel Zak --- diff --git a/include/c.h b/include/c.h index ba799d8fd3..db0c58b509 100644 --- a/include/c.h +++ b/include/c.h @@ -175,6 +175,24 @@ _a == _b ? 0 : _a > _b ? 1 : -1; }) #endif + +#ifndef cmp_timespec +# define cmp_timespec(a, b, CMP) \ + (((a)->tv_sec == (b)->tv_sec) \ + ? ((a)->tv_nsec CMP (b)->tv_nsec) \ + : ((a)->tv_sec CMP (b)->tv_sec)) +#endif + + +#ifndef cmp_stat_mtime +# ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC +# define cmp_stat_mtime(_a, _b, CMP) cmp_timespec(&(_a)->st_mtim, &(_b)->st_mtim, CMP) +# else +# define cmp_stat_mtime(_a, _b, CMP) ((_a)->st_mtime CMP (_b)->st_mtime) +# endif +#endif + + #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif