#define USEC_PER_SEC 1000000ULL
#define NSEC_PER_USEC 1000ULL
+unsigned long long ts_usec(const struct timespec *ts)
+{
+ return (unsigned long long) ts->tv_sec * USEC_PER_SEC +
+ (unsigned long long) ts->tv_nsec / NSEC_PER_USEC;
+}
+
unsigned long long stat_mstamp(const struct stat *st)
{
#ifdef HAVE_STRUCT_STAT_ST_MTIM
- return (unsigned long long) st->st_mtim.tv_sec * USEC_PER_SEC +
- (unsigned long long) st->st_mtim.tv_nsec / NSEC_PER_USEC;
+ return ts_usec(&st->st_mtim);
#else
return (unsigned long long) st->st_mtime;
#endif
char *modname_normalize(const char *modname, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(1, 2)));
char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(2)));
unsigned long long stat_mstamp(const struct stat *st);
+unsigned long long ts_usec(const struct timespec *ts);
#define get_unaligned(ptr) \
({ \