Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

mybmalloc.c File Reference

Dynamic memory allocation per large block. More...

#include <sent/stddefs.h>

Include dependency graph for mybmalloc.c:

Go to the source code of this file.

Defines

#define MYBMALLOC_LINKED   1
 Use improved version that enables freeing.

Typedefs

typedef _linked_bufferLINKED_BUFFER
 Linked data structure to hold malloced areas.

Functions

void mybmalloc_set_param ()
void * mybmalloc (int size)
void mybmalloc_free (void)
char * mybstrdup (char *s)
void * mybmalloc2 (int size, BMALLOC_BASE **list)
void mybfree2 (BMALLOC_BASE **list)

Variables

static boolean mybmalloc_initialized = FALSE
 TRUE if mybmalloc has already initialized.
static char * current = NULL
 Pointer to the current block.
static char * nowp = NULL
 Pointer to the current allocating point in the block.
static char * endp = NULL
 Pointer at the end of the current block.
static unsigned int blocksize
 Block size in bytes.
static int align
 Allocation alignment size in bytes.
static unsigned int align_mask
 Bit mask to compute the actual aligned memory size.
static LINKED_BUFFER first_linked_buffer = NULL
 Pointer to the first linked buffer.
static LINKED_BUFFER last_linked_buffer = NULL
 Pointer to the last linked buffer.


Detailed Description

Dynamic memory allocation per large block.

Author:
Akinobu LEE
Date:
Thu Feb 17 16:14:59 2005
This file defines functions that allocate memories per a certain big block instead of allocating for each required sizes. This function will improve the overhead of memory management operation, especially when an application requires huge number of small segments to be allocated. These functions are mainly used for allocating memory for acoustic models and language models.

Revision
1.1.1.1

Definition in file mybmalloc.c.


Function Documentation

void mybmalloc_set_param  ) 
 

Set block size and memory alignment factor.

Definition at line 70 of file mybmalloc.c.

Referenced by mybmalloc(), mybmalloc2(), and system_bootup().

void* mybmalloc int  size  ) 
 

Malloc specified size and return the pointer.

Parameters:
size [in] required size in bytes
Returns:
pointer to the allocated area.

Definition at line 102 of file mybmalloc.c.

Referenced by add_to_error(), calc_tied_mix_init(), cdset_new(), dens_new(), dens_read(), gms_gprune_init(), hmm_add_physical_to_logical(), hmm_add_pseudo_phones_sub(), htk_hmmdata_new(), htk_hmmdata_read(), make_hmm_basephone_list(), mybstrdup(), rd_data(), rd_dens(), rd_state(), rd_tmix(), rd_trans(), rd_var(), rdhmmlist(), rdn_str(), state_new(), state_read(), tmix_create_codebook_index(), tmix_read(), trans_new(), trans_read(), and var_read().

void mybmalloc_free void   ) 
 

Free all the allocated area.

Definition at line 180 of file mybmalloc.c.

char* mybstrdup char *  s  ) 
 

String duplication using mybmalloc().

Parameters:
s [in] string to be duplicated
Returns:
pointer to the newly allocated string.

Definition at line 210 of file mybmalloc.c.

Referenced by rdhmmdef(), rdhmmlist(), regist_cdset(), and tmix_read().

void* mybmalloc2 int  size,
BMALLOC_BASE **  list
 

Another version of memory block allocation, used for tree lexicon.

Parameters:
size [in] memory size to be allocated
list [i/o] total memory management information (will be updated here)
Returns:
pointer to the newly allocated area.

Definition at line 228 of file mybmalloc.c.

Referenced by add_wacc(), wchmm_add_word(), and wchmm_duplicate_state().

void mybfree2 BMALLOC_BASE **  list  ) 
 

Free all memories allocated by mybmalloc2()

Parameters:
list [i/o] total memory management information (will be cleaned here)

Definition at line 262 of file mybmalloc.c.

Referenced by wchmm_free().


Generated on Tue Mar 28 16:03:35 2006 for Julius by  doxygen 1.4.2