You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.4 KiB
C

2 years ago
/************************************************************************
*
* Copyright (C) 2003-2004
* Shenzhen SCADA Control Technology Co., Ltd.
* All rights reserved.
*
*
2 years ago
*
* : 2005/04/12
2 years ago
*
***********************************************************************/
#ifndef __OS_HEAP_H_ASDFJLCXJVZXHCROEYUIODFGFMHFOIUHSDIHFZXKJCHGVLSDHFAJD
#define __OS_HEAP_H_ASDFJLCXJVZXHCROEYUIODFGFMHFOIUHSDIHFZXKJCHGVLSDHFAJD
#include "basetype.h"
/*!
* \brief
2 years ago
*
* \param size
* \param file null
* NULL (anony)
* \param line
2 years ago
*
* \retutrn
*
* NULL
2 years ago
*
* \note
* 使heap_free
2 years ago
*
* ANSI C malloc
2 years ago
*/
DSLIB_API void * heap_malloc (size_t size, const char * file, int line);
/*!
* \brief , 0.
2 years ago
*
* \param num
* \param elm_size ()
* \param file null
* NULL (anony)
* \param line
2 years ago
*
* \retutrn
*
* NULL
2 years ago
*
* \note
* 使heap_free
2 years ago
*
* ANSI C calloc calloc
* callocelm_size
*
2 years ago
*/
DSLIB_API void * heap_calloc (size_t num, size_t elm_size,
const char * file, int line);
/*!
* \brief
2 years ago
*
* \param mb heap_alloc/heap_calloc
2 years ago
*
* \return
*
2 years ago
*/
DSLIB_API void heap_free (void * mb);
/*!
* \brief
2 years ago
*
*
2 years ago
*
* \param fname fnameNULL
*
2 years ago
*
* \retval -1
* \retval 0
2 years ago
*/
DSLIB_API int heap_report (const char * fname);
/*
* , 便使
2 years ago
*
* 1. HEAP_MALLOC(_size)
* 2. HEAP_CALLOC(_num, _elm_size)
* 3. HEAP_FREE(_mb)
*/
#define HEAP_MALLOC(_size) heap_malloc((_size), __FILE__, __LINE__)
#define HEAP_CALLOC(_num, _elm_size) heap_calloc((_num), (_elm_size), __FILE__, __LINE__)
#define HEAP_FREE(_mb) do{if(_mb) {heap_free((_mb)); (_mb) = NULL;}} while(0)
#ifdef DISABLE_OS_HEAP
#undef HEAP_MALLOC
#undef HEAP_CALLOC
#undef HEAP_FREE
#define HEAP_MALLOC(_size) malloc(_size)
#define HEAP_CALLOC(_num, _elm_size) calloc(_num, _elm_size)
#define HEAP_FREE(_mb) do {if (_mb) {free(_mb); (_mb) = NULL;}} while(0)
#endif
#endif /* __OS_HEAP_H_ASDFJLCXJVZXHCROEYUIODFGFMHFOIUHSDIHFZXKJCHGVLSDHFAJD */