00001 00009 #ifndef DKUTIL_CSTD_MALLOC_H 00010 #define DKUTIL_CSTD_MALLOC_H 00011 00012 00013 #include "os.h" 00014 00015 00016 #define dkcstdMALLOC_MEMORY_ALIGN 64 00017 00018 #ifdef WIN32 00019 00024 #define dkcstdMALLOC_BASE(size) GlobalAlloc( GMEM_FIXED, size ) 00025 #define dkcstdFREE_BASE(ptr ) GlobalFree( ptr ) 00026 #define dkcstdREALLOC_BASE(p,size) GlobalReAlloc(p,size,0) 00027 #else 00028 00029 00030 #endif 00031 00032 typedef struct dkcstd_malloc_state{ 00033 size_t init_size; 00034 size_t expand_size; 00035 size_t alloc_count; 00036 00037 }DKCSTD_MALLOC_STATE; 00038 00039 DKC_EXTERN DKCSTD_MALLOC_STATE *dkcstd_malloc_init(size_t init_size,size_t expand_size); 00040 00042 DKC_EXTERN int dkcstd_malloc_end(); 00043 00044 DKC_EXTERN DKCSTD_MALLOC_STATE *dkcstd_get_malloc_state(); 00045 00046 DKC_EXTERN void *dkcstd_malloc( size_t size); 00047 00048 DKC_EXTERN void dkcstd_free(void *); 00049 00050 DKC_EXTERN void *dkcstd_realloc( void *memblock, size_t size ); 00051 00052 00053 DKC_EXTERN void *dkcstd_aligned_malloc( size_t size); 00054 00055 DKC_EXTERN void dkcstd_aligned_free(void *); 00056 00057 DKC_EXTERN void *dkcstd_aligned_realloc( void *memblock, size_t size ); 00058 00059 #endif //end of include once 00060