libcoap 4.3.5-develop-19cef11
|
CoAP memory handling. More...
Go to the source code of this file.
Enumerations | |
enum | coap_memory_tag_t { COAP_STRING , COAP_ATTRIBUTE_NAME , COAP_ATTRIBUTE_VALUE , COAP_PACKET , COAP_NODE , COAP_CONTEXT , COAP_ENDPOINT , COAP_PDU , COAP_PDU_BUF , COAP_RESOURCE , COAP_RESOURCEATTR , COAP_DTLS_SESSION , COAP_SESSION , COAP_OPTLIST , COAP_CACHE_KEY , COAP_CACHE_ENTRY , COAP_LG_XMIT , COAP_LG_CRCV , COAP_LG_SRCV , COAP_DIGEST_CTX , COAP_SUBSCRIPTION , COAP_DTLS_CONTEXT , COAP_OSCORE_COM , COAP_OSCORE_SEN , COAP_OSCORE_REC , COAP_OSCORE_EX , COAP_OSCORE_EP , COAP_OSCORE_BUF , COAP_COSE , COAP_MEM_TAG_LAST } |
Type specifiers for coap_malloc_type(). More... | |
Functions | |
void | coap_memory_init (void) |
Initializes libcoap's memory management. More... | |
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. More... | |
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 pointer to the newly allocated memory of size . More... | |
void | coap_free_type (coap_memory_tag_t type, void *p) |
Releases the memory that was allocated by coap_malloc_type(). More... | |
void | coap_dump_memory_type_counts (coap_log_t log_level) |
Dumps the current usage of malloc'd memory types. More... | |
COAP_STATIC_INLINE void * | coap_malloc (size_t size) |
Wrapper function to coap_malloc_type() for backwards compatibility. More... | |
COAP_STATIC_INLINE void | coap_free (void *object) |
Wrapper function to coap_free_type() for backwards compatibility. More... | |
CoAP memory handling.
Definition in file coap_mem.h.
enum coap_memory_tag_t |
Type specifiers for coap_malloc_type().
Memory objects can be typed to facilitate arrays of type objects to be used instead of dynamic memory management on constrained devices.
Definition at line 38 of file coap_mem.h.
void coap_dump_memory_type_counts | ( | coap_log_t | log_level | ) |
Dumps the current usage of malloc'd memory types.
Requires COAP_MEMORY_TYPE_TRACK to be defined to 1.
log_level | The logging level to use. |
Definition at line 670 of file coap_mem.c.
COAP_STATIC_INLINE void coap_free | ( | void * | object | ) |
Wrapper function to coap_free_type() for backwards compatibility.
Definition at line 132 of file coap_mem.h.
void coap_free_type | ( | coap_memory_tag_t | type, |
void * | p | ||
) |
Releases the memory that was allocated by coap_malloc_type().
The type tag type
must be the same that was used for allocating the object pointed to by .
type | The type of the object to release. |
p | A pointer to memory that was allocated by coap_malloc_type(). |
COAP_STATIC_INLINE void * coap_malloc | ( | size_t | size | ) |
Wrapper function to coap_malloc_type() for backwards compatibility.
Definition at line 124 of file coap_mem.h.
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.
The type
is used to select the appropriate storage container on constrained devices. The storage allocated by coap_malloc_type() must be released with coap_free_type().
type | The type of object to be stored. |
size | The number of bytes requested. |
NULL
on error. void coap_memory_init | ( | void | ) |
Initializes libcoap's memory management.
This function must be called once before coap_malloc() can be used on constrained devices.
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 pointer to the newly allocated memory of size
.
Only COAP_STRING type is supported.
Note: If there is an error, p
will separately need to be released by coap_free_type().
type | The type of object to be stored. |
p | A pointer to memory that was allocated by coap_malloc_type(). |
size | The number of bytes requested. |
NULL
on error.