2020-07-18 02:49:50 +00:00
|
|
|
#ifndef _KERNEL_STAT_H
|
|
|
|
#define _KERNEL_STAT_H
|
|
|
|
|
2004-07-20 16:35:32 +00:00
|
|
|
#include <sgidefs.h>
|
2003-04-05 19:57:35 +00:00
|
|
|
/* As tempting as it is to define XSTAT_IS_XSTAT64 for n64, the
|
|
|
|
userland data structures are not identical, because of different
|
|
|
|
padding. */
|
|
|
|
/* Definition of `struct stat' used in the kernel. */
|
2004-11-24 04:37:35 +00:00
|
|
|
#if _MIPS_SIM != _ABIO32
|
2003-03-17 15:47:13 +00:00
|
|
|
struct kernel_stat
|
|
|
|
{
|
|
|
|
unsigned int st_dev;
|
|
|
|
unsigned int __pad1[3];
|
2003-04-05 19:57:35 +00:00
|
|
|
unsigned long long st_ino;
|
2003-03-17 15:47:13 +00:00
|
|
|
unsigned int st_mode;
|
|
|
|
unsigned int st_nlink;
|
|
|
|
int st_uid;
|
|
|
|
int st_gid;
|
|
|
|
unsigned int st_rdev;
|
|
|
|
unsigned int __pad2[3];
|
2003-04-05 19:57:35 +00:00
|
|
|
long long st_size;
|
2006-06-02 15:29:03 +00:00
|
|
|
unsigned int st_atime_sec;
|
|
|
|
unsigned int st_atime_nsec;
|
|
|
|
unsigned int st_mtime_sec;
|
|
|
|
unsigned int st_mtime_nsec;
|
|
|
|
unsigned int st_ctime_sec;
|
|
|
|
unsigned int st_ctime_nsec;
|
2003-03-17 15:47:13 +00:00
|
|
|
unsigned int st_blksize;
|
|
|
|
unsigned int __pad3;
|
2003-04-05 19:57:35 +00:00
|
|
|
unsigned long long st_blocks;
|
2003-03-17 15:47:13 +00:00
|
|
|
};
|
|
|
|
#else
|
1997-07-12 23:32:57 +00:00
|
|
|
struct kernel_stat
|
|
|
|
{
|
|
|
|
unsigned long int st_dev;
|
|
|
|
long int __pad1[3]; /* Reserved for network id */
|
|
|
|
unsigned long int st_ino;
|
|
|
|
unsigned long int st_mode;
|
|
|
|
unsigned long int st_nlink;
|
|
|
|
long int st_uid;
|
|
|
|
long int st_gid;
|
|
|
|
unsigned long int st_rdev;
|
|
|
|
long int __pad2[2];
|
|
|
|
long int st_size;
|
|
|
|
long int __pad3;
|
2006-06-02 15:29:03 +00:00
|
|
|
unsigned int st_atime_sec;
|
|
|
|
unsigned int st_atime_nsec;
|
|
|
|
unsigned int st_mtime_sec;
|
|
|
|
unsigned int st_mtime_nsec;
|
|
|
|
unsigned int st_ctime_sec;
|
|
|
|
unsigned int st_ctime_nsec;
|
1997-07-12 23:32:57 +00:00
|
|
|
long int st_blksize;
|
|
|
|
long int st_blocks;
|
|
|
|
char st_fstype[16]; /* Filesystem type name, unsupported */
|
|
|
|
long st_pad4[8];
|
|
|
|
/* Linux specific fields */
|
|
|
|
unsigned int st_flags;
|
|
|
|
unsigned int st_gen;
|
|
|
|
};
|
2003-03-17 15:47:13 +00:00
|
|
|
#endif
|
2016-11-21 16:23:12 +00:00
|
|
|
|
2020-07-15 12:42:32 +00:00
|
|
|
#define STAT_IS_KERNEL_STAT 0
|
2020-07-18 02:49:50 +00:00
|
|
|
#define STAT64_IS_KERNEL_STAT64 0
|
2016-11-21 16:23:12 +00:00
|
|
|
#define XSTAT_IS_XSTAT64 0
|
linux: Fix STATFS_IS_STATFS64 definition
aarch64, arc, ia64, mips64, powerpc64, riscv32, riscv64, s390x, sparc64,
and x86_64 defines STATFS_IS_STATFS64 to 0, but all of them alias
statfs to statfs64 and the struct statfs has the same and layout of
struct statfs64.
The correct definition will be used on the [f]statfs[64] consolidation.
This patch does not change code generation since the symbols are
implemented using the auto-generation syscall for all the aforementioned
ABIs.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2021-02-05 14:55:45 +00:00
|
|
|
#if _MIPS_SIM == _ABI64
|
|
|
|
# define STATFS_IS_STATFS64 1
|
|
|
|
#else
|
|
|
|
# define STATFS_IS_STATFS64 0
|
|
|
|
#endif
|
2021-03-19 12:51:29 +00:00
|
|
|
/* MIPS64 has unsigned 32 bit timestamps fields, so use statx as well. */
|
|
|
|
#if _MIPS_SIM == _ABI64
|
|
|
|
# define STAT_HAS_TIME32
|
|
|
|
#endif
|
2020-07-18 02:49:50 +00:00
|
|
|
|
|
|
|
#endif
|