stat.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #ifndef _ASM_X86_STAT_H
  2. #define _ASM_X86_STAT_H
  3. #define STAT_HAVE_NSEC 1
  4. #ifdef __i386__
  5. struct stat {
  6. unsigned long st_dev;
  7. unsigned long st_ino;
  8. unsigned short st_mode;
  9. unsigned short st_nlink;
  10. unsigned short st_uid;
  11. unsigned short st_gid;
  12. unsigned long st_rdev;
  13. unsigned long st_size;
  14. unsigned long st_blksize;
  15. unsigned long st_blocks;
  16. unsigned long st_atime;
  17. unsigned long st_atime_nsec;
  18. unsigned long st_mtime;
  19. unsigned long st_mtime_nsec;
  20. unsigned long st_ctime;
  21. unsigned long st_ctime_nsec;
  22. unsigned long __unused4;
  23. unsigned long __unused5;
  24. };
  25. #define STAT64_HAS_BROKEN_ST_INO 1
  26. /* This matches struct stat64 in glibc2.1, hence the absolutely
  27. * insane amounts of padding around dev_t's.
  28. */
  29. struct stat64 {
  30. unsigned long long st_dev;
  31. unsigned char __pad0[4];
  32. unsigned long __st_ino;
  33. unsigned int st_mode;
  34. unsigned int st_nlink;
  35. unsigned long st_uid;
  36. unsigned long st_gid;
  37. unsigned long long st_rdev;
  38. unsigned char __pad3[4];
  39. long long st_size;
  40. unsigned long st_blksize;
  41. /* Number 512-byte blocks allocated. */
  42. unsigned long long st_blocks;
  43. unsigned long st_atime;
  44. unsigned long st_atime_nsec;
  45. unsigned long st_mtime;
  46. unsigned int st_mtime_nsec;
  47. unsigned long st_ctime;
  48. unsigned long st_ctime_nsec;
  49. unsigned long long st_ino;
  50. };
  51. #else /* __i386__ */
  52. struct stat {
  53. unsigned long st_dev;
  54. unsigned long st_ino;
  55. unsigned long st_nlink;
  56. unsigned int st_mode;
  57. unsigned int st_uid;
  58. unsigned int st_gid;
  59. unsigned int __pad0;
  60. unsigned long st_rdev;
  61. long st_size;
  62. long st_blksize;
  63. long st_blocks; /* Number 512-byte blocks allocated. */
  64. unsigned long st_atime;
  65. unsigned long st_atime_nsec;
  66. unsigned long st_mtime;
  67. unsigned long st_mtime_nsec;
  68. unsigned long st_ctime;
  69. unsigned long st_ctime_nsec;
  70. long __unused[3];
  71. };
  72. #endif
  73. /* for 32bit emulation and 32 bit kernels */
  74. struct __old_kernel_stat {
  75. unsigned short st_dev;
  76. unsigned short st_ino;
  77. unsigned short st_mode;
  78. unsigned short st_nlink;
  79. unsigned short st_uid;
  80. unsigned short st_gid;
  81. unsigned short st_rdev;
  82. #ifdef __i386__
  83. unsigned long st_size;
  84. unsigned long st_atime;
  85. unsigned long st_mtime;
  86. unsigned long st_ctime;
  87. #else
  88. unsigned int st_size;
  89. unsigned int st_atime;
  90. unsigned int st_mtime;
  91. unsigned int st_ctime;
  92. #endif
  93. };
  94. #endif /* _ASM_X86_STAT_H */