basetsd.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  * Compilers that uses ILP32, LP64 or P64 type models
  3.  * for both Win32 and Win64 are supported by this file.
  4.  */
  5. /*
  6.  * Modified for use with MPlayer, detailed CVS changelog at
  7.  * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
  8.  * $Id: 9f14971897fad2f4be501b40547b2034dd915b11 $
  9.  */
  10. #ifndef __WINE_BASETSD_H
  11. #define __WINE_BASETSD_H
  12. #ifdef __WINE__
  13. #include "config.h"
  14. #endif /* defined(__WINE__) */
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif /* defined(__cplusplus) */
  18. /*
  19.  * Win32 was easy to implement under Unix since most (all?) 32-bit
  20.  * Unices uses the same type model (ILP32) as Win32, where int, long
  21.  * and pointer are 32-bit.
  22.  *
  23.  * Win64, however, will cause some problems when implemented under Unix.
  24.  * Linux/{Alpha, Sparc64} and most (all?) other 64-bit Unices uses
  25.  * the LP64 type model where int is 32-bit and long and pointer are
  26.  * 64-bit. Win64 on the other hand uses the P64 (sometimes called LLP64)
  27.  * type model where int and long are 32 bit and pointer is 64-bit.
  28.  */
  29. /* Type model indepent typedefs */
  30. #ifndef __INTEL_COMPILER
  31. #ifndef __int8
  32. typedef char          __int8;
  33. #endif
  34. #ifndef __uint8
  35. typedef unsigned char __uint8;
  36. #endif
  37. #ifndef __int16
  38. typedef short          __int16;
  39. #endif
  40. #ifndef __uint16
  41. typedef unsigned short __uint16;
  42. #endif
  43. #ifndef __int32
  44. typedef int          __int32;
  45. #endif
  46. #ifndef __uint32
  47. typedef unsigned int __uint32;
  48. #endif
  49. #ifndef __int64
  50. typedef long long          __int64;
  51. #endif
  52. #ifndef __uint64
  53. typedef unsigned long long __uint64;
  54. #endif
  55. #else
  56. typedef unsigned __int8  __uint8;
  57. typedef unsigned __int16 __uint16;
  58. typedef unsigned __int32 __uint32;
  59. typedef unsigned __int64 __uint64;
  60. #endif /* __INTEL_COMPILER */
  61. #if defined(_WIN64)
  62. typedef __uint32 __ptr32;
  63. typedef void    *__ptr64;
  64. #else /* FIXME: defined(_WIN32) */
  65. typedef void    *__ptr32;
  66. typedef __uint64 __ptr64;
  67. #endif
  68. /* Always signed and 32 bit wide */
  69. typedef __int32 LONG32;
  70. //typedef __int32 INT32;
  71. typedef LONG32 *PLONG32;
  72. //typedef INT32  *PINT32;
  73. /* Always unsigned and 32 bit wide */
  74. typedef __uint32 ULONG32;
  75. typedef __uint32 DWORD32;
  76. typedef __uint32 UINT32;
  77. typedef ULONG32 *PULONG32;
  78. typedef DWORD32 *PDWORD32;
  79. typedef UINT32  *PUINT32;
  80. /* Always signed and 64 bit wide */
  81. typedef __int64 LONG64;
  82. typedef __int64 INT64;
  83. typedef LONG64 *PLONG64;
  84. typedef INT64  *PINT64;
  85. /* Always unsigned and 64 bit wide */
  86. typedef __uint64 ULONG64;
  87. typedef __uint64 DWORD64;
  88. typedef __uint64 UINT64;
  89. typedef ULONG64 *PULONG64;
  90. typedef DWORD64 *PDWORD64;
  91. typedef UINT64  *PUINT64;
  92. /* Win32 or Win64 dependent typedef/defines. */
  93. #ifdef _WIN64
  94. typedef __int64 INT_PTR, *PINT_PTR;
  95. typedef __uint64 UINT_PTR, *PUINT_PTR;
  96. #define MAXINT_PTR 0x7fffffffffffffff
  97. #define MININT_PTR 0x8000000000000000
  98. #define MAXUINT_PTR 0xffffffffffffffff
  99. typedef __int32 HALF_PTR, *PHALF_PTR;
  100. typedef __int32 UHALF_PTR, *PUHALF_PTR;
  101. #define MAXHALF_PTR 0x7fffffff
  102. #define MINHALF_PTR 0x80000000
  103. #define MAXUHALF_PTR 0xffffffff
  104. typedef __int64 LONG_PTR, *PLONG_PTR;
  105. typedef __uint64 ULONG_PTR, *PULONG_PTR;
  106. typedef __uint64 DWORD_PTR, *PDWORD_PTR;
  107. #else /* FIXME: defined(_WIN32) */
  108. typedef __int32 INT_PTR, *PINT_PTR;
  109. typedef __uint32 UINT_PTR, *PUINT_PTR;
  110. #define MAXINT_PTR 0x7fffffff
  111. #define MININT_PTR 0x80000000
  112. #define MAXUINT_PTR 0xffffffff
  113. typedef __int16 HALF_PTR, *PHALF_PTR;
  114. typedef __uint16 UHALF_PTR, *PUHALF_PTR;
  115. #define MAXUHALF_PTR 0xffff
  116. #define MAXHALF_PTR 0x7fff
  117. #define MINHALF_PTR 0x8000
  118. typedef __int32 LONG_PTR, *PLONG_PTR;
  119. typedef __uint32 ULONG_PTR, *PULONG_PTR;
  120. typedef __uint32 DWORD_PTR, *PDWORD_PTR;
  121. #endif /* defined(_WIN64) || defined(_WIN32) */
  122. typedef INT_PTR SSIZE_T, *PSSIZE_T;
  123. typedef UINT_PTR SIZE_T, *PSIZE_T;
  124. #ifdef __cplusplus
  125. } /* extern "C" */
  126. #endif /* defined(__cplusplus) */
  127. #endif /* !defined(__WINE_BASETSD_H) */