13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DMMEMORY_H
23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DMMEMORY_H
33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus
43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" {
53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif
63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************** HEADER FILE INCLUDES *****************************************/
83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Types.h"
103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmStringUtil.h"
113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DmAllocMem(bufsize) DmAllocMemEx(bufsize,__FILE__,__LINE__)
143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DmFreeMem(buf) { DmFreeMemEx(buf,__FILE__,__LINE__); (buf) = NULL; }
153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid * DmAllocMemEx(UINT32 bufsize, CPCHAR szFile, int nLine );
173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmFreeMemEx(void *ptr, CPCHAR szFile, int nLine);
183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid* DmReallocMem( void* ptr, int nSize );
193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Low memory helpers */
213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyint DmGetMemFailedFlag( void );
223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmResetMemFailedFlag( void );
233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef DM_MEMORY_STATISTICS_ENABLED
253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_WRITE(header)  DmMemoryStatisticsWrite(header)
273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmMemoryStatisticsWrite(const char* header);
283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_REPORT_LEAKS  DmMemoryStatisticsReportLeaks();
303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmMemoryStatisticsReportLeaks( void );
313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else /*DM_MEMORY_STATISTICS_ENABLED*/
333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_WRITE(header)
353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_REPORT_LEAKS
363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif /*DM_MEMORY_STATISTICS_ENABLED*/
383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus
403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby}
413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif
423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif /* DMMEMORY_H */
433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby
44