home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 March (DVD) / PCWorld_2008-03_DVD.iso / komunikace / mysql / mysql-essential-5.0.45-win32.msi / product.cab / fili050 < prev    next >
Encoding:
Text File  |  2007-07-06  |  1.8 KB  |  52 lines

  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
  52.