summaryrefslogtreecommitdiff
path: root/innobase/include/univoldmysql.i
blob: 269b584d0735be97c3aa602974d16875f6079131 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
/***************************************************************************
Version control for database, common definitions, and include files

(c) 1994 - 1996 Innobase Oy

Created 1/20/1994 Heikki Tuuri
****************************************************************************/

#ifndef univ_i
#define univ_i

#define	UNIV_INTEL
#define	UNIV_PENTIUM
/* If UNIV_WINNT is not defined, we assume Windows 95 */

#define	UNIV_WINNT
#define UNIV_WINNT4

#define UNIV_VISUALC

/*			DEBUG VERSION CONTROL
			===================== */
/* Make a profiler version where mutex_fence does not use CPUID and therefore
is not totally safe. The sync-library must be recompiled before profiling. */
/*
#define UNIV_PROFILE
*/
/* When the following flag is defined, also mutex lock word reset to 0
in mutex_exit is performed using a serializing instruction, which does not
allow speculative reads be performed before memory writes */
/*
#define SYNC_SERIALIZE_MUTEX_RESET
*/
/* Make a non-inline debug version */

#define UNIV_DEBUG
#define UNIV_MEM_DEBUG
#define UNIV_SYNC_DEBUG
#define UNIV_SEARCH_DEBUG

#define UNIV_IBUF_DEBUG

#define UNIV_SEARCH_PERF_STAT
#define UNIV_SYNC_PERF_STAT


#define UNIV_LIGHT_MEM_DEBUG

#define YYDEBUG			1
/*
#define UNIV_SQL_DEBUG
#define UNIV_LOG_DEBUG
*/
			/* the above option prevents forcing of log to disk
			at a buffer page write: it should be tested with this
			option off; also some ibuf tests are suppressed */
/*
#define UNIV_BASIC_LOG_DEBUG
*/
			/* the above option enables basic recovery debugging:
			new allocated file pages are reset */

/* The debug version is slower, thus we may change the length of test loops
depending on the UNIV_DBC parameter */
#ifdef UNIV_DEBUG
#define UNIV_DBC	1
#else
#define	UNIV_DBC	100
#endif

#ifndef UNIV_DEBUG
/* Definition for inline version */

#ifdef UNIV_VISUALC
#define UNIV_INLINE  	__inline
#elif defined(UNIV_GNUC)
#define UNIV_INLINE     extern __inline__
#endif

#else
/* If we want to compile a noninlined version we use the following macro
definitions: */

#define UNIV_NONINL
#define UNIV_INLINE

#endif	/* UNIV_DEBUG */
/* If the compiler does not know inline specifier, we use: */
/*
#define UNIV_INLINE     static
*/


/*
			MACHINE VERSION CONTROL
			=======================
*/

#ifdef UNIV_PENTIUM

/* In a 32-bit computer word size is 4 */
#define UNIV_WORD_SIZE		4

/* The following alignment is used in memory allocations in memory heap
management to ensure correct alignment for doubles etc. */
#define UNIV_MEM_ALIGNMENT      8

/* The following alignment is used in aligning lints etc. */
#define UNIV_WORD_ALIGNMENT	UNIV_WORD_SIZE

#endif

/*
			DATABASE VERSION CONTROL
			========================
*/

/* The universal page size of the database */
#define UNIV_PAGE_SIZE          8192    /* NOTE! Currently, this has to be a
					power of 2 and divisible by
					UNIV_MEM_ALIGNMENT */
/* 2-based logarithm of UNIV_PAGE_SIZE */
#define	UNIV_PAGE_SIZE_SHIFT	13

/* Do asynchronous io in buffer pool read/write operations */
#ifdef UNIV_WINNT
#define UNIV_ASYNC_IO
#endif

/* Do non-buffered io in buffer pool read/write operations */
#define UNIV_NON_BUFFERED_IO

/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM	32

/*
			UNIVERSAL TYPE DEFINITIONS
			==========================
*/

/*
typedef unsigned char   byte;
*/

/* An other basic type we use is unsigned long integer which is intended to be
equal to the word size of the machine. */

typedef unsigned long int	ulint;

typedef long int		lint;

/* The following type should be at least a 64-bit floating point number */
typedef double		utfloat;

/* The 'undefined' value for a ulint */
#define ULINT_UNDEFINED		((ulint)(-1))

/* The undefined 32-bit unsigned integer */
#define	ULINT32_UNDEFINED	0xFFFFFFFF

/* Maximum value for a ulint */
#define ULINT_MAX		((ulint)(-2))

/* Definition of the boolean type */
#ifndef bool
typedef ulint    bool;
#endif

#define TRUE    1
#define FALSE   0

/* The following number as the length of a logical field means that the field
has the SQL NULL as its value. */
#define UNIV_SQL_NULL 	ULINT_UNDEFINED

#include <stdio.h>
#include "ut0dbg.h"
#include "ut0ut.h"
#include "db0err.h"

#endif