1.1 --- a/libsystypes/include/systypes/stat.h Sat Apr 06 21:53:23 2024 +0200
1.2 +++ b/libsystypes/include/systypes/stat.h Sat Apr 06 21:54:07 2024 +0200
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * File metadata abstractions.
1.6 *
1.7 - * Copyright (C) 2019, 2022 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2019, 2022, 2024 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -48,6 +48,28 @@
1.13
1.14 } sys_stat_t;
1.15
1.16 +/* Macros to be used in different C library environments. */
1.17 +
1.18 +#define COPY_STAT(s1, s2) \
1.19 + s1->st_dev = s2->st_dev; \
1.20 + s1->st_ino = s2->st_ino; \
1.21 + s1->st_mode = s2->st_mode; \
1.22 + s1->st_nlink = s2->st_nlink; \
1.23 + s1->st_uid = s2->st_uid; \
1.24 + s1->st_gid = s2->st_gid; \
1.25 + s1->st_rdev = s2->st_rdev; \
1.26 + s1->st_size = s2->st_size; \
1.27 + s1->st_atim.tv_sec = s2->st_atim.tv_sec; \
1.28 + s1->st_atim.tv_nsec = s2->st_atim.tv_nsec; \
1.29 + s1->st_mtim.tv_sec = s2->st_mtim.tv_sec; \
1.30 + s1->st_mtim.tv_nsec = s2->st_mtim.tv_nsec; \
1.31 + s1->st_ctim.tv_sec = s2->st_ctim.tv_sec; \
1.32 + s1->st_ctim.tv_nsec = s2->st_ctim.tv_nsec; \
1.33 + s1->st_blksize = s2->st_blksize; \
1.34 + s1->st_blocks = s2->st_blocks;
1.35 +
1.36 +/* Functions to be implemented in different C library environments. */
1.37 +
1.38 void systypes_copy_from_sys_stat(struct stat *st, sys_stat_t *sst);
1.39
1.40 void systypes_copy_to_sys_stat(struct stat *st, sys_stat_t *sst);