📄 my_global.h
字号:
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA *//* This is the main include file that should included 'first' in every C file. */#ifndef _global_h#define _global_h#if defined( __EMX__) && !defined( MYSQL_SERVER)/* moved here to use below VOID macro redefinition */#define INCL_BASE#define INCL_NOPMAPI#include <os2.h>#endif /* __EMX__ */#ifdef __CYGWIN__/* We use a Unix API, so pretend it's not Windows */#undef WIN#undef WIN32#undef _WIN#undef _WIN32#undef _WIN64#undef __WIN__#undef __WIN32__#define HAVE_ERRNO_AS_DEFINE#endif /* __CYGWIN__ */#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)#include <config-win.h>#elif defined(OS2)#include <config-os2.h>#else#include <my_config.h>#if defined(__cplusplus) && defined(inline)#undef inline /* fix configure problem */#endif#endif /* _WIN32... *//* Fix problem with S_ISLNK() on Linux */#if defined(HAVE_LINUXTHREADS)#undef _GNU_SOURCE#define _GNU_SOURCE 1#endif/* The client defines this to avoid all thread code */#if defined(UNDEF_THREADS_HACK)#undef THREAD#undef HAVE_mit_thread#undef HAVE_LINUXTHREADS#undef HAVE_UNIXWARE7_THREADS#endif#ifdef HAVE_THREADS_WITHOUT_SOCKETS/* MIT pthreads does not work with unix sockets */#undef HAVE_SYS_UN_H#endif#define __EXTENSIONS__ 1 /* We want some extension */#ifndef __STDC_EXT__#define __STDC_EXT__ 1 /* To get large file support on hpux */#endif#if defined(THREAD) && !defined(__WIN__) && !defined(OS2)#ifndef _POSIX_PTHREAD_SEMANTICS#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */#endif/* was #if defined(HAVE_LINUXTHREADS) || defined(HAVE_DEC_THREADS) || defined(HPUX) */#if !defined(SCO)#define _REENTRANT 1 /* Some thread libraries require this */#endif#if !defined(_THREAD_SAFE) && !defined(_AIX)#define _THREAD_SAFE /* Required for OSF1 */#endif#ifndef HAVE_mit_thread#ifdef HAVE_UNIXWARE7_THREADS#include <thread.h>#else#include <pthread.h> /* AIX must have this included first */#endif /* HAVE_UNIXWARE7_THREADS */#endif /* HAVE_mit_thread */#if !defined(SCO) && !defined(_REENTRANT)#define _REENTRANT 1 /* Threads requires reentrant code */#endif#endif /* THREAD *//* Go around some bugs in different OS and compilers */#ifdef _AIX /* By soren@t.dk */#define _H_STRINGS#define _SYS_STREAM_H#define _AIX32_CURSES#define longlong2double(A) my_longlong2double(A)double my_longlong2double(unsigned long long A);#endif#ifdef HAVE_BROKEN_SNPRINTF /* HPUX 10.20 don't have this defined */#undef HAVE_SNPRINTF#endif#ifdef HAVE_BROKEN_PREAD /* These doesn't work on HPUX 11.x */#undef HAVE_PREAD#undef HAVE_PWRITE#endif#ifdef UNDEF_HAVE_GETHOSTBYNAME_R /* For OSF4.x */#undef HAVE_GETHOSTBYNAME_R#endif#ifdef UNDEF_HAVE_INITGROUPS /* For AIX 4.3 */#undef HAVE_INITGROUPS#endif/* Fix a bug in gcc 2.8.0 on IRIX 6.2 */#if SIZEOF_LONG == 4 && defined(__LONG_MAX__)#undef __LONG_MAX__ /* Is a longlong value in gcc 2.8.0 ??? */#define __LONG_MAX__ 2147483647#endif/* egcs 1.1.2 has a problem with memcpy on Alpha */#if defined(__GNUC__) && defined(__alpha__) && ! (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))#define BAD_MEMCPY#endif/* In Linux-alpha we have atomic.h if we are using gcc */#if defined(HAVE_LINUXTHREADS) && defined(__GNUC__) && defined(__alpha__) && (__GNUC__ > 2 || ( __GNUC__ == 2 && __GNUC_MINOR__ >= 95)) && !defined(HAVE_ATOMIC_ADD)#define HAVE_ATOMIC_ADD#define HAVE_ATOMIC_SUB#endif/* In Linux-ia64 including atomic.h will give us an error */#if (defined(HAVE_LINUXTHREADS) && defined(__GNUC__) && (defined(__ia64__) || defined(__powerpc64__))) || !defined(THREAD)#undef HAVE_ATOMIC_ADD#undef HAVE_ATOMIC_SUB#endif#if defined(_lint) && !defined(lint)#define lint#endif#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG)#define _LONG_LONG 1 /* For AIX string library */#endif#ifndef stdin#include <stdio.h>#endif#ifdef HAVE_STDLIB_H#include <stdlib.h>#endif#ifdef HAVE_STDDEF_H#include <stddef.h>#endif#include <math.h>#ifdef HAVE_LIMITS_H#include <limits.h>#endif#ifdef HAVE_FLOAT_H#include <float.h>#endif#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_FCNTL_H#include <fcntl.h>#endif#ifdef HAVE_SYS_TIMEB_H#include <sys/timeb.h> /* Avoid warnings on SCO */#endif#if TIME_WITH_SYS_TIME# include <sys/time.h># include <time.h>#else# if HAVE_SYS_TIME_H# include <sys/time.h># else# include <time.h># endif#endif /* TIME_WITH_SYS_TIME */#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA)#undef HAVE_ALLOCA#undef HAVE_ALLOCA_H#endif#ifdef HAVE_ALLOCA_H#include <alloca.h>#endif#ifdef HAVE_ATOMIC_ADD#define __SMP__#define CONFIG_SMP#include <asm/atomic.h>#endif/* Go around some bugs in different OS and compilers */#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H)#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */#define HAVE_ULONG#endif#ifdef DONT_USE_FINITE /* HPUX 11.x has is_finite() */#undef HAVE_FINITE#endif#if defined(HPUX) && defined(_LARGEFILE64_SOURCE) && defined(THREAD)/* Fix bug in setrlimit */#undef setrlimit#define setrlimit cma_setrlimit64#endif/* We can not live without these */#define USE_MYFUNC 1 /* Must use syscall indirection */#define MASTER 1 /* Compile without unireg */#define ENGLISH 1 /* Messages in English */#define POSIX_MISTAKE 1 /* regexp: Fix stupid spec error */#define USE_REGEX 1 /* We want the use the regex library *//* Do not define for ultra sparcs */#ifndef OS2#define USE_BMOVE512 1 /* Use this unless the system bmove is faster */#endif/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */#ifdef I_AM_PARANOID#define DONT_ALLOW_USER_CHANGE 1#define DONT_USE_MYSQL_PWD 1#endif/* #define USE_some_charset 1 was deprecated by changes to configure *//* my_ctype my_to_upper, my_to_lower, my_sort_order gain theit right value *//* automagically during configuration *//* Does the system remember a signal handler after a signal ? */#ifndef HAVE_BSD_SIGNALS#define DONT_REMEMBER_SIGNAL#endif/* Define void to stop lint from generating "null effekt" comments */#ifndef DONT_DEFINE_VOID#ifdef _lintint __void__;#define VOID(X) (__void__ = (int) (X))#else#undef VOID#define VOID(X) (X)#endif#endif /* DONT_DEFINE_VOID */#if defined(_lint) || defined(FORCE_INIT_OF_VARS)#define LINT_INIT(var) var=0 /* No uninitialize-warning */#else#define LINT_INIT(var)#endif/* Define som useful general macros */#if defined(__cplusplus) && defined(__GNUC__)#define max(a, b) ((a) >? (b))#define min(a, b) ((a) <? (b))#elif !defined(max)#define max(a, b) ((a) > (b) ? (a) : (b))#define min(a, b) ((a) < (b) ? (a) : (b))#endif#if defined(__EMX__) || !defined(HAVE_UINT)typedef unsigned int uint;typedef unsigned short ushort;#endif#define sgn(a) (((a) < 0) ? -1 : ((a) > 0) ? 1 : 0)#define swap(t,a,b) { register t dummy; dummy = a; a = b; b = dummy; }#define test(a) ((a) ? 1 : 0)#define set_if_bigger(a,b) { if ((a) < (b)) (a)=(b); }#define set_if_smaller(a,b) { if ((a) > (b)) (a)=(b); }#define test_all_bits(a,b) (((a) & (b)) == (b))#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))#ifndef HAVE_RINT#define rint(A) floor((A)+0.5)#endif/* Define som general constants */#ifndef TRUE#define TRUE (1) /* Logical true */#define FALSE (0) /* Logical false */#endif#if defined(__GNUC__)#define function_volatile volatile#define my_reinterpret_cast(A) reinterpret_cast<A>#define my_const_cast(A) const_cast<A>#elif !defined(my_reinterpret_cast)#define my_reinterpret_cast(A) (A)#define my_const_cast(A) (A)#endif#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__) || __GNUC__ == 2 && __GNUC_MINOR__ < 8)#define __attribute__(A)#endif/* From old s-system.h *//* Support macros for non ansi & other old compilers. Since such things are no longer supported we do nothing. We keep then since some of our code may still be needed to upgrade old customers. */#define _VARARGS(X) X#define _STATIC_VARARGS(X) X#define _PC(X) X#if defined(DBUG_ON) && defined(DBUG_OFF)#undef DBUG_OFF#endif#if defined(_lint) && !defined(DBUG_OFF)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -