Example #1
0
static void heap_dump(void)
{
	dprintf(INFO, "Heap dump:\n");
	dprintf(INFO, "\tbase %p, len 0x%zx\n", theheap.base, theheap.len);
	dprintf(INFO, "\tfree list:\n");

	mutex_acquire(&theheap.lock);

	struct free_heap_chunk *chunk;
	list_for_every_entry(&theheap.free_list, chunk, struct free_heap_chunk, node) {
		dump_free_chunk(chunk);
	}

	dprintf(INFO, "\tdelayed free list:\n");
	list_for_every_entry(&theheap.delayed_free_list, chunk, struct free_heap_chunk, node) {
		dump_free_chunk(chunk);
	}
	mutex_release(&theheap.lock);
}
Example #2
0
static void heap_dump(void)
{
	dprintf(INFO, "Heap dump:\n");
	dprintf(INFO, "\tbase %p, len 0x%zx\n", theheap.base, theheap.len);
	dprintf(INFO, "\tfree list:\n");

	struct free_heap_chunk *chunk;
	list_for_every_entry(&theheap.free_list, chunk, struct free_heap_chunk, node) {
		dump_free_chunk(chunk);
	}
}
Example #3
0
static void heap_dump(void)
{
	int z;

	for (z = 0; z < MAX_ZONES; z++) {
		dprintf(INFO, "\nHeap dump (%s):\n", zone_name(z));
		dprintf(INFO, "\tbase %p, len 0x%zx\n", theheap[z].base, theheap[z].len);
		dprintf(INFO, "\tfree list:\n");

		struct free_heap_chunk *chunk;
		list_for_every_entry(&theheap[z].free_list, chunk, struct free_heap_chunk, node) {
			dump_free_chunk(chunk);
		}
	}
}