aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/struct_stat_time64.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/struct_stat_time64.h')
-rw-r--r--sysdeps/unix/sysv/linux/struct_stat_time64.h59
1 files changed, 4 insertions, 55 deletions
diff --git a/sysdeps/unix/sysv/linux/struct_stat_time64.h b/sysdeps/unix/sysv/linux/struct_stat_time64.h
index f0a29d7fe5..260d1812be 100644
--- a/sysdeps/unix/sysv/linux/struct_stat_time64.h
+++ b/sysdeps/unix/sysv/linux/struct_stat_time64.h
@@ -22,64 +22,13 @@
#if __TIMESIZE == 64
# define __stat64_t64 stat64
#else
-# ifdef __USE_LARGEFILE64
-# include <endian.h>
-
-/* The definition should be equal to the 'struct __timespec64' internal
- layout. */
-# if BYTE_ORDER == BIG_ENDIAN
-# define __fieldts64(name) \
- __time64_t name; __int32_t :32; __int32_t name ## nsec
-# else
-# define __fieldts64(name) \
- __time64_t name; __int32_t name ## nsec; __int32_t :32
-# endif
-
-/* Workaround for the definition from struct_stat.h */
-# undef st_atime
-# undef st_mtime
-# undef st_ctime
+# include <struct___timespec64.h>
struct __stat64_t64
{
- __dev_t st_dev; /* Device. */
- __ino64_t st_ino; /* file serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __off64_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct __timespec64 st_atim; /* Time of last access. */
- struct __timespec64 st_mtim; /* Time of last modification. */
- struct __timespec64 st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-# else
- __fieldts64 (st_atime);
- __fieldts64 (st_mtime);
- __fieldts64 (st_ctime);
-# endif /* __USE_XOPEN2K8 */
+# define __struct_timespec struct __timespec64
+# include <bits/struct_stat_time64_helper.h>
};
-
-# define _STATBUF_ST_BLKSIZE
-# define _STATBUF_ST_RDEV
-# define _STATBUF_ST_NSEC
-
-# undef __fieldts64
-
-# endif /* __USE_LARGEFILE64 */
-
-# endif /* __TIMESIZE == 64 */
+#endif /* __TIMESIZE == 64 */
#endif /* _BITS_STRUCT_STAT_TIME64_H */