home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / stdint.h < prev    next >
C/C++ Source or Header  |  2004-01-30  |  4KB  |  183 lines

  1. /* stdint.h - integer types
  2.  
  3.    Copyright 2003 Red Hat, Inc.
  4.  
  5. This file is part of Cygwin.
  6.  
  7. This software is a copyrighted work licensed under the terms of the
  8. Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
  9. details. */
  10.  
  11. #ifndef _STDINT_H
  12. #define _STDINT_H
  13.  
  14. /* Exact-width integer types */
  15.  
  16. #ifndef __int8_t_defined
  17. #define __int8_t_defined
  18. typedef signed char int8_t;
  19. typedef short int16_t;
  20. typedef long int32_t;
  21. typedef long long int64_t;
  22. #endif
  23.  
  24. typedef unsigned char uint8_t;
  25. typedef unsigned short uint16_t;
  26. #ifndef __uint32_t_defined
  27. #define __uint32_t_defined
  28. typedef unsigned long uint32_t;
  29. #endif
  30. typedef unsigned long long uint64_t;
  31.  
  32. /* Minimum-width integer types */
  33.  
  34. typedef signed char int_least8_t;
  35. typedef short int_least16_t;
  36. typedef long int_least32_t;
  37. typedef long long int_least64_t;
  38.  
  39. typedef unsigned char uint_least8_t;
  40. typedef unsigned short uint_least16_t;
  41. typedef unsigned long uint_least32_t;
  42. typedef unsigned long long uint_least64_t;
  43.  
  44. /* Fastest minimum-width integer types */
  45.  
  46. typedef signed char int_fast8_t;
  47. typedef long int_fast16_t;
  48. typedef long int_fast32_t;
  49. typedef long long int_fast64_t;
  50.  
  51. typedef unsigned char uint_fast8_t;
  52. typedef unsigned long uint_fast16_t;
  53. typedef unsigned long uint_fast32_t;
  54. typedef unsigned long long uint_fast64_t;
  55.  
  56. /* Integer types capable of holding object pointers */
  57.  
  58. #ifndef __intptr_t_defined
  59. #define __intptr_t_defined
  60. typedef long intptr_t;
  61. #endif
  62. typedef unsigned long uintptr_t;
  63.  
  64. /* Greatest-width integer types */
  65.  
  66. typedef long long intmax_t;
  67. typedef unsigned long long uintmax_t;
  68.  
  69. /* Limits of exact-width integer types */
  70.  
  71. #define INT8_MIN (-128)
  72. #define INT16_MIN (-32768)
  73. #define INT32_MIN (-2147483647 - 1)
  74. #define INT64_MIN (-9223372036854775807LL - 1LL)
  75.  
  76. #define INT8_MAX (127)
  77. #define INT16_MAX (32767)
  78. #define INT32_MAX (2147483647)
  79. #define INT64_MAX (9223372036854775807LL)
  80.  
  81. #define UINT8_MAX (255)
  82. #define UINT16_MAX (65535)
  83. #define UINT32_MAX (4294967295UL)
  84. #define UINT64_MAX (18446744073709551615ULL)
  85.  
  86. /* Limits of minimum-width integer types */
  87.  
  88. #define INT_LEAST8_MIN (-128)
  89. #define INT_LEAST16_MIN (-32768)
  90. #define INT_LEAST32_MIN (-2147483647 - 1)
  91. #define INT_LEAST64_MIN (-9223372036854775807LL - 1LL)
  92.  
  93. #define INT_LEAST8_MAX (127)
  94. #define INT_LEAST16_MAX (32767)
  95. #define INT_LEAST32_MAX (2147483647)
  96. #define INT_LEAST64_MAX (9223372036854775807LL)
  97.  
  98. #define UINT_LEAST8_MAX (255)
  99. #define UINT_LEAST16_MAX (65535)
  100. #define UINT_LEAST32_MAX (4294967295UL)
  101. #define UINT_LEAST64_MAX (18446744073709551615ULL)
  102.  
  103. /* Limits of fastest minimum-width integer types */
  104.  
  105. #define INT_FAST8_MIN (-128)
  106. #define INT_FAST16_MIN (-2147483647 - 1)
  107. #define INT_FAST32_MIN (-2147483647 - 1)
  108. #define INT_FAST64_MIN (-9223372036854775807LL - 1LL)
  109.  
  110. #define INT_FAST8_MAX (127)
  111. #define INT_FAST16_MAX (2147483647)
  112. #define INT_FAST32_MAX (2147483647)
  113. #define INT_FAST64_MAX (9223372036854775807LL)
  114.  
  115. #define UINT_FAST8_MAX (255)
  116. #define UINT_FAST16_MAX (4294967295UL)
  117. #define UINT_FAST32_MAX (4294967295UL)
  118. #define UINT_FAST64_MAX (18446744073709551615ULL)
  119.  
  120. /* Limits of integer types capable of holding object pointers */
  121.  
  122. #define INTPTR_MIN (-2147483647 - 1)
  123. #define INTPTR_MAX (2147483647)
  124. #define UINTPTR_MAX (4294967295UL)
  125.  
  126. /* Limits of greatest-width integer types */
  127.  
  128. #define INTMAX_MIN (-9223372036854775807LL - 1LL)
  129. #define INTMAX_MAX (9223372036854775807LL)
  130. #define UINTMAX_MAX (18446744073709551615ULL)
  131.  
  132. /* Limits of other integer types */
  133.  
  134. #ifndef PTRDIFF_MIN
  135. #define PTRDIFF_MIN (-2147483647 - 1)
  136. #define PTRDIFF_MAX (2147483647)
  137. #endif
  138.  
  139. #ifndef SIG_ATOMIC_MIN
  140. #define SIG_ATOMIC_MIN (-2147483647 - 1)
  141. #endif
  142. #ifndef SIG_ATOMIC_MAX
  143. #define SIG_ATOMIC_MAX (2147483647)
  144. #endif
  145.  
  146. #ifndef SIZE_MAX
  147. #define SIZE_MAX (4294967295UL)
  148. #endif
  149.  
  150. #ifndef WCHAR_MIN
  151. #ifdef __WCHAR_MIN__
  152. #define WCHAR_MIN __WCHAR_MIN__
  153. #define WCHAR_MAX __WCHAR_MAX__
  154. #else
  155. #define WCHAR_MIN (0)
  156. #define WCHAR_MAX (65535)
  157. #endif
  158. #endif
  159.  
  160. #ifndef WINT_MIN
  161. #define WINT_MIN (-2147483647 - 1)
  162. #define WINT_MAX (2147483647)
  163. #endif
  164.  
  165. /* Macros for minimum-width integer constant expressions */
  166.  
  167. #define INT8_C(x) x
  168. #define INT16_C(x) x
  169. #define INT32_C(x) x ## L
  170. #define INT64_C(x) x ## LL
  171.  
  172. #define UINT8_C(x) x ## U
  173. #define UINT16_C(x) x ## U
  174. #define UINT32_C(x) x ## UL
  175. #define UINT64_C(x) x ## ULL
  176.  
  177. /* Macros for greatest-width integer constant expressions */
  178.  
  179. #define INTMAX_C(x) x ## L
  180. #define UINTMAX_C(x) x ## UL
  181.  
  182. #endif /* _STDINT_H */
  183.