00001 #ifndef __TDEF_H
00002 #define __TDEF_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 #include "arch.h"
00067
00068
00069
00070
00071 #define PTR *
00072
00073
00074 #if defined(__OS_MSDOS__)
00075
00076 #define PTRN near *
00077 #define PTRF far *
00078 #define PTRH huge *
00079
00080 #elif defined(__OS_WIN31__)
00081
00082 #define PTRN _near *
00083 #define PTRF _far *
00084 #define PTRH _huge *
00085
00086 #elif defined(__OS_UNIX__)
00087
00088 #define PTRN PTR
00089 #define PTRF PTR
00090 #define PTRH PTR
00091
00092 #elif defined(__OS_WIN32__)
00093
00094 #define PTRN PTR
00095 #define PTRF PTR
00096 #define PTRH PTR
00097
00098 #else
00099 #error plataforma no configurada
00100 #endif
00101
00102
00103
00104
00105
00106
00107 #define __TDEF(TYPE,NAME) \
00108 typedef TYPE NAME; \
00109 typedef NAME PTR p##NAME; \
00110 typedef NAME PTRN pn##NAME; \
00111 typedef NAME PTRF pf##NAME; \
00112 typedef NAME PTRH ph##NAME
00113
00114
00115
00116
00117 __TDEF(int, INT);
00118 __TDEF(long, LONG);
00119 #ifndef __OS_WIN32__
00120 __TDEF(long long, LLONG);
00121 #endif
00122 __TDEF(short, SHORT);
00123 __TDEF(char, CHAR);
00124 __TDEF(float, FLOAT);
00125 __TDEF(double, DOUBLE);
00126 __TDEF(long double, LDOUBLE);
00127 #ifndef VOID
00128 __TDEF(void, VOID);
00129
00130
00131
00132 #define VOID void
00133
00134 #else
00135 typedef VOID PTR pVOID;
00136 typedef VOID PTRN pnVOID;
00137 typedef VOID PTRF pfVOID;
00138 typedef VOID PTRH phVOID;
00139 #endif
00140 __TDEF(int, BOOL);
00141
00142 __TDEF(unsigned int, UINT);
00143 __TDEF(unsigned long, ULONG);
00144 #ifndef __OS_WIN32__
00145 __TDEF(unsigned long long, ULLONG);
00146 #endif
00147 __TDEF(unsigned char, UCHAR);
00148 __TDEF(unsigned int, USHORT);
00149
00150
00151 #if defined(__CC_CPLUSPLUS__)
00152
00153 #ifdef __CC_GNUC__
00154 #include <complex>
00155 __TDEF(std::complex<double>, COMPLEX);
00156 #elif __CC_MSVC__
00157 #include <complex>
00158 __TDEF(std::complex<double>, COMPLEX);
00159 #else
00160 #include <complex.h>
00161 __TDEF(complex, COMPLEX);
00162 #endif
00163
00164 #endif
00165
00166
00167
00168
00169
00170
00171 #if defined(__OS_MSDOS__)||defined(__OS_WIN31__)
00172 #define SIZEOF_INT 2
00173 #define SIZEOF_LONG 4
00174 #define SIZEOF_LLONG 4
00175 #define SIZEOF_SHORT 2
00176 #define SIZEOF_CHAR 1
00177 #define SIZEOF_FLOAT 4
00178 #define SIZEOF_DOUBLE 8
00179 #define SIZEOF_LDOUBLE 10
00180 #define SIZEOF_UINT 2
00181 #define SIZEOF_ULONG 4
00182 #define SIZEOF_ULLONG 4
00183 #define SIZEOF_USHORT 2
00184 #define SIZEOF_UCHAR 1
00185
00186
00187 #elif defined(__OS_WIN32__)||defined(__OS_LINUX__)||defined(__OS_UNIX__)
00188 #define SIZEOF_INT 4
00189 #define SIZEOF_LONG 4
00190 #define SIZEOF_LLONG 8
00191 #define SIZEOF_SHORT 2
00192 #define SIZEOF_CHAR 1
00193 #define SIZEOF_FLOAT 4
00194 #define SIZEOF_DOUBLE 8
00195 #define SIZEOF_LDOUBLE 12
00196
00197 #define SIZEOF_UINT 4
00198 #define SIZEOF_ULONG 4
00199 #define SIZEOF_ULLONG 8
00200 #define SIZEOF_USHORT 2
00201 #define SIZEOF_UCHAR 1
00202
00203 #else
00204 #error plataforma no configurada
00205 #endif
00206
00207
00208
00209
00210 #ifndef TRUE
00211 #define TRUE 1
00212 #endif
00213
00214 #ifndef FALSE
00215 #define FALSE 0
00216 #endif
00217
00218
00219
00220
00221 #if defined(__OS_MSDOS__)
00222
00223 __TDEF(char, INT8);
00224 __TDEF(short, INT16);
00225 __TDEF(long, INT32);
00226 __TDEF(unsigned char, UINT8);
00227 __TDEF(unsigned short, UINT16);
00228 __TDEF(unsigned long, UINT32);
00229 __TDEF(char, CHAR8);
00230 __TDEF(unsigned char, UCHAR8);
00231 __TDEF(float, FLOAT32);
00232 __TDEF(double, FLOAT64);
00233 __TDEF(long double, FLOAT80);
00234
00235 #elif defined(__OS_WIN31__)
00236
00237 __TDEF(char, INT8);
00238 __TDEF(short, INT16);
00239 __TDEF(long, INT32);
00240 __TDEF(unsigned char, UINT8);
00241 __TDEF(unsigned short, UINT16);
00242 __TDEF(unsigned long, UINT32);
00243 __TDEF(char, CHAR8);
00244 __TDEF(unsigned char, UCHAR8);
00245 __TDEF(float, FLOAT32);
00246 __TDEF(double, FLOAT64);
00247 __TDEF(long double, FLOAT80);
00248
00249 #elif defined(__OS_WIN32__)
00250
00251 __TDEF(char, INT8);
00252 __TDEF(short, INT16);
00253 __TDEF(long, INT32);
00254 __TDEF(unsigned char, UINT8);
00255 __TDEF(unsigned short, UINT16);
00256 __TDEF(unsigned long, UINT32);
00257 __TDEF(char, CHAR8);
00258 __TDEF(unsigned char, UCHAR8);
00259 __TDEF(float, FLOAT32);
00260 __TDEF(double, FLOAT64);
00261 __TDEF(long double, FLOAT80);
00262
00263 #elif defined(__OS_LINUX__)
00264
00265 __TDEF(char, INT8);
00266 __TDEF(short, INT16);
00267 __TDEF(long, INT32);
00268 __TDEF(unsigned char, UINT8);
00269 __TDEF(unsigned short, UINT16);
00270 __TDEF(unsigned long, UINT32);
00271 __TDEF(char, CHAR8);
00272 __TDEF(unsigned char, UCHAR8);
00273 __TDEF(float, FLOAT32);
00274 __TDEF(double, FLOAT64);
00275 __TDEF(long double, FLOAT80);
00276
00277 #elif defined(__OS_UNIX__)
00278
00279 __TDEF(char, INT8);
00280 __TDEF(short, INT16);
00281 __TDEF(long, INT32);
00282 __TDEF(unsigned char, UINT8);
00283 __TDEF(unsigned short, UINT16);
00284 __TDEF(unsigned long, UINT32);
00285 __TDEF(char, CHAR8);
00286 __TDEF(unsigned char, UCHAR8);
00287 __TDEF(float, FLOAT32);
00288 __TDEF(double, FLOAT64);
00289 __TDEF(long double, FLOAT80);
00290
00291 #else
00292 #error plataforma no configurada
00293 #endif
00294
00295
00296
00297
00298 __TDEF(UINT8, BYTE);
00299 __TDEF(UINT8, WORD8);
00300 __TDEF(UINT16, WORD16);
00301 __TDEF(UINT32, WORD32);
00302
00303
00304
00305
00306
00307 __TDEF(INT8, INT1);
00308 __TDEF(INT16, INT2);
00309 __TDEF(INT32, INT4);
00310 __TDEF(WORD8, WORD1);
00311 __TDEF(WORD16, WORD2);
00312 __TDEF(WORD32, WORD4);
00313 __TDEF(UINT8, UINT1);
00314 __TDEF(UINT16, UINT2);
00315 __TDEF(UINT32, UINT4);
00316 __TDEF(CHAR8, CHAR1);
00317 __TDEF(UCHAR8, UCHAR1);
00318 __TDEF(FLOAT32, FLOAT4);
00319 __TDEF(FLOAT64, FLOAT8);
00320 __TDEF(FLOAT80, FLOAT10);
00321
00322
00323
00324
00325 #ifdef __OS_WIN31__
00326
00327 #include <windows.h>
00328
00329 #define PUBLIC
00330 #define PRIVATE static
00331 #define EXTERN extern
00332 #define STATIC static
00333 #define VOLATILE volatile
00334 #define API FAR PASCAL
00335 #define XAPI FAR PASCAL _export
00336
00337 #else
00338
00339 #define PUBLIC
00340 #define PRIVATE static
00341 #define EXTERN extern
00342 #define STATIC static
00343 #define VOLATILE volatile
00344 #define API
00345 #define XAPI
00346
00347 #endif
00348
00349
00350
00351
00352
00353 #ifdef __CC_GNUC__
00354 #define MINALIGN __attribute__ ((packed))
00355 #else
00356 #define MINALIGN
00357 #endif
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384 #endif
00385