linux-headers (unknown)

(root)/
include/
asm-generic/
stat.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef __ASM_GENERIC_STAT_H
       3  #define __ASM_GENERIC_STAT_H
       4  
       5  /*
       6   * Everybody gets this wrong and has to stick with it for all
       7   * eternity. Hopefully, this version gets used by new architectures
       8   * so they don't fall into the same traps.
       9   *
      10   * stat64 is copied from powerpc64, with explicit padding added.
      11   * stat is the same structure layout on 64-bit, without the 'long long'
      12   * types.
      13   *
      14   * By convention, 64 bit architectures use the stat interface, while
      15   * 32 bit architectures use the stat64 interface. Note that we don't
      16   * provide an __old_kernel_stat here, which new architecture should
      17   * not have to start with.
      18   */
      19  
      20  #include <asm/bitsperlong.h>
      21  
      22  #define STAT_HAVE_NSEC 1
      23  
      24  struct stat {
      25  	unsigned long	st_dev;		/* Device.  */
      26  	unsigned long	st_ino;		/* File serial number.  */
      27  	unsigned int	st_mode;	/* File mode.  */
      28  	unsigned int	st_nlink;	/* Link count.  */
      29  	unsigned int	st_uid;		/* User ID of the file's owner.  */
      30  	unsigned int	st_gid;		/* Group ID of the file's group. */
      31  	unsigned long	st_rdev;	/* Device number, if device.  */
      32  	unsigned long	__pad1;
      33  	long		st_size;	/* Size of file, in bytes.  */
      34  	int		st_blksize;	/* Optimal block size for I/O.  */
      35  	int		__pad2;
      36  	long		st_blocks;	/* Number 512-byte blocks allocated. */
      37  	long		st_atime;	/* Time of last access.  */
      38  	unsigned long	st_atime_nsec;
      39  	long		st_mtime;	/* Time of last modification.  */
      40  	unsigned long	st_mtime_nsec;
      41  	long		st_ctime;	/* Time of last status change.  */
      42  	unsigned long	st_ctime_nsec;
      43  	unsigned int	__unused4;
      44  	unsigned int	__unused5;
      45  };
      46  
      47  /* This matches struct stat64 in glibc2.1. Only used for 32 bit. */
      48  #if __BITS_PER_LONG != 64 || defined(__ARCH_WANT_STAT64)
      49  struct stat64 {
      50  	unsigned long long st_dev;	/* Device.  */
      51  	unsigned long long st_ino;	/* File serial number.  */
      52  	unsigned int	st_mode;	/* File mode.  */
      53  	unsigned int	st_nlink;	/* Link count.  */
      54  	unsigned int	st_uid;		/* User ID of the file's owner.  */
      55  	unsigned int	st_gid;		/* Group ID of the file's group. */
      56  	unsigned long long st_rdev;	/* Device number, if device.  */
      57  	unsigned long long __pad1;
      58  	long long	st_size;	/* Size of file, in bytes.  */
      59  	int		st_blksize;	/* Optimal block size for I/O.  */
      60  	int		__pad2;
      61  	long long	st_blocks;	/* Number 512-byte blocks allocated. */
      62  	int		st_atime;	/* Time of last access.  */
      63  	unsigned int	st_atime_nsec;
      64  	int		st_mtime;	/* Time of last modification.  */
      65  	unsigned int	st_mtime_nsec;
      66  	int		st_ctime;	/* Time of last status change.  */
      67  	unsigned int	st_ctime_nsec;
      68  	unsigned int	__unused4;
      69  	unsigned int	__unused5;
      70  };
      71  #endif
      72  
      73  #endif /* __ASM_GENERIC_STAT_H */