~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/innobase/include/univ.i

  • Committer: Brian Aker
  • Date: 2008-10-28 08:36:02 UTC
  • mfrom: (520.4.13 merge-innodb-plugin)
  • Revision ID: brian@tangent.org-20081028083602-0p3zzlhlxr5q2sqo
Merging Monty's work

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
#ifndef univ_i
10
10
#define univ_i
11
11
 
12
 
#if (defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)) && !defined(DRIZZLE_SERVER) && !defined(__WIN__)
 
12
#define INNODB_VERSION_MAJOR    1
 
13
#define INNODB_VERSION_MINOR    0
 
14
#define INNODB_VERSION_BUGFIX   1
 
15
 
 
16
/* The following is the InnoDB version as shown in
 
17
SELECT plugin_version FROM information_schema.plugins;
 
18
calculated in in make_version_string() in sql/sql_show.cc like this:
 
19
"version >> 8" . "version & 0xff"
 
20
because the version is shown with only one dot, we skip the last
 
21
component, i.e. we show M.N.P as M.N */
 
22
#define INNODB_VERSION_SHORT    \
 
23
        (INNODB_VERSION_MAJOR << 8 | INNODB_VERSION_MINOR)
 
24
 
 
25
/* auxiliary macros to help creating the version as string */
 
26
#define __INNODB_VERSION(a, b, c)       (#a "." #b "." #c)
 
27
#define _INNODB_VERSION(a, b, c)        __INNODB_VERSION(a, b, c)
 
28
 
 
29
#define INNODB_VERSION_STR                      \
 
30
        _INNODB_VERSION(INNODB_VERSION_MAJOR,   \
 
31
                        INNODB_VERSION_MINOR,   \
 
32
                        INNODB_VERSION_BUGFIX)
 
33
 
 
34
#ifdef MYSQL_DYNAMIC_PLUGIN
 
35
/* In the dynamic plugin, redefine some externally visible symbols
 
36
in order not to conflict with the symbols of a builtin InnoDB. */
 
37
 
 
38
/* Rename all C++ classes that contain virtual functions, because we
 
39
have not figured out how to apply the visibility=hidden attribute to
 
40
the virtual method table (vtable) in GCC 3. */
 
41
# define ha_innobase ha_innodb
 
42
#endif /* MYSQL_DYNAMIC_PLUGIN */
 
43
 
 
44
#if (defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)) && !defined(MYSQL_SERVER) && !defined(__WIN__)
13
45
# undef __WIN__
14
46
# define __WIN__
15
47
 
30
62
in compiling more Posix-compatible. These headers also define __WIN__
31
63
if we are compiling on Windows. */
32
64
 
33
 
# include <drizzled/global.h>
34
 
# include <mysys/my_pthread.h>
 
65
# if defined(BUILD_DRIZZLE)
 
66
#  include <drizzled/global.h>
 
67
#  include <mysys/my_pthread.h>
 
68
# else
 
69
#  include <my_global.h>
 
70
#  include <my_pthread.h>
 
71
# endif
35
72
 
36
73
/* Include <sys/stat.h> to get S_I... macros defined for os0file.c */
37
74
# include <sys/stat.h>
 
75
# if !defined(__NETWARE__) && !defined(__WIN__) 
 
76
#  include <sys/mman.h> /* mmap() for os0proc.c */
 
77
# endif
38
78
 
39
79
# undef PACKAGE
40
80
# undef VERSION
80
120
#define UNIV_INIT_MEM_TO_ZERO
81
121
*/
82
122
 
83
 
/* Make a non-inline debug version */
 
123
/* When this macro is defined then additional test functions will be
 
124
compiled. These functions live at the end of each relevant source file
 
125
and have "test_" prefix. These functions are not called from anywhere in
 
126
the code, they can be called from gdb after
 
127
innobase_start_or_create_for_mysql() has executed using the call
 
128
command. Not tested on Windows. */
 
129
/*
 
130
#define UNIV_COMPILE_TEST_FUNCS
 
131
*/
84
132
 
85
133
#if 0
86
134
#define UNIV_DEBUG_VALGRIND                     /* Enable extra
87
135
                                                Valgrind instrumentation */
88
 
#define UNIV_DEBUG                              /* Enable ut_ad() assertions */
 
136
#define UNIV_DEBUG_PRINT                        /* Enable the compilation of
 
137
                                                some debug print functions */
 
138
#define UNIV_BUF_DEBUG                          /* Enable buffer pool
 
139
                                                debugging without UNIV_DEBUG */
 
140
#define UNIV_DEBUG                              /* Enable ut_ad() assertions
 
141
                                                and disable UNIV_INLINE */
 
142
#define UNIV_DEBUG_FILE_ACCESSES                /* Debug .ibd file access
 
143
                                                (field file_page_was_freed
 
144
                                                in buf_page_t) */
 
145
#define UNIV_HASH_DEBUG                         /* debug HASH_ macros */
89
146
#define UNIV_LIST_DEBUG                         /* debug UT_LIST_ macros */
90
147
#define UNIV_MEM_DEBUG                          /* detect memory leaks etc */
91
 
#define UNIV_IBUF_DEBUG                         /* debug the insert buffer;
 
148
#define UNIV_IBUF_DEBUG                         /* debug the insert buffer */
 
149
#define UNIV_IBUF_COUNT_DEBUG                   /* debug the insert buffer;
92
150
this limits the database to IBUF_COUNT_N_SPACES and IBUF_COUNT_N_PAGES,
93
151
and the insert buffer must be empty when the database is started */
94
152
#define UNIV_SYNC_DEBUG                         /* debug mutex and latch
102
160
                                                in sync0sync.c */
103
161
#define UNIV_BTR_PRINT                          /* enable functions for
104
162
                                                printing B-trees */
 
163
#define UNIV_ZIP_DEBUG                          /* extensive consistency checks
 
164
                                                for compressed pages */
105
165
#endif
106
166
 
107
167
#define UNIV_BTR_DEBUG                          /* check B-tree links */
129
189
                        /* the above option enables basic recovery debugging:
130
190
                        new allocated file pages are reset */
131
191
 
132
 
#if (!defined(UNIV_DEBUG) && !defined(INSIDE_HA_INNOBASE_CC) && !defined(UNIV_MUST_NOT_INLINE))
 
192
/* Linkage specifier for non-static InnoDB symbols (variables and functions)
 
193
that are only referenced from within InnoDB, not from MySQL */
 
194
#ifdef __WIN__
 
195
# define UNIV_INTERN
 
196
#else
 
197
# define UNIV_INTERN __attribute__((visibility ("hidden")))
 
198
#endif
 
199
 
 
200
#if (!defined(UNIV_DEBUG) && !defined(UNIV_MUST_NOT_INLINE))
133
201
/* Definition for inline version */
134
202
 
135
203
#ifdef __WIN__
143
211
definitions: */
144
212
 
145
213
#define UNIV_NONINL
146
 
#define UNIV_INLINE
 
214
#define UNIV_INLINE     UNIV_INTERN
147
215
 
148
216
#endif  /* UNIV_DEBUG */
149
217
 
168
236
                        ========================
169
237
*/
170
238
 
171
 
/* The universal page size of the database */
172
 
#define UNIV_PAGE_SIZE          (2 * 8192) /* NOTE! Currently, this has to be a
173
 
                                        power of 2 */
174
239
/* The 2-logarithm of UNIV_PAGE_SIZE: */
175
240
#define UNIV_PAGE_SIZE_SHIFT    14
 
241
/* The universal page size of the database */
 
242
#define UNIV_PAGE_SIZE          (1 << UNIV_PAGE_SIZE_SHIFT)
176
243
 
177
244
/* Maximum number of parallel threads in a parallelized operation */
178
245
#define UNIV_MAX_PARALLELISM    32
211
278
#endif
212
279
 
213
280
#ifdef __WIN__
214
 
typedef __int64                 ib_longlong;
 
281
typedef __int64                 ib_int64_t;
 
282
typedef unsigned __int64        ib_uint64_t;
215
283
#else
216
 
typedef int64_t         ib_longlong;
 
284
/* Note: longlong and ulonglong come from MySQL headers. */
 
285
# if defined(BUILD_DRIZZLE)
 
286
typedef int64_t                 ib_int64_t;
 
287
typedef uint64_t                ib_uint64_t;
 
288
typedef uint16_t                uint16;
 
289
typedef bool                    my_bool;
 
290
typedef uint32_t                uint32;
 
291
# else
 
292
typedef longlong                ib_int64_t;
 
293
typedef ulonglong               ib_uint64_t;
 
294
#define PRIu64                  "llu"
 
295
# endif // DRIZZLE
217
296
#endif
218
297
 
219
 
typedef uint64_t        ullint;
 
298
typedef unsigned long long int  ullint;
220
299
 
221
300
#ifndef __WIN__
222
301
#if SIZEOF_LONG != SIZEOF_VOIDP
233
312
/* Maximum value for a ulint */
234
313
#define ULINT_MAX               ((ulint)(-2))
235
314
 
 
315
/* Maximum value for ib_uint64_t */
 
316
#define IB_ULONGLONG_MAX        ((ib_uint64_t) (~0ULL))
 
317
 
236
318
/* This 'ibool' type is used within Innobase. Remember that different included
237
319
headers may define 'bool' differently. Do not assume that 'bool' is a ulint! */
238
320
#define ibool                   ulint
308
390
# define UNIV_MEM_INVALID(addr, size) VALGRIND_MAKE_MEM_UNDEFINED(addr, size)
309
391
# define UNIV_MEM_FREE(addr, size) VALGRIND_MAKE_MEM_NOACCESS(addr, size)
310
392
# define UNIV_MEM_ALLOC(addr, size) VALGRIND_MAKE_MEM_UNDEFINED(addr, size)
 
393
# define UNIV_MEM_DESC(addr, size, b) VALGRIND_CREATE_BLOCK(addr, size, b)
 
394
# define UNIV_MEM_UNDESC(b) VALGRIND_DISCARD(b)
311
395
# define UNIV_MEM_ASSERT_RW(addr, size) do {                            \
312
396
        const void* _p = (const void*) (ulint)                          \
313
397
                VALGRIND_CHECK_MEM_IS_DEFINED(addr, size);              \
331
415
# define UNIV_MEM_INVALID(addr, size) do {} while(0)
332
416
# define UNIV_MEM_FREE(addr, size) do {} while(0)
333
417
# define UNIV_MEM_ALLOC(addr, size) do {} while(0)
 
418
# define UNIV_MEM_DESC(addr, size, b) do {} while(0)
 
419
# define UNIV_MEM_UNDESC(b) do {} while(0)
334
420
# define UNIV_MEM_ASSERT_RW(addr, size) do {} while(0)
335
421
# define UNIV_MEM_ASSERT_W(addr, size) do {} while(0)
336
422
#endif