Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  *  S390 version
0004  *
0005  *  Derived from "include/asm-i386/stat.h"
0006  */
0007 
0008 #ifndef _S390_STAT_H
0009 #define _S390_STAT_H
0010 
0011 #ifndef __s390x__
0012 struct __old_kernel_stat {
0013         unsigned short st_dev;
0014         unsigned short st_ino;
0015         unsigned short st_mode;
0016         unsigned short st_nlink;
0017         unsigned short st_uid;
0018         unsigned short st_gid;
0019         unsigned short st_rdev;
0020         unsigned long  st_size;
0021         unsigned long  st_atime;
0022         unsigned long  st_mtime;
0023         unsigned long  st_ctime;
0024 };
0025 
0026 struct stat {
0027         unsigned short st_dev;
0028         unsigned short __pad1;
0029         unsigned long  st_ino;
0030         unsigned short st_mode;
0031         unsigned short st_nlink;
0032         unsigned short st_uid;
0033         unsigned short st_gid;
0034         unsigned short st_rdev;
0035         unsigned short __pad2;
0036         unsigned long  st_size;
0037         unsigned long  st_blksize;
0038         unsigned long  st_blocks;
0039         unsigned long  st_atime;
0040         unsigned long  st_atime_nsec;
0041         unsigned long  st_mtime;
0042         unsigned long  st_mtime_nsec;
0043         unsigned long  st_ctime;
0044         unsigned long  st_ctime_nsec;
0045         unsigned long  __unused4;
0046         unsigned long  __unused5;
0047 };
0048 
0049 /* This matches struct stat64 in glibc2.1, hence the absolutely
0050  * insane amounts of padding around dev_t's.
0051  */
0052 struct stat64 {
0053         unsigned long long  st_dev;
0054         unsigned int    __pad1;
0055 #define STAT64_HAS_BROKEN_ST_INO        1
0056         unsigned long   __st_ino;
0057         unsigned int    st_mode;
0058         unsigned int    st_nlink;
0059         unsigned long   st_uid;
0060         unsigned long   st_gid;
0061         unsigned long long  st_rdev;
0062         unsigned int    __pad3;
0063         long long   st_size;
0064         unsigned long   st_blksize;
0065         unsigned char   __pad4[4];
0066         unsigned long   __pad5;     /* future possible st_blocks high bits */
0067         unsigned long   st_blocks;  /* Number 512-byte blocks allocated. */
0068         unsigned long   st_atime;
0069         unsigned long   st_atime_nsec;
0070         unsigned long   st_mtime;
0071         unsigned long   st_mtime_nsec;
0072         unsigned long   st_ctime;
0073         unsigned long   st_ctime_nsec;  /* will be high 32 bits of ctime someday */
0074         unsigned long long  st_ino;
0075 };
0076 
0077 #else /* __s390x__ */
0078 
0079 struct stat {
0080         unsigned long  st_dev;
0081         unsigned long  st_ino;
0082         unsigned long  st_nlink;
0083         unsigned int   st_mode;
0084         unsigned int   st_uid;
0085         unsigned int   st_gid;
0086         unsigned int   __pad1;
0087         unsigned long  st_rdev;
0088         unsigned long  st_size;
0089         unsigned long  st_atime;
0090     unsigned long  st_atime_nsec;
0091         unsigned long  st_mtime;
0092     unsigned long  st_mtime_nsec;
0093         unsigned long  st_ctime;
0094     unsigned long  st_ctime_nsec;
0095         unsigned long  st_blksize;
0096         long           st_blocks;
0097         unsigned long  __unused[3];
0098 };
0099 
0100 #endif /* __s390x__ */
0101 
0102 #define STAT_HAVE_NSEC 1
0103 
0104 #endif