/************************************************************************
 * AUTHOR: NiuJiuRu
 * FILENAME: swheap.c
 * DESCRIPTION: 可分块/可跟踪内存泄漏位置的内存管理全局堆
 * NOTE:
 * HISTORY:
 * 1, [2010-09-27] created by NiuJiuRu
 ***********************************************************************/
#include "swapi.h"
#include "swmem.h"

// 内存管理模块的全局堆
void *g_hSwHeap = NULL;

/* 初试化内存管理模块的全局堆, align = 1, 2, 4, 8, 16, ... */
bool sw_heap_init(char *buf, int size, int align)
{
	g_hSwHeap = sw_mem_create(buf, size, align);
	return (g_hSwHeap != NULL);
}

/* 释放内存管理模块的全局堆 */
void sw_heap_exit()
{
	sw_mem_destroy(g_hSwHeap);
	g_hSwHeap = NULL;
}

/* 检查全局堆的内存使用情况, 并返回历史上最大消耗过的内存数 */
int sw_heap_check(PMemCheckCallback proc, void *lpParameter)
{
	return sw_mem_check(g_hSwHeap, proc, lpParameter);
}

/* 获得全局堆总的内存大小 */
int sw_heap_getTotalSize()
{
	return sw_mem_getTotalSize(g_hSwHeap);
}
