Annotation of win32/sql/mysql/include/my_alloc.h, revision 1.1

1.1     ! misha       1: /* Copyright (C) 2000 MySQL AB
        !             2: 
        !             3:    This program is free software; you can redistribute it and/or modify
        !             4:    it under the terms of the GNU General Public License as published by
        !             5:    the Free Software Foundation; version 2 of the License.
        !             6: 
        !             7:    This program is distributed in the hope that it will be useful,
        !             8:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !             9:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            10:    GNU General Public License for more details.
        !            11: 
        !            12:    You should have received a copy of the GNU General Public License
        !            13:    along with this program; if not, write to the Free Software
        !            14:    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
        !            15: 
        !            16: /* 
        !            17:    Data structures for mysys/my_alloc.c (root memory allocator)
        !            18: */
        !            19: 
        !            20: #ifndef _my_alloc_h
        !            21: #define _my_alloc_h
        !            22: 
        !            23: #define ALLOC_MAX_BLOCK_TO_DROP                        4096
        !            24: #define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP      10
        !            25: 
        !            26: typedef struct st_used_mem
        !            27: {                                 /* struct for once_alloc (block) */
        !            28:   struct st_used_mem *next;       /* Next block in use */
        !            29:   unsigned int left;              /* memory left in block  */
        !            30:   unsigned int size;              /* size of block */
        !            31: } USED_MEM;
        !            32: 
        !            33: 
        !            34: typedef struct st_mem_root
        !            35: {
        !            36:   USED_MEM *free;                  /* blocks with free memory in it */
        !            37:   USED_MEM *used;                  /* blocks almost without free memory */
        !            38:   USED_MEM *pre_alloc;             /* preallocated block */
        !            39:   /* if block have less memory it will be put in 'used' list */
        !            40:   unsigned int min_malloc;
        !            41:   unsigned int block_size;         /* initial block size */
        !            42:   unsigned int block_num;          /* allocated blocks counter */
        !            43:   /* 
        !            44:      first free block in queue test counter (if it exceed 
        !            45:      MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list)
        !            46:   */
        !            47:   unsigned int first_block_usage;
        !            48: 
        !            49:   void (*error_handler)(void);
        !            50: } MEM_ROOT;
        !            51: #endif

E-mail: