add: const unsigned int page_entries = PAGE_SIZE / sizeof(struct heap_page);
context: heap_init(addr new_heap_base, unsigned int new_heap_size){	// ToDo: the heap size may overflow in certain circumstances, but I didn't like	// the NewOS fix for this... -- axeld.	// set some global pointers	heap_alloc_table = (struct heap_page *)new_heap_base;	heap_size = new_heap_size;	heap_base = PAGE_ALIGN((unsigned int)heap_alloc_table + (heap_size / PAGE_SIZE) * sizeof(struct heap_page));	heap_base_ptr = heap_base;	dprintf("heap_alloc_table = %p, heap_base = 0x%lx, heap_size = 0x%lx\n", heap_alloc_table, heap_base, heap_size);	// zero out the heap alloc table at the base of the heap	memset((void *)heap_alloc_table, 0, (heap_size / PAGE_SIZE) * sizeof(struct heap_page));	// pre-init the mutex to at least fall through any semaphore calls	heap_lock.sem = -1;	heap_lock.holder = -1;	// set up some debug commands	add_debugger_command("heap_bindump", &dump_bin_list, "dump stats about bin usage");	return 0;}