With time64 enabled we use statx() system call and the appropriate
routines for results conversion. There is no need in `__ts32_struct`
anymore.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh(a)gmail.com>
---
include/internal/time64_helpers.h | 5 ----
libc/sysdeps/linux/arm/bits/kernel_stat.h | 16 -----------
libc/sysdeps/linux/common/xstatconv.c | 27 -------------------
libc/sysdeps/linux/or1k/bits/kernel_stat.h | 10 -------
libc/sysdeps/linux/powerpc/bits/kernel_stat.h | 16 -----------
libc/sysdeps/linux/sparc/bits/kernel_stat.h | 16 -----------
libc/sysdeps/linux/xtensa/bits/kernel_stat.h | 16 -----------
7 files changed, 106 deletions(-)
diff --git a/include/internal/time64_helpers.h b/include/internal/time64_helpers.h
index 0f912f4bf..2284aacd9 100644
--- a/include/internal/time64_helpers.h
+++ b/include/internal/time64_helpers.h
@@ -5,11 +5,6 @@
#include <time.h>
#include <stddef.h>
-struct __ts32_struct {
- __S32_TYPE tv_sec;
- __S32_TYPE tv_nsec;
-};
-
struct __ts64_struct {
__S64_TYPE tv_sec;
__S64_TYPE tv_nsec;
diff --git a/libc/sysdeps/linux/arm/bits/kernel_stat.h
b/libc/sysdeps/linux/arm/bits/kernel_stat.h
index 45c8e9681..cdbeeb4de 100644
--- a/libc/sysdeps/linux/arm/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/arm/bits/kernel_stat.h
@@ -5,10 +5,6 @@
* struct kernel_stat should look like... It turns out each arch has a
* different opinion on the subject... */
-#if defined(__UCLIBC_USE_TIME64__)
-#include "internal/time64_helpers.h"
-#endif
-
struct kernel_stat {
#if defined(__ARMEB__)
unsigned short st_dev;
@@ -30,15 +26,9 @@ struct kernel_stat {
unsigned long st_size;
unsigned long st_blksize;
unsigned long st_blocks;
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned long __uclibc_unused4;
unsigned long __uclibc_unused5;
};
@@ -60,15 +50,9 @@ struct kernel_stat64 {
long long st_size;
unsigned long st_blksize;
unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned long long st_ino;
#ifndef __ARM_EABI__
} __attribute__((packed));
diff --git a/libc/sysdeps/linux/common/xstatconv.c
b/libc/sysdeps/linux/common/xstatconv.c
index 391804e66..d50fbf9c3 100644
--- a/libc/sysdeps/linux/common/xstatconv.c
+++ b/libc/sysdeps/linux/common/xstatconv.c
@@ -37,21 +37,12 @@ void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf)
buf->st_size = kbuf->st_size;
buf->st_blksize = kbuf->st_blksize;
buf->st_blocks = kbuf->st_blocks;
-#if defined(__UCLIBC_USE_TIME64__) && !defined(__mips__)
- buf->st_atim.tv_sec = kbuf->__st_atim32.tv_sec;
- buf->st_atim.tv_nsec = kbuf->__st_atim32.tv_nsec;
- buf->st_mtim.tv_sec = kbuf->__st_mtim32.tv_sec;
- buf->st_mtim.tv_nsec = kbuf->__st_mtim32.tv_nsec;
- buf->st_ctim.tv_sec = kbuf->__st_ctim32.tv_sec;
- buf->st_ctim.tv_nsec = kbuf->__st_ctim32.tv_nsec;
-#else
buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
-#endif
}
void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf)
@@ -68,21 +59,12 @@ void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf)
buf->st_size = kbuf->st_size;
buf->st_blksize = kbuf->st_blksize;
buf->st_blocks = kbuf->st_blocks;
-#if defined(__UCLIBC_USE_TIME64__) && !defined(__mips__)
- buf->st_atim.tv_sec = kbuf->__st_atim32.tv_sec;
- buf->st_atim.tv_nsec = kbuf->__st_atim32.tv_nsec;
- buf->st_mtim.tv_sec = kbuf->__st_mtim32.tv_sec;
- buf->st_mtim.tv_nsec = kbuf->__st_mtim32.tv_nsec;
- buf->st_ctim.tv_sec = kbuf->__st_ctim32.tv_sec;
- buf->st_ctim.tv_nsec = kbuf->__st_ctim32.tv_nsec;
-#else
buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
-#endif
}
void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
@@ -102,19 +84,10 @@ void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
buf->st_size = kbuf->st_size;
buf->st_blksize = kbuf->st_blksize;
buf->st_blocks = kbuf->st_blocks;
-#if defined(__UCLIBC_USE_TIME64__) && !defined(__mips__)
- buf->st_atim.tv_sec = kbuf->__st_atim32.tv_sec;
- buf->st_atim.tv_nsec = kbuf->__st_atim32.tv_nsec;
- buf->st_mtim.tv_sec = kbuf->__st_mtim32.tv_sec;
- buf->st_mtim.tv_nsec = kbuf->__st_mtim32.tv_nsec;
- buf->st_ctim.tv_sec = kbuf->__st_ctim32.tv_sec;
- buf->st_ctim.tv_nsec = kbuf->__st_ctim32.tv_nsec;
-#else
buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
-#endif
}
diff --git a/libc/sysdeps/linux/or1k/bits/kernel_stat.h
b/libc/sysdeps/linux/or1k/bits/kernel_stat.h
index cec44ecfc..2e5eab901 100644
--- a/libc/sysdeps/linux/or1k/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/or1k/bits/kernel_stat.h
@@ -1,10 +1,6 @@
#ifndef _BITS_STAT_STRUCT_H
#define _BITS_STAT_STRUCT_H
-#if defined(__UCLIBC_USE_TIME64__)
-#include "internal/time64_helpers.h"
-#endif
-
struct kernel_stat {
unsigned long st_dev; /* Device. */
unsigned long st_ino; /* File serial number. */
@@ -18,15 +14,9 @@ struct kernel_stat {
int st_blksize; /* Optimal block size for I/O. */
int __pad2;
long st_blocks; /* Number 512-byte blocks allocated. */
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned int __unused4;
unsigned int __unused5;
};
diff --git a/libc/sysdeps/linux/powerpc/bits/kernel_stat.h
b/libc/sysdeps/linux/powerpc/bits/kernel_stat.h
index c28ef2a9a..023eefeea 100644
--- a/libc/sysdeps/linux/powerpc/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/powerpc/bits/kernel_stat.h
@@ -5,10 +5,6 @@
* struct kernel_stat should look like... It turns out each arch has a
* different opinion on the subject... */
-#if defined(__UCLIBC_USE_TIME64__)
-#include "internal/time64_helpers.h"
-#endif
-
#if __WORDSIZE == 64
#define kernel_stat kernel_stat64
#else
@@ -23,15 +19,9 @@ struct kernel_stat {
__kernel_off_t st_size;
unsigned long st_blksize;
unsigned long st_blocks;
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned long __unused4;
unsigned long __unused5;
};
@@ -49,15 +39,9 @@ struct kernel_stat64 {
long long st_size; /* Size of file, in bytes. */
long st_blksize; /* Optimal block size for I/O. */
long long st_blocks; /* Number 512-byte blocks allocated. */
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned long int __uclibc_unused4;
unsigned long int __uclibc_unused5;
};
diff --git a/libc/sysdeps/linux/sparc/bits/kernel_stat.h
b/libc/sysdeps/linux/sparc/bits/kernel_stat.h
index 5e214c72f..e960857fe 100644
--- a/libc/sysdeps/linux/sparc/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/sparc/bits/kernel_stat.h
@@ -5,10 +5,6 @@
* struct kernel_stat should look like... It turns out each arch has a
* different opinion on the subject... */
-#if defined(__UCLIBC_USE_TIME64__)
-#include "internal/time64_helpers.h"
-#endif
-
struct kernel_stat {
unsigned short st_dev;
unsigned long st_ino;
@@ -18,15 +14,9 @@ struct kernel_stat {
unsigned short st_gid;
unsigned short st_rdev;
long st_size;
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
long st_blksize;
long st_blocks;
unsigned long __unused4[2];
@@ -45,15 +35,9 @@ struct kernel_stat64 {
unsigned int st_blksize;
unsigned char __pad4[8];
unsigned int st_blocks;
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned int __unused4;
unsigned int __unused5;
};
diff --git a/libc/sysdeps/linux/xtensa/bits/kernel_stat.h
b/libc/sysdeps/linux/xtensa/bits/kernel_stat.h
index 07ff39540..d884344d3 100644
--- a/libc/sysdeps/linux/xtensa/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/xtensa/bits/kernel_stat.h
@@ -5,10 +5,6 @@
* struct kernel_stat should look like... It turns out each arch has a
* different opinion on the subject... */
-#if defined(__UCLIBC_USE_TIME64__)
-#include "internal/time64_helpers.h"
-#endif
-
struct kernel_stat {
unsigned long st_dev;
unsigned long st_ino;
@@ -20,15 +16,9 @@ struct kernel_stat {
long st_size;
unsigned long st_blksize;
unsigned long st_blocks;
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
-#endif
unsigned long __unused4;
unsigned long __unused5;
};
@@ -45,15 +35,9 @@ struct kernel_stat64 {
unsigned long st_blksize; /* Optimal block size for I/O. */
unsigned long __uclibc_unused2;
unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
-#if defined(__UCLIBC_USE_TIME64__)
- struct __ts32_struct __st_atim32;
- struct __ts32_struct __st_mtim32;
- struct __ts32_struct __st_ctim32;
-#else
struct timespec st_atim; /* Time of last access. */
struct timespec st_mtim; /* Time of last modification. */
struct timespec st_ctim; /* Time of last status change. */
-#endif
unsigned long __uclibc_unused4;
unsigned long __uclibc_unused5;
};
--
2.44.0