ext2_types.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /*
  2. * If linux/types.h is already been included, assume it has defined
  3. * everything we need. (cross fingers) Other header files may have
  4. * also defined the types that we need.
  5. */
  6. #if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && !defined(_EXT2_TYPES_H))
  7. # define _EXT2_TYPES_H
  8. # define __S8_TYPEDEF __signed__ char
  9. # define __U8_TYPEDEF unsigned char
  10. # define __S16_TYPEDEF __signed__ short
  11. # define __U16_TYPEDEF unsigned short
  12. # define __S32_TYPEDEF __signed__ int
  13. # define __U32_TYPEDEF unsigned int
  14. # define __S64_TYPEDEF __signed__ long long
  15. # define __U64_TYPEDEF unsigned long long
  16. # ifdef __U8_TYPEDEF
  17. typedef __U8_TYPEDEF __u8;
  18. # else
  19. typedef unsigned char __u8;
  20. # endif
  21. # ifdef __S8_TYPEDEF
  22. typedef __S8_TYPEDEF __s8;
  23. # else
  24. typedef signed char __s8;
  25. # endif
  26. # ifdef __U16_TYPEDEF
  27. typedef __U16_TYPEDEF __u16;
  28. # else
  29. # if (4 == 2)
  30. typedef unsigned int __u16;
  31. # else
  32. # if (2 == 2)
  33. typedef unsigned short __u16;
  34. # else
  35. ? == error : undefined 16 bit type
  36. # endif /* SIZEOF_SHORT == 2 */
  37. # endif /* SIZEOF_INT == 2 */
  38. # endif /* __U16_TYPEDEF */
  39. # ifdef __S16_TYPEDEF
  40. typedef __S16_TYPEDEF __s16;
  41. # else
  42. # if (4 == 2)
  43. typedef int __s16;
  44. # else
  45. # if (2 == 2)
  46. typedef short __s16;
  47. # else
  48. ? == error
  49. : undefined 16 bit type
  50. # endif /* SIZEOF_SHORT == 2 */
  51. # endif /* SIZEOF_INT == 2 */
  52. # endif /* __S16_TYPEDEF */
  53. # ifdef __U32_TYPEDEF
  54. typedef __U32_TYPEDEF __u32;
  55. # else
  56. # if (4 == 4)
  57. typedef unsigned int __u32;
  58. # else
  59. # if (4 == 4)
  60. typedef unsigned long __u32;
  61. # else
  62. # if (2 == 4)
  63. typedef unsigned short __u32;
  64. # else
  65. ? == error
  66. : undefined 32 bit type
  67. # endif /* SIZEOF_SHORT == 4 */
  68. # endif /* SIZEOF_LONG == 4 */
  69. # endif /* SIZEOF_INT == 4 */
  70. # endif /* __U32_TYPEDEF */
  71. # ifdef __S32_TYPEDEF
  72. typedef __S32_TYPEDEF __s32;
  73. # else
  74. # if (4 == 4)
  75. typedef int __s32;
  76. # else
  77. # if (4 == 4)
  78. typedef long __s32;
  79. # else
  80. # if (2 == 4)
  81. typedef short __s32;
  82. # else
  83. ? == error
  84. : undefined 32 bit type
  85. # endif /* SIZEOF_SHORT == 4 */
  86. # endif /* SIZEOF_LONG == 4 */
  87. # endif /* SIZEOF_INT == 4 */
  88. # endif /* __S32_TYPEDEF */
  89. # ifdef __U64_TYPEDEF
  90. typedef __U64_TYPEDEF __u64;
  91. # else
  92. # if (4 == 8)
  93. typedef unsigned int __u64;
  94. # else
  95. # if (4 == 8)
  96. typedef unsigned long __u64;
  97. # else
  98. # if (8 == 8)
  99. typedef unsigned long long __u64;
  100. # endif /* SIZEOF_LONG_LONG == 8 */
  101. # endif /* SIZEOF_LONG == 8 */
  102. # endif /* SIZEOF_INT == 8 */
  103. # endif /* __U64_TYPEDEF */
  104. # ifdef __S64_TYPEDEF
  105. typedef __S64_TYPEDEF __s64;
  106. # else
  107. # if (4 == 8)
  108. typedef int __s64;
  109. # else
  110. # if (4 == 8)
  111. typedef long __s64;
  112. # else
  113. # if (8 == 8)
  114. # if defined(__GNUC__)
  115. typedef __signed__ long long __s64;
  116. # else
  117. typedef signed long long __s64;
  118. # endif /* __GNUC__ */
  119. # endif /* SIZEOF_LONG_LONG == 8 */
  120. # endif /* SIZEOF_LONG == 8 */
  121. # endif /* SIZEOF_INT == 8 */
  122. # endif /* __S64_TYPEDEF */
  123. # undef __S8_TYPEDEF
  124. # undef __U8_TYPEDEF
  125. # undef __S16_TYPEDEF
  126. # undef __U16_TYPEDEF
  127. # undef __S32_TYPEDEF
  128. # undef __U32_TYPEDEF
  129. # undef __S64_TYPEDEF
  130. # undef __U64_TYPEDEF
  131. #endif /* _*_TYPES_H */
  132. /* These defines are needed for the public ext2fs.h header file */
  133. #define HAVE_SYS_TYPES_H 1
  134. #undef WORDS_BIGENDIAN