heap.h File Reference

Heap subsystem (public interface). More...

#include "cfg/cfg_heap.h"
#include <cfg/compiler.h>
#include <cfg/macros.h>

Go to the source code of this file.

Data Structures

struct  Heap
 A heap. More...

Defines

#define HEAP_DEFINE_BUF(name, size)   heap_buf_t name[((size) + sizeof(heap_buf_t) - 1) / sizeof(heap_buf_t)]
 Utility macro to allocate a heap of size size.

Functions

void heap_init (struct Heap *heap, void *memory, size_t size)
 Initialize heap within the buffer pointed by memory which is of size bytes.
void * heap_allocmem (struct Heap *heap, size_t size)
 Allocate a chunk of memory of size bytes from the heap.
void heap_freemem (struct Heap *heap, void *mem, size_t size)
 Free a chunk of memory of size bytes from the heap.
void heap_free (struct Heap *heap, void *mem)
 Free a block of memory, determining its size automatically.

Detailed Description

Heap subsystem (public interface).

Version:
Id
heap.h 3256 2010-03-22 16:29:37Z batt
Author:
Bernie Innocenti <bernie@codewiz.org>

Definition in file heap.h.


Define Documentation

#define HEAP_DEFINE_BUF ( name,
size   )     heap_buf_t name[((size) + sizeof(heap_buf_t) - 1) / sizeof(heap_buf_t)]

Utility macro to allocate a heap of size size.

Parameters:
name Variable name for the heap.
size Heap size in bytes.

Definition at line 76 of file heap.h.


Function Documentation

void heap_free ( struct Heap h,
void *  mem 
)

Free a block of memory, determining its size automatically.

Parameters:
h Heap from which the block was allocated.
mem Pointer to a block of memory previously allocated with either heap_malloc() or heap_calloc().
Note:
If mem is a NULL pointer, no operation is performed.
Freeing the same memory block twice has undefined behavior.
This function works like the ANSI C free().

Definition at line 223 of file heap.c.