Home | History | Annotate | Download | only in asm-arm
      1 #ifndef _ASMARM_STAT_H
      2 #define _ASMARM_STAT_H
      3 
      4 struct __old_kernel_stat {
      5 	unsigned short st_dev;
      6 	unsigned short st_ino;
      7 	unsigned short st_mode;
      8 	unsigned short st_nlink;
      9 	unsigned short st_uid;
     10 	unsigned short st_gid;
     11 	unsigned short st_rdev;
     12 	unsigned long  st_size;
     13 	unsigned long  st_atime;
     14 	unsigned long  st_mtime;
     15 	unsigned long  st_ctime;
     16 };
     17 
     18 #define STAT_HAVE_NSEC
     19 
     20 struct stat {
     21 #if defined(__ARMEB__)
     22 	unsigned short st_dev;
     23 	unsigned short __pad1;
     24 #else
     25 	unsigned long  st_dev;
     26 #endif
     27 	unsigned long  st_ino;
     28 	unsigned short st_mode;
     29 	unsigned short st_nlink;
     30 	unsigned short st_uid;
     31 	unsigned short st_gid;
     32 #if defined(__ARMEB__)
     33 	unsigned short st_rdev;
     34 	unsigned short __pad2;
     35 #else
     36 	unsigned long  st_rdev;
     37 #endif
     38 	unsigned long  st_size;
     39 	unsigned long  st_blksize;
     40 	unsigned long  st_blocks;
     41 	unsigned long  st_atime;
     42 	unsigned long  st_atime_nsec;
     43 	unsigned long  st_mtime;
     44 	unsigned long  st_mtime_nsec;
     45 	unsigned long  st_ctime;
     46 	unsigned long  st_ctime_nsec;
     47 	unsigned long  __unused4;
     48 	unsigned long  __unused5;
     49 };
     50 
     51 /* This matches struct stat64 in glibc2.1, hence the absolutely
     52  * insane amounts of padding around dev_t's.
     53  * Note: The kernel zero's the padded region because glibc might read them
     54  * in the hope that the kernel has stretched to using larger sizes.
     55  */
     56 struct stat64 {
     57 	unsigned long long	st_dev;
     58 	unsigned char   __pad0[4];
     59 
     60 #define STAT64_HAS_BROKEN_ST_INO	1
     61 	unsigned long	__st_ino;
     62 	unsigned int	st_mode;
     63 	unsigned int	st_nlink;
     64 
     65 	unsigned long	st_uid;
     66 	unsigned long	st_gid;
     67 
     68 	unsigned long long	st_rdev;
     69 	unsigned char   __pad3[4];
     70 
     71 	long long	st_size;
     72 	unsigned long	st_blksize;
     73 	unsigned long long st_blocks;	/* Number 512-byte blocks allocated. */
     74 
     75 	unsigned long	st_atime;
     76 	unsigned long	st_atime_nsec;
     77 
     78 	unsigned long	st_mtime;
     79 	unsigned long	st_mtime_nsec;
     80 
     81 	unsigned long	st_ctime;
     82 	unsigned long	st_ctime_nsec;
     83 
     84 	unsigned long long	st_ino;
     85 };
     86 
     87 #endif
     88