mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	It indicates that the glibc export stat64 is similar in size and layout of the kernel stat64 used on the syscall. It is not currently used on stat implementation, but the idea is to indicate whether to use the kernel_stat to issue on the syscall on the *stat*64 variant (more specifically on mips which its exported ABI does not match the kernel). Reviewed-by: Lukasz Majewski <lukma@denx.de>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Definition of `struct stat' used in the kernel.  */
 | 
						|
struct kernel_stat
 | 
						|
  {
 | 
						|
    unsigned int st_dev;
 | 
						|
    unsigned int st_ino;
 | 
						|
    unsigned int st_mode;
 | 
						|
    unsigned int st_nlink;
 | 
						|
    unsigned int st_uid;
 | 
						|
    unsigned int st_gid;
 | 
						|
    unsigned int st_rdev;
 | 
						|
    long int st_size;
 | 
						|
    unsigned long int st_atime;
 | 
						|
    unsigned long int st_mtime;
 | 
						|
    unsigned long int st_ctime;
 | 
						|
    unsigned int st_blksize;
 | 
						|
    int st_blocks;
 | 
						|
    unsigned int st_flags;
 | 
						|
    unsigned int st_gen;
 | 
						|
  };
 | 
						|
 | 
						|
/* Definition of `struct stat64' used in the kernel.  */
 | 
						|
struct kernel_stat64
 | 
						|
  {
 | 
						|
    unsigned long   st_dev;
 | 
						|
    unsigned long   st_ino;
 | 
						|
    unsigned long   st_rdev;
 | 
						|
    long            st_size;
 | 
						|
    unsigned long   st_blocks;
 | 
						|
 | 
						|
    unsigned int    st_mode;
 | 
						|
    unsigned int    st_uid;
 | 
						|
    unsigned int    st_gid;
 | 
						|
    unsigned int    st_blksize;
 | 
						|
    unsigned int    st_nlink;
 | 
						|
    unsigned int    __pad0;
 | 
						|
 | 
						|
    unsigned long   st_atime;
 | 
						|
    unsigned long   st_atimensec;
 | 
						|
    unsigned long   st_mtime;
 | 
						|
    unsigned long   st_mtimensec;
 | 
						|
    unsigned long   st_ctime;
 | 
						|
    unsigned long   st_ctimensec;
 | 
						|
    long            __glibc_reserved[3];
 | 
						|
  };
 | 
						|
 | 
						|
/* Definition of `struct stat' used by glibc 2.0.  */
 | 
						|
struct glibc2_stat
 | 
						|
  {
 | 
						|
    __dev_t st_dev;
 | 
						|
    __ino_t st_ino;
 | 
						|
    __mode_t st_mode;
 | 
						|
    __nlink_t st_nlink;
 | 
						|
    __uid_t st_uid;
 | 
						|
    __gid_t st_gid;
 | 
						|
    __dev_t st_rdev;
 | 
						|
    __off_t st_size;
 | 
						|
    __time_t st_atime;
 | 
						|
    __time_t st_mtime;
 | 
						|
    __time_t st_ctime;
 | 
						|
    unsigned int st_blksize;
 | 
						|
    int st_blocks;
 | 
						|
    unsigned int st_flags;
 | 
						|
    unsigned int st_gen;
 | 
						|
  };
 | 
						|
 | 
						|
/* Definition of `struct stat' used by glibc 2.1.  */
 | 
						|
struct glibc21_stat
 | 
						|
  {
 | 
						|
    __dev_t st_dev;
 | 
						|
    __ino64_t st_ino;
 | 
						|
    __mode_t st_mode;
 | 
						|
    __nlink_t st_nlink;
 | 
						|
    __uid_t st_uid;
 | 
						|
    __gid_t st_gid;
 | 
						|
    __dev_t st_rdev;
 | 
						|
    __off_t st_size;
 | 
						|
    __time_t st_atime;
 | 
						|
    __time_t st_mtime;
 | 
						|
    __time_t st_ctime;
 | 
						|
    __blkcnt64_t st_blocks;
 | 
						|
    __blksize_t st_blksize;
 | 
						|
    unsigned int st_flags;
 | 
						|
    unsigned int st_gen;
 | 
						|
    int __pad3;
 | 
						|
    long __glibc_reserved[4];
 | 
						|
  };
 | 
						|
 | 
						|
#define STAT_IS_KERNEL_STAT 0
 | 
						|
#define STAT64_IS_KERNEL_STAT64 1
 | 
						|
#define XSTAT_IS_XSTAT64 1
 | 
						|
#define STATFS_IS_STATFS64 0
 |