?? my_sys.h
字號:
/* Copyright (C) 2000-2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef _my_sys_h#define _my_sys_hC_MODE_START#ifdef HAVE_AIOWAIT#include <sys/asynch.h> /* Used by record-cache */typedef struct my_aio_result { aio_result_t result; int pending;} my_aio_result;#endif#ifndef THREADextern int NEAR my_errno; /* Last error in mysys */#else#include <my_pthread.h>#endif#ifndef _m_ctype_h#include <m_ctype.h> /* for CHARSET_INFO */#endif#include <stdarg.h>#include <typelib.h>#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; }#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;}#define MY_INIT(name); { my_progname= name; my_init(); }#define MAXMAPS (4) /* Number of error message maps */#define ERRMOD (1000) /* Max number of errors in a map */#define ERRMSGSIZE (SC_MAXWIDTH) /* Max length of a error message */#define NRERRBUFFS (2) /* Buffers for parameters */#define MY_FILE_ERROR ((uint) ~0) /* General bitmaps for my_func's */#define MY_FFNF 1 /* Fatal if file not found */#define MY_FNABP 2 /* Fatal if not all bytes read/writen */#define MY_NABP 4 /* Error if not all bytes read/writen */#define MY_FAE 8 /* Fatal if any error */#define MY_WME 16 /* Write message on error */#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */#define MY_RAID 64 /* Support for RAID (not the "Johnson&Johnson"-s one ;) */#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */#define MY_COPYTIME 64 /* my_redel() copys time */#define MY_DELETE_OLD 256 /* my_create_with_symlink() */#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */#define MY_REDEL_MAKE_BACKUP 256#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */#define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */#define MY_THREADSAFE 128 /* pread/pwrite: Don't allow interrupts */#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy; Don't overwrite file */#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */#define MY_GIVE_INFO 2 /* Give time info about process*/#define ME_HIGHBYTE 8 /* Shift for colours */#define ME_NOCUR 1 /* Don't use curses message */#define ME_OLDWIN 2 /* Use old window */#define ME_BELL 4 /* Ring bell then printing message */#define ME_HOLDTANG 8 /* Don't delete last keys */#define ME_WAITTOT 16 /* Wait for errtime secs of for a action */#define ME_WAITTANG 32 /* Wait for a user action */#define ME_NOREFRESH 64 /* Dont refresh screen */#define ME_NOINPUT 128 /* Dont use the input libary */#define ME_COLOUR1 ((1 << ME_HIGHBYTE)) /* Possibly error-colours */#define ME_COLOUR2 ((2 << ME_HIGHBYTE))#define ME_COLOUR3 ((3 << ME_HIGHBYTE)) /* Bits in last argument to fn_format */#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */#define MY_RETURN_REAL_PATH 32 /* return full path for file */#define MY_SAFE_PATH 64 /* Return NULL if too long path */#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */ /* My seek flags */#define MY_SEEK_SET 0#define MY_SEEK_CUR 1#define MY_SEEK_END 2 /* Some constants */#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */#define DFLT_INIT_HITS 3 /* root_alloc flags */#define MY_KEEP_PREALLOC 1#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */ /* Internal error numbers (for assembler functions) */#define MY_ERRNO_EDOM 33#define MY_ERRNO_ERANGE 34 /* defines when allocating data */#ifdef SAFEMALLOC#define my_malloc(SZ,FLAG) _mymalloc((SZ), __FILE__, __LINE__, FLAG )#define my_malloc_ci(SZ,FLAG) _mymalloc((SZ), sFile, uLine, FLAG )#define my_realloc(PTR,SZ,FLAG) _myrealloc((PTR), (SZ), __FILE__, __LINE__, FLAG )#define my_checkmalloc() _sanity( __FILE__, __LINE__ )#define my_free(PTR,FLAG) _myfree((PTR), __FILE__, __LINE__,FLAG)#define my_memdup(A,B,C) _my_memdup((A),(B), __FILE__,__LINE__,C)#define my_strdup(A,C) _my_strdup((A), __FILE__,__LINE__,C)#define my_strdup_with_length(A,B,C) _my_strdup_with_length((A),(B),__FILE__,__LINE__,C)#define QUICK_SAFEMALLOC sf_malloc_quick=1#define NORMAL_SAFEMALLOC sf_malloc_quick=0extern uint sf_malloc_prehunc,sf_malloc_endhunc,sf_malloc_quick;extern ulonglong sf_malloc_mem_limit;#define CALLER_INFO_PROTO , const char *sFile, uint uLine#define CALLER_INFO , __FILE__, __LINE__#define ORIG_CALLER_INFO , sFile, uLine#else#define my_checkmalloc()#undef TERMINATE#define TERMINATE(A) {}#define QUICK_SAFEMALLOC#define NORMAL_SAFEMALLOCextern gptr my_malloc(uint Size,myf MyFlags);#define my_malloc_ci(SZ,FLAG) my_malloc( SZ, FLAG )extern gptr my_realloc(gptr oldpoint,uint Size,myf MyFlags);extern void my_no_flags_free(gptr ptr);extern gptr my_memdup(const byte *from,uint length,myf MyFlags);extern char *my_strdup(const char *from,myf MyFlags);extern char *my_strdup_with_length(const byte *from, uint length, myf MyFlags);#define my_free(PTR,FG) my_no_flags_free(PTR)#define CALLER_INFO_PROTO /* nothing */#define CALLER_INFO /* nothing */#define ORIG_CALLER_INFO /* nothing */#endif#ifdef HAVE_ALLOCA#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43)#pragma alloca#endif /* _AIX */#if defined(__MWERKS__)#undef alloca#define alloca __alloca#endif /* __MWERKS__ */#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca)#define alloca __builtin_alloca#endif /* GNUC */#define my_alloca(SZ) alloca((size_t) (SZ))#define my_afree(PTR) {}#else#define my_alloca(SZ) my_malloc(SZ,MYF(0))#define my_afree(PTR) my_free(PTR,MYF(MY_WME))#endif /* HAVE_ALLOCA */#ifdef MSDOS#ifdef __ZTC__void * __CDECL halloc(long count,size_t length);void __CDECL hfree(void *ptr);#endif#if defined(USE_HALLOC)#if defined(_VCM_) || defined(M_IC80386)#undef USE_HALLOC#endif#endif#ifdef USE_HALLOC#define malloc(a) halloc((long) (a),1)#define free(a) hfree(a)#endif#endif /* MSDOS */#ifndef errno /* did we already get it? */#ifdef HAVE_ERRNO_AS_DEFINE#include <errno.h> /* errno is a define */#elseextern int errno; /* declare errno */#endif#endif /* #ifndef errno */extern const char ** NEAR my_errmsg[];extern char NEAR errbuff[NRERRBUFFS][ERRMSGSIZE];extern char *home_dir; /* Home directory for user */extern char *my_progname; /* program-name (printed in errors) */extern char NEAR curr_dir[]; /* Current directory for user */extern int (*error_handler_hook)(uint my_err, const char *str,myf MyFlags);extern int (*fatal_error_handler_hook)(uint my_err, const char *str, myf MyFlags);extern uint my_file_limit;/* charsets */extern CHARSET_INFO *default_charset_info;extern CHARSET_INFO *all_charsets[256];extern CHARSET_INFO compiled_charsets[];/* statistics */extern ulong my_cache_w_requests, my_cache_write, my_cache_r_requests, my_cache_read;extern ulong my_blocks_used, my_blocks_changed;extern ulong my_file_opened,my_stream_opened, my_tmp_file_created;extern uint mysys_usage_id;extern my_bool my_init_done; /* Point to current my_message() */extern void (*my_sigtstp_cleanup)(void), /* Executed before jump to shell */ (*my_sigtstp_restart)(void), (*my_abort_hook)(int); /* Executed when comming from shell */extern int NEAR my_umask, /* Default creation mask */ NEAR my_umask_dir, NEAR my_recived_signals, /* Signals we have got */ NEAR my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */ NEAR my_dont_interrupt; /* call remember_intr when set */extern my_bool NEAR mysys_uses_curses, my_use_symdir;extern ulong sf_malloc_cur_memory, sf_malloc_max_memory;extern ulong my_default_record_cache_size;extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io, NEAR my_disable_flush_key_blocks, NEAR my_disable_symlinks;extern char wild_many,wild_one,wild_prefix;extern const char *charsets_dir;extern char *defaults_extra_file;typedef struct wild_file_pack /* Struct to hold info when selecting files */{ uint wilds; /* How many wildcards */ uint not_pos; /* Start of not-theese-files */ my_string *wild; /* Pointer to wildcards */} WF_PACK;enum loglevel { ERROR_LEVEL, WARNING_LEVEL, INFORMATION_LEVEL};enum cache_type{ READ_CACHE,WRITE_CACHE, SEQ_READ_APPEND /* sequential read or append */, READ_FIFO, READ_NET,WRITE_NET};enum flush_type{ FLUSH_KEEP, FLUSH_RELEASE, FLUSH_IGNORE_CHANGED, FLUSH_FORCE_WRITE};typedef struct st_record_cache /* Used when cacheing records */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -