--- libelwix/src/mem.c 2013/01/17 10:05:35 1.1.1.1 +++ libelwix/src/mem.c 2015/06/25 00:36:48 1.4.18.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: mem.c,v 1.1.1.1 2013/01/17 10:05:35 misho Exp $ +* $Id: mem.c,v 1.4.18.1 2015/06/25 00:36:48 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 +Copyright 2004 - 2015 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -407,7 +407,8 @@ mpool_free(mpool_t * __restrict mp, void * __restrict int idx; struct tagAlloc *m, *tmp; - assert(data); + if (!data) + return 0; if (!mp) { elwix_SetErr(EINVAL, "Pool not specified"); return -1; @@ -544,7 +545,7 @@ mpool_strdup(mpool_t * __restrict mp, const char *str, * @memname = Memory name * return: NULL error or not found and !=NULL allocated memory */ -inline struct tagAlloc * +struct tagAlloc * mpool_getmembynam(mpool_t * __restrict mp, u_int size, const char *memname) { int idx; @@ -567,7 +568,7 @@ mpool_getmembynam(mpool_t * __restrict mp, u_int size, * @addr = allocated memory from mpool_malloc() * return: usable size of allocated memory block */ -inline u_int +u_int mpool_getsizebyaddr(void * __restrict data) { if (mpool_chkaddr(data)) @@ -582,7 +583,7 @@ mpool_getsizebyaddr(void * __restrict data) * @data = allocated memory from mpool_malloc() * return: -1 bad address, 1 corrupted address or 0 ok */ -inline int +int mpool_chkaddr(void * __restrict data) { /* check address range */ @@ -602,7 +603,7 @@ mpool_chkaddr(void * __restrict data) * @maxmem = New max quota size * return: old maximum memory quota size */ -inline u_long +u_long mpool_setquota(mpool_t * __restrict mp, u_long maxmem) { u_long ret; @@ -630,7 +631,7 @@ mpool_setquota(mpool_t * __restrict mp, u_long maxmem) * @maxmem = Return max quota size * return: none */ -inline void +void mpool_getquota(mpool_t * __restrict mp, u_long *currmem, u_long *maxmem) { if (!mp) @@ -732,4 +733,16 @@ char * mpool_xstrdup(const char *str) { return mpool_strdup(elwix_mpool, str, elwix_Prog); +} + +/* + * mpool_xstatistics() - elwix memory pool statistics wrapper + * + * @cb = Export statistics to callback + * return: none + */ +void +mpool_xstatistics(mpool_stat_cb cb) +{ + mpool_statistics(elwix_mpool, cb); }