void _rtw_mfree(u8 *pbuf, u32 sz) { #ifdef PLATFORM_LINUX #ifdef RTK_DMP_PLATFORM if(sz > 0x4000) dvr_free(pbuf); else #endif kfree(pbuf); #endif #ifdef PLATFORM_FREEBSD free(pbuf,M_DEVBUF); #endif #ifdef PLATFORM_WINDOWS NdisFreeMemory(pbuf,sz, 0); #endif #ifdef DBG_MEMORY_LEAK #ifdef PLATFORM_LINUX atomic_dec(&_malloc_cnt); atomic_sub(sz, &_malloc_size); #endif #endif /* DBG_MEMORY_LEAK */ }
void _mfree(u8 *pbuf, u32 sz) { #ifdef PLATFORM_LINUX #ifdef RTK_DMP_PLATFORM if(sz > 0x4000) dvr_free(pbuf); else #endif kfree(pbuf, 0); #endif #ifdef PLATFORM_WINDOWS NdisFreeMemory(pbuf,sz, 0); #endif }
/*---------------------------------------------------------------------- * Func : free_mcpb * * Desc : free a mcp buffer with specified length * * Parm : mcpb : mcp buffer to be free * * Retn : N/A *----------------------------------------------------------------------*/ void free_mcpb(mcp_buff* mcpb) { unsigned long len; if (mcpb) { len = (unsigned long) mcpb->end - (unsigned long) mcpb; mcpb_dbg("Free Buffer %p (len = %ul)\n", mcpb, len); #ifdef USE_DVR_MALLOC if (len >= MAX_MCPB_LEN) dvr_free(mcpb); else kfree(mcpb); #else if (len >= MAX_MCPB_LEN) free_pages((unsigned long) mcpb, get_order(len)); else kfree(mcpb); #endif } }