#endif
-/* Remove the free-area FA from HEAP. */
+/* Delete the free-area FA from HEAP. */
extern inline void
-__heap_unlink_free_area (struct heap *heap, struct heap_free_area *fa)
+__heap_delete (struct heap *heap, struct heap_free_area *fa)
{
if (fa->next)
fa->next->prev = fa->prev;
/* There's not enough room left over in FA after allocating the block, so
just use the whole thing, removing it from the list of free areas. */
{
- __heap_unlink_free_area (heap, fa);
+ __heap_delete (heap, fa);
/* Remember that we've alloced the whole area. */
size = fa_size;
}
Returns the heap free area into which the memory was placed. */
extern struct heap_free_area *__heap_free (struct heap *heap,
void *mem, size_t size);
+
+/* Return true if HEAP contains absolutely no memory. */
+#define __heap_is_empty(heap) (! (heap)->free_areas)