]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
stat-util: Add statx version of timespec_load
authorAdrian Vovk <adrianvovk@gmail.com>
Thu, 4 Jan 2024 17:48:39 +0000 (12:48 -0500)
committerAdrian Vovk <adrianvovk@gmail.com>
Thu, 4 Jan 2024 17:49:14 +0000 (12:49 -0500)
statx_timestamp is, for all intents and purposes, the same as a struct
timespec. So, we can trivially convert it and call timespec_load on it.

This commit adds helper functions that do just that.

src/basic/stat-util.h

index cb736c36dd66311608211cebbc289e4c8303dd30..dc11a85f6265324ab42baf9991a4574d86b46cff 100644 (file)
@@ -12,6 +12,7 @@
 #include "macro.h"
 #include "missing_stat.h"
 #include "siphash24.h"
+#include "time-util.h"
 
 int is_symlink(const char *path);
 int is_dir_full(int atfd, const char *fname, bool follow);
@@ -109,6 +110,13 @@ int xstatfsat(int dir_fd, const char *path, struct statfs *ret);
         } var
 #endif
 
+static inline usec_t statx_timestamp_load(const struct statx_timestamp *ts) {
+        return timespec_load(&(const struct timespec) { .tv_sec = ts->tv_sec, .tv_nsec = ts->tv_nsec });
+}
+static inline nsec_t statx_timestamp_load_nsec(const struct statx_timestamp *ts) {
+        return timespec_load_nsec(&(const struct timespec) { .tv_sec = ts->tv_sec, .tv_nsec = ts->tv_nsec });
+}
+
 void inode_hash_func(const struct stat *q, struct siphash *state);
 int inode_compare_func(const struct stat *a, const struct stat *b);
 extern const struct hash_ops inode_hash_ops;