139#include <lwip/memp.h>
148coap_malloc_error(uint16_t *err) {
158#define coap_malloc_type(type, asize) \
159 (((asize) <= memp_pools[MEMP_ ## type]->size) ? \
160 memp_malloc(MEMP_ ## type) : coap_malloc_error(&memp_pools[MEMP_ ## type]->stats->err))
162#define coap_malloc_type(type, asize) \
163 (((asize) <= memp_pools[MEMP_ ## type]->size) ? \
164 memp_malloc(MEMP_ ## type) : NULL)
166#define coap_free_type(type, p) memp_free(MEMP_ ## type, p)
169#define coap_realloc_type(type, p, asize) \
170 ((p) ? ((asize) <= memp_pools[MEMP_ ## type]->size) ? (p) : NULL : coap_malloc_type(type, asize))
178 LWIP_ASSERT(
"coap_malloc must not be used in lwIP", 0);
184 LWIP_ASSERT(
"coap_free must not be used in lwIP", 0);
187#define coap_dump_memory_type_counts(l) coap_lwip_dump_memory_pools(l)
COAP_STATIC_INLINE void coap_free(void *object)
Wrapper function to coap_free_type() for backwards compatibility.
COAP_STATIC_INLINE void * coap_malloc(size_t size)
Wrapper function to coap_malloc_type() for backwards compatibility.
void coap_dump_memory_type_counts(coap_log_t log_level)
Dumps the current usage of malloc'd memory types.
void coap_memory_init(void)
Initializes libcoap's memory management.
coap_memory_tag_t
Type specifiers for coap_malloc_type().
void * coap_realloc_type(coap_memory_tag_t type, void *p, size_t size)
Reallocates a chunk p of bytes created by coap_malloc_type() or coap_realloc_type() and returns a poi...
void * coap_malloc_type(coap_memory_tag_t type, size_t size)
Allocates a chunk of size bytes and returns a pointer to the newly allocated memory.
void coap_free_type(coap_memory_tag_t type, void *p)
Releases the memory that was allocated by coap_malloc_type().
#define COAP_STATIC_INLINE