kernel_stat.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef _BITS_STAT_STRUCT_H
  2. #define _BITS_STAT_STRUCT_H
  3. /* This file provides whatever this particular arch's kernel thinks
  4. * struct kernel_stat should look like... It turns out each arch has a
  5. * different opinion on the subject... */
  6. #if defined(__UCLIBC_USE_TIME64__)
  7. #include <bits/types.h>
  8. struct ts32_struct {
  9. __S32_TYPE tv_sec;
  10. __S32_TYPE tv_nsec;
  11. };
  12. #endif
  13. struct kernel_stat {
  14. #if defined(__ARMEB__)
  15. unsigned short st_dev;
  16. unsigned short __pad1;
  17. #else
  18. unsigned long st_dev;
  19. #endif
  20. unsigned long st_ino;
  21. unsigned short st_mode;
  22. unsigned short st_nlink;
  23. unsigned short st_uid;
  24. unsigned short st_gid;
  25. #if defined(__ARMEB__)
  26. unsigned short st_rdev;
  27. unsigned short __pad2;
  28. #else
  29. unsigned long st_rdev;
  30. #endif
  31. unsigned long st_size;
  32. unsigned long st_blksize;
  33. unsigned long st_blocks;
  34. #if defined(__UCLIBC_USE_TIME64__)
  35. struct ts32_struct __st_atim32;
  36. struct ts32_struct __st_mtim32;
  37. struct ts32_struct __st_ctim32;
  38. #else
  39. struct timespec st_atim;
  40. struct timespec st_mtim;
  41. struct timespec st_ctim;
  42. #endif
  43. unsigned long __uclibc_unused4;
  44. unsigned long __uclibc_unused5;
  45. };
  46. struct kernel_stat64 {
  47. unsigned long long st_dev;
  48. unsigned char __pad0[4];
  49. #define _HAVE_STAT64___ST_INO
  50. unsigned long __st_ino;
  51. unsigned int st_mode;
  52. unsigned int st_nlink;
  53. unsigned long st_uid;
  54. unsigned long st_gid;
  55. unsigned long long st_rdev;
  56. unsigned char __pad3[4];
  57. long long st_size;
  58. unsigned long st_blksize;
  59. unsigned long long st_blocks; /* Number 512-byte blocks allocated. */
  60. #if defined(__UCLIBC_USE_TIME64__)
  61. struct ts32_struct __st_atim32;
  62. struct ts32_struct __st_mtim32;
  63. struct ts32_struct __st_ctim32;
  64. #else
  65. struct timespec st_atim;
  66. struct timespec st_mtim;
  67. struct timespec st_ctim;
  68. #endif
  69. unsigned long long st_ino;
  70. #ifndef __ARM_EABI__
  71. } __attribute__((packed));
  72. #else
  73. };
  74. #endif
  75. #endif /* _BITS_STAT_STRUCT_H */