Drizzled Public API Documentation

mem0pool.h File Reference
#include "univ.i"
#include "os0file.h"
#include "ut0lst.h"

Go to the source code of this file.

Classes

struct  mem_area_struct

Defines

#define MEM_AREA_EXTRA_SIZE

Typedefs

typedef struct mem_area_struct mem_area_t
typedef struct mem_pool_struct mem_pool_t

Functions

UNIV_INTERN mem_pool_tmem_pool_create (ulint size)
UNIV_INTERN void mem_pool_free (mem_pool_t *pool)
UNIV_INTERN void * mem_area_alloc (ulint *psize, mem_pool_t *pool)
UNIV_INTERN void mem_area_free (void *ptr, mem_pool_t *pool)
UNIV_INTERN ulint mem_pool_get_reserved (mem_pool_t *pool)
UNIV_INTERN ibool mem_pool_validate (mem_pool_t *pool)
UNIV_INTERN void mem_pool_print_info (FILE *outfile, mem_pool_t *pool)

Variables

mem_pool_tmem_comm_pool

Detailed Description

The lowest-level memory management

Created 6/9/1994 Heikki Tuuri

Definition in file mem0pool.h.


Define Documentation

Value:
(ut_calc_align(sizeof(struct mem_area_struct),\
      UNIV_MEM_ALIGNMENT))

Each memory area takes this many extra bytes for control information

Definition at line 54 of file mem0pool.h.

Referenced by mem_area_alloc(), mem_area_free(), and mem_pool_create().


Typedef Documentation

typedef struct mem_area_struct mem_area_t

Memory area header

Definition at line 35 of file mem0pool.h.

typedef struct mem_pool_struct mem_pool_t

Memory pool

Definition at line 37 of file mem0pool.h.


Function Documentation

UNIV_INTERN void* mem_area_alloc ( ulint *  psize,
mem_pool_t pool 
)

Allocates memory from a pool. NOTE: This low-level function should only be used in mem0mem.*!

Returns:
own: allocated memory buffer in: memory pool

Allocates memory from a pool. NOTE: This low-level function should only be used in mem0mem.*!

Returns:
own: allocated memory buffer
Parameters:
psizein: requested size in bytes; for optimum space usage, the size should be a power of 2 minus MEM_AREA_EXTRA_SIZE; out: allocated size in bytes (greater than or equal to the requested size)
poolin: memory pool

Definition at line 368 of file mem0pool.cc.

References mem_pool_struct::free_list, mem_analyze_corruption(), mem_area_alloc(), MEM_AREA_EXTRA_SIZE, mem_pool_validate(), mem_pool_struct::mutex, mem_pool_struct::reserved, mem_pool_struct::size, ut_2_exp(), ut_2_log(), ut_a, ut_ad, ut_error, UT_LIST_GET_FIRST, UT_LIST_GET_LEN, UT_LIST_REMOVE, ut_malloc(), and ut_max().

Referenced by mem_area_alloc().

UNIV_INTERN void mem_area_free ( void *  ptr,
mem_pool_t pool 
)

Frees memory to a pool. in: memory pool

Frees memory to a pool.

Parameters:
ptrin, own: pointer to allocated memory buffer
poolin: memory pool

Definition at line 510 of file mem0pool.cc.

References mem_pool_struct::buf, mem_pool_struct::free_list, mem_analyze_corruption(), MEM_AREA_EXTRA_SIZE, mem_area_free(), mem_pool_validate(), mem_pool_struct::reserved, mem_pool_struct::size, ut_2_exp(), ut_2_log(), ut_a, ut_ad, ut_error, ut_free(), ut_is_2pow, UT_LIST_ADD_FIRST, and UT_LIST_REMOVE.

Referenced by mem_area_free().

UNIV_INTERN mem_pool_t* mem_pool_create ( ulint  size)

Creates a memory pool.

Returns:
memory pool in: pool size in bytes

Creates a memory pool.

Returns:
memory pool
Parameters:
sizein: pool size in bytes

Definition at line 220 of file mem0pool.cc.

References mem_pool_struct::buf, mem_pool_struct::free_list, MEM_AREA_EXTRA_SIZE, mem_pool_create(), mem_pool_struct::mutex, mem_pool_struct::reserved, mem_pool_struct::size, ut_2_exp(), ut_2_log(), ut_ad, UT_LIST_ADD_FIRST, UT_LIST_INIT, ut_malloc(), and ut_malloc_low().

Referenced by mem_init(), and mem_pool_create().

UNIV_INTERN void mem_pool_free ( mem_pool_t pool)

Frees a memory pool. in, own: memory pool

Frees a memory pool.

Parameters:
poolin, own: memory pool

Definition at line 283 of file mem0pool.cc.

References mem_pool_struct::buf, mem_pool_free(), and ut_free().

Referenced by mem_close(), and mem_pool_free().

UNIV_INTERN ulint mem_pool_get_reserved ( mem_pool_t pool)

Returns the amount of reserved memory.

Returns:
reserved mmeory in bytes in: memory pool

Returns the amount of reserved memory.

Returns:
reserved memory in bytes
Parameters:
poolin: memory pool

Definition at line 720 of file mem0pool.cc.

References mem_pool_get_reserved(), mem_pool_struct::mutex, and mem_pool_struct::reserved.

Referenced by mem_pool_get_reserved(), and srv_printf_innodb_monitor().

UNIV_INTERN void mem_pool_print_info ( FILE *  outfile,
mem_pool_t pool 
)

Prints info of a memory pool. in: memory pool

Prints info of a memory pool.

Parameters:
outfilein: output file to write to
poolin: memory pool

Definition at line 686 of file mem0pool.cc.

References mem_pool_struct::free_list, mem_pool_print_info(), mem_pool_validate(), mem_pool_struct::mutex, mem_pool_struct::reserved, mem_pool_struct::size, ut_2_exp(), and UT_LIST_GET_LEN.

Referenced by mem_pool_print_info().

UNIV_INTERN ibool mem_pool_validate ( mem_pool_t pool)

Validates a memory pool.

Returns:
TRUE if ok in: memory pool

Validates a memory pool.

Returns:
TRUE if ok
Parameters:
poolin: memory pool

Definition at line 640 of file mem0pool.cc.

References mem_pool_struct::free_list, mem_pool_validate(), mem_pool_struct::reserved, mem_pool_struct::size, ut_2_exp(), ut_a, UT_LIST_GET_FIRST, UT_LIST_GET_NEXT, and UT_LIST_VALIDATE.

Referenced by mem_area_alloc(), mem_area_free(), mem_pool_print_info(), and mem_pool_validate().


Variable Documentation

The common memory pool

Definition at line 116 of file mem0pool.cc.

Referenced by mem_close(), mem_init(), and srv_printf_innodb_monitor().