Heap¶
API for doing dynamic memory allocation.
Description¶
This provides malloc()/free() functionality with locking. The shared
resource heap needs to be protected from concurrent access when OS has
been started. os_malloc()
function grabs a mutex before calling
malloc()
.
API¶
-
void *
os_malloc
(size_t size)¶ Operating system level malloc().
This ensures that a safe malloc occurs within the context of the OS. Depending on platform, the OS may rely on libc’s malloc() implementation, which is not guaranteed to be thread-safe. This malloc() will always be thread-safe.
- Return
A pointer to the memory region allocated.
- Parameters
size
: The number of bytes to allocate
-
void
os_free
(void *mem)¶ Operating system level free().
See description of os_malloc() for reasoning.
Free’s memory allocated by malloc.
- Parameters
mem
: The memory to free.
-
void *
os_realloc
(void *ptr, size_t size)¶ Operating system level realloc().
See description of os_malloc() for reasoning.
Reallocates the memory at ptr, to be size contiguouos bytes.
- Return
A pointer to memory of size, or NULL on failure to allocate
- Parameters
ptr
: A pointer to the memory to allocatesize
: The number of contiguouos bytes to allocate at that location