1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * ID: types 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov
13 * Contributors: santy
14 *
15 * Summary: This file provides basic types and some constants.
16 *
17 ******************************************************************************/
18
19 #ifndef _TYPES_
20 #define _TYPES_
21
22 #if defined (__GNUC__) || defined (__TINYC__)
23 #include <_mingw.h>
24 #include <stdlib.h>
25 #endif
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif // __cplusplus
30
31 #define STDCALL __stdcall
32 #define FASTCALL __fastcall
33 #define CDECLCALL __cdecl
34
35 //--------------------------------------------------------------------------
36 #if defined (__WATCOMC__) || defined (__GNUC__)
37 #ifdef BUILD_DLL
38 #define DLL_EXPORT __declspec(dllexport)
39 #else
40 #define DLL_EXPORT
41 #endif
42 #else
43 #define DLL_EXPORT
44 #endif
45
46 //--------------------------------------------------------------------------
47 #if defined ( __GNUC__) || defined (__TINYC__)
48 //typedef char byte; // Santy
49 //typedef byte* pbyte; // Santy
50 #endif
51
52 typedef unsigned char ubyte;
53 typedef unsigned long uint;
54 typedef unsigned short ushort;
55 typedef unsigned __int64 ulong64;
56 typedef __int64 long64;
57
58 typedef ubyte* pubyte;
59 typedef char * pchar;
60 typedef uint* puint;
61 typedef int* pint;
62 typedef void* pvoid;
63 typedef ushort* pushort;
64 typedef short* pshort;
65 typedef ulong64* pulong64;
66 typedef long64* plong64;
67
68 #define ABC_COUNT 256
69 #define FALSE 0
70 #define TRUE 1
71 #define MAX_BYTE 0xFF
72 #define MAX_USHORT 0xFFFF
73 #define MAX_UINT 0xFFFFFFFF
74 #define MAX_MSR 8 // Max array dimension
75
76
77 // File operation flags os_fileopen
78 #define FOP_READONLY 0x0001 // open as readonly
79 #define FOP_EXCLUSIVE 0x0002 // open exclusively
80 #define FOP_CREATE 0x0004 // create file
81 #define FOP_IFCREATE 0x0008 // create file if it doesn't exist
82
83 // File position os_fileset
84 #define FSET_BEGIN 0x0001
85 #define FSET_CURRENT 0x0002
86 #define FSET_END 0x0003
87
88 #define LOBY( x ) ( x & 0xFF )
89 #define HIBY( x ) (( x >> 8 ) & 0xFF )
90
91 typedef int ( __stdcall* cmpfunc)( const pvoid, const pvoid, uint );
92
93 //--------------------------------------------------------------------------
94
95 #ifdef __cplusplus
96 }
97 #endif // __cplusplus
98
99 #endif // _TYPES_