/* Get information about the file NAME in BUF. */ int __fxstatat (int vers, int fd, const char *file, struct stat *buf, int flag) { if (vers == _STAT_VER_KERNEL) { int rc = INLINE_SYSCALL (fstatat64, 4, fd, file, buf, flag); return rc ?: stat_overflow (buf); }
/* Get information about the file NAME in BUF. */ int __xstat (int vers, const char *name, struct stat *buf) { if (vers == _STAT_VER_KERNEL) { int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0); return rc ?: stat_overflow (buf); }
/* Get information about the file FD in BUF. */ int __fxstat (int vers, int fd, struct stat *buf) { if (vers == _STAT_VER_KERNEL) { int rc = INLINE_SYSCALL (fstat64, 2, fd, buf); return rc ?: stat_overflow (buf); }
/* Get information about the file NAME in BUF. */ int __lxstat (int vers, const char *name, struct stat *buf) { if (vers == _STAT_VER_KERNEL) { #ifdef __NR_fstatat64 int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, AT_SYMLINK_NOFOLLOW); #else struct statx tmp; int rc = INLINE_SYSCALL (statx, 5, AT_FDCWD, name, AT_NO_AUTOMOUNT | AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, &tmp); if (rc == 0) __cp_stat64_statx ((struct stat64 *)buf, &tmp); #endif return rc ?: stat_overflow (buf); }