~drizzle-trunk/drizzle/development

« back to all changes in this revision

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

  • Committer: Monty Taylor
  • Date: 2011-02-13 17:26:39 UTC
  • mfrom: (2157.2.2 give-in-to-pkg-config)
  • mto: This revision was merged to the branch mainline in revision 2166.
  • Revision ID: mordred@inaugust.com-20110213172639-nhy7i72sfhoq13ms
Merged in pkg-config fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*****************************************************************************
2
2
 
3
 
Copyright (c) 1994, 2010, Innobase Oy. All Rights Reserved.
4
 
Copyright (c) 2008, Google Inc.
5
 
Copyright (c) 2009, Sun Microsystems, Inc.
 
3
Copyright (C) 1994, 2010, Innobase Oy. All Rights Reserved.
 
4
Copyright (C) 2008 Google Inc.
 
5
Copyright (C) 2009 Sun Microsystems, Inc.
6
6
 
7
7
Portions of this file contain modifications contributed and copyrighted by
8
8
Google, Inc. Those modifications are gratefully acknowledged and are described
51
51
#endif /* UNIV_HOTBACKUP */
52
52
 
53
53
#define INNODB_VERSION_MAJOR    1
54
 
#define INNODB_VERSION_MINOR    0
55
 
#define INNODB_VERSION_BUGFIX   9
 
54
#define INNODB_VERSION_MINOR    1
 
55
#define INNODB_VERSION_BUGFIX   4
56
56
 
57
57
/* The following is the InnoDB version as shown in
58
58
SELECT plugin_version FROM information_schema.plugins;
84
84
# define ha_innobase ha_innodb
85
85
#endif /* MYSQL_DYNAMIC_PLUGIN */
86
86
 
87
 
/* if any of the following macros is defined at this point this means
88
 
that the code from the "right" plug.in was executed and we do not
89
 
need to include ut0auxconf.h which would either define the same macros
90
 
or will be empty */
91
 
#if !defined(HAVE_GCC_ATOMIC_BUILTINS) \
92
 
 && !defined(HAVE_IB_ATOMIC_PTHREAD_T_GCC) \
93
 
 && !defined(HAVE_SOLARIS_ATOMICS) \
94
 
 && !defined(HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS) \
95
 
 && !defined(SIZEOF_PTHREAD_T) \
96
 
 && !defined(IB_HAVE_PAUSE_INSTRUCTION)
97
 
# include "ut0auxconf.h"
98
 
#endif
99
 
 
100
87
#if (defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)) && !defined(MYSQL_SERVER) && !defined(__WIN__)
101
88
# undef __WIN__
102
89
# define __WIN__
127
114
 
128
115
/* Include <sys/stat.h> to get S_I... macros defined for os0file.c */
129
116
# include <sys/stat.h>
130
 
# if !defined(__NETWARE__) && !defined(__WIN__) 
 
117
# if !defined(__WIN__) 
131
118
#  include <sys/mman.h> /* mmap() for os0proc.c */
132
119
# endif
133
120
 
150
137
#  define UNIV_MUST_NOT_INLINE
151
138
# endif
152
139
 
 
140
# if defined(__GNUC__)
 
141
#  define UNIV_WARN_UNUSED_RESULT_NONNULL __attribute__((nonnull, warn_unused_result))
 
142
#  define UNIV_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 
143
#else
 
144
#  define UNIV_WARN_UNUSED_RESULT
 
145
#  define UNIV_WARN_UNUSED_RESULT_NONNULL
 
146
#endif
 
147
 
153
148
# ifdef HAVE_PREAD
154
149
#  define HAVE_PWRITE
155
150
# endif
156
151
 
157
152
#endif /* #if (defined(WIN32) || ... */
158
153
 
 
154
/* Following defines are to enable performance schema
 
155
instrumentation in each of four InnoDB modules if
 
156
HAVE_PSI_INTERFACE is defined. */
 
157
#ifdef HAVE_PSI_INTERFACE
 
158
# define UNIV_PFS_MUTEX
 
159
# define UNIV_PFS_RWLOCK
 
160
/* For I/O instrumentation, performance schema rely
 
161
on a native descriptor to identify the file, this
 
162
descriptor could conflict with our OS level descriptor.
 
163
Disable IO instrumentation on Windows until this is
 
164
resolved */
 
165
# ifndef __WIN__
 
166
#  define UNIV_PFS_IO
 
167
# endif
 
168
# define UNIV_PFS_THREAD
 
169
#endif /* HAVE_PSI_INTERFACE */
 
170
 
159
171
/*                      DEBUG VERSION CONTROL
160
172
                        ===================== */
161
173
 
177
189
#define UNIV_COMPILE_TEST_FUNCS
178
190
*/
179
191
 
180
 
#ifdef HAVE_purify
 
192
#if defined HAVE_VALGRIND
181
193
# define UNIV_DEBUG_VALGRIND
182
 
#endif /* HAVE_purify */
 
194
#endif /* HAVE_VALGRIND */
183
195
#if 0
184
196
#define UNIV_DEBUG_VALGRIND                     /* Enable extra
185
197
                                                Valgrind instrumentation */
217
229
                                                adaptive hash index */
218
230
#define UNIV_SRV_PRINT_LATCH_WAITS              /* enable diagnostic output
219
231
                                                in sync0sync.c */
220
 
#define UNIV_BTR_AVOID_COPY                     /* when splitting B-tree nodes,
221
 
                                                do not move any records when
222
 
                                                all the records would
223
 
                                                be moved */
224
232
#define UNIV_BTR_PRINT                          /* enable functions for
225
233
                                                printing B-trees */
226
234
#define UNIV_ZIP_DEBUG                          /* extensive consistency checks
227
235
                                                for compressed pages */
228
236
#define UNIV_ZIP_COPY                           /* call page_zip_copy_recs()
229
237
                                                more often */
 
238
#define UNIV_AIO_DEBUG                          /* prints info about
 
239
                                                submitted and reaped AIO
 
240
                                                requests to the log. */
230
241
#endif
231
242
 
232
243
#define UNIV_BTR_DEBUG                          /* check B-tree links */
293
304
/* The following alignment is used in aligning lints etc. */
294
305
#define UNIV_WORD_ALIGNMENT     UNIV_WORD_SIZE
295
306
 
 
307
/* The maximum length of a table name. This is the MySQL limit and is
 
308
defined in mysql_com.h like NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN, the
 
309
number does not include a terminating '\0'. InnoDB probably can handle
 
310
longer names internally */
 
311
#define MAX_TABLE_NAME_LEN      192
 
312
 
296
313
/*
297
314
                        DATABASE VERSION CONTROL
298
315
                        ========================
306
323
/* Maximum number of parallel threads in a parallelized operation */
307
324
#define UNIV_MAX_PARALLELISM    32
308
325
 
 
326
/* The maximum length of a table name. This is the MySQL limit and is
 
327
defined in mysql_com.h like NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN, the
 
328
number does not include a terminating '\0'. InnoDB probably can handle
 
329
longer names internally */
 
330
#define MAX_TABLE_NAME_LEN      192
 
331
 
309
332
/*
310
333
                        UNIVERSAL TYPE DEFINITIONS
311
334
                        ==========================
370
393
/* The 'undefined' value for a ulint */
371
394
#define ULINT_UNDEFINED         ((ulint)(-1))
372
395
 
 
396
/** The bitmask of 32-bit unsigned integer */
 
397
#define ULINT32_MASK            0xFFFFFFFF
373
398
/* The undefined 32-bit unsigned integer */
374
 
#define ULINT32_UNDEFINED       0xFFFFFFFF
 
399
#define ULINT32_UNDEFINED       ULINT32_MASK
375
400
 
376
401
/* Maximum value for a ulint */
377
402
#define ULINT_MAX               ((ulint)(-2))
379
404
/* Maximum value for ib_uint64_t */
380
405
#define IB_ULONGLONG_MAX        ((ib_uint64_t) (~0ULL))
381
406
 
 
407
/** The generic InnoDB system object identifier data type */
 
408
typedef ib_uint64_t     ib_id_t;
 
409
 
 
410
/* THe 'undefined' value for ullint */
 
411
#define ULLINT_UNDEFINED        ((ullint)(-1))
 
412
 
382
413
/* This 'ibool' type is used within Innobase. Remember that different included
383
414
headers may define 'bool' differently. Do not assume that 'bool' is a ulint! */
384
415
#define ibool                   ulint