stat.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef _ASM_M32R_STAT_H
  3. #define _ASM_M32R_STAT_H
  4. #include <asm/byteorder.h>
  5. struct __old_kernel_stat {
  6. unsigned short st_dev;
  7. unsigned short st_ino;
  8. unsigned short st_mode;
  9. unsigned short st_nlink;
  10. unsigned short st_uid;
  11. unsigned short st_gid;
  12. unsigned short st_rdev;
  13. unsigned long st_size;
  14. unsigned long st_atime;
  15. unsigned long st_mtime;
  16. unsigned long st_ctime;
  17. };
  18. #define STAT_HAVE_NSEC 1
  19. struct stat {
  20. unsigned short st_dev;
  21. unsigned short __pad1;
  22. unsigned long st_ino;
  23. unsigned short st_mode;
  24. unsigned short st_nlink;
  25. unsigned short st_uid;
  26. unsigned short st_gid;
  27. unsigned short st_rdev;
  28. unsigned short __pad2;
  29. unsigned long st_size;
  30. unsigned long st_blksize;
  31. unsigned long st_blocks;
  32. unsigned long st_atime;
  33. unsigned long st_atime_nsec;
  34. unsigned long st_mtime;
  35. unsigned long st_mtime_nsec;
  36. unsigned long st_ctime;
  37. unsigned long st_ctime_nsec;
  38. unsigned long __unused4;
  39. unsigned long __unused5;
  40. };
  41. /* This matches struct stat64 in glibc2.1, hence the absolutely
  42. * insane amounts of padding around dev_t's.
  43. */
  44. struct stat64 {
  45. unsigned long long st_dev;
  46. unsigned char __pad0[4];
  47. #define STAT64_HAS_BROKEN_ST_INO
  48. unsigned long __st_ino;
  49. unsigned int st_mode;
  50. unsigned int st_nlink;
  51. unsigned long st_uid;
  52. unsigned long st_gid;
  53. unsigned long long st_rdev;
  54. unsigned char __pad3[4];
  55. long long st_size;
  56. unsigned long st_blksize;
  57. #if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
  58. unsigned long __pad4; /* future possible st_blocks high bits */
  59. unsigned long st_blocks; /* Number 512-byte blocks allocated. */
  60. #elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
  61. unsigned long st_blocks; /* Number 512-byte blocks allocated. */
  62. unsigned long __pad4; /* future possible st_blocks high bits */
  63. #else
  64. #error no endian defined
  65. #endif
  66. unsigned long st_atime;
  67. unsigned long st_atime_nsec;
  68. unsigned long st_mtime;
  69. unsigned long st_mtime_nsec;
  70. unsigned long st_ctime;
  71. unsigned long st_ctime_nsec;
  72. unsigned long long st_ino;
  73. };
  74. #endif /* _ASM_M32R_STAT_H */