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
|