00001 00031 #ifndef _VMEM_H_ 00032 #define _VMEM_H_ 00033 00034 #include <maloc/maloc_base.h> 00035 00036 /* 00037 * *************************************************************************** 00038 * Class Vmem: Parameters and datatypes 00039 * *************************************************************************** 00040 */ 00041 00042 00044 typedef struct Vmem { 00045 00046 char name[VMAX_ARGLEN]; 00048 size_t mallocBytes; 00049 size_t freeBytes; 00050 size_t highWater; 00051 size_t mallocAreas; 00053 } Vmem; 00054 00055 /* 00056 * *************************************************************************** 00057 * Class Vmem: Inlineable methods (vmem.c) 00058 * *************************************************************************** 00059 */ 00060 00061 #if !defined(VINLINE_MALOC) 00062 #else /* if defined(VINLINE_MALOC) */ 00063 #endif /* if !defined(VINLINE_MALOC) */ 00064 00066 VEXTERNC size_t Vmem_bytesTotal(void); 00068 VEXTERNC size_t Vmem_mallocBytesTotal(void); 00070 VEXTERNC size_t Vmem_freeBytesTotal(void); 00072 VEXTERNC size_t Vmem_highWaterTotal(void); 00074 VEXTERNC size_t Vmem_mallocAreasTotal(void); 00076 VEXTERNC void Vmem_printTotal(void); 00077 00079 VEXTERNC Vmem* Vmem_ctor(char *name); 00081 VEXTERNC void Vmem_dtor(Vmem **thee); 00082 00084 VEXTERNC void *Vmem_malloc(Vmem *thee, size_t num, size_t size); 00086 VEXTERNC void Vmem_free(Vmem *thee, size_t num, size_t size, void **ram); 00088 VEXTERNC void *Vmem_realloc(Vmem *thee, size_t num, size_t size, void **ram, 00089 size_t newNum); 00090 00092 VEXTERNC size_t Vmem_bytes(Vmem *thee); 00094 VEXTERNC size_t Vmem_mallocBytes(Vmem *thee); 00096 VEXTERNC size_t Vmem_freeBytes(Vmem *thee); 00098 VEXTERNC size_t Vmem_highWater(Vmem *thee); 00100 VEXTERNC size_t Vmem_mallocAreas(Vmem *thee); 00102 VEXTERNC void Vmem_print(Vmem *thee); 00103 00104 #endif /* _VMEM_H_ */ 00105