rem: panic("kmalloc: asked to allocate too much for now!\n");
add: panic("malloc: asked to allocate too much for now!\n");
context: malloc(size_t size){	void *address = NULL;	int bin_index;	unsigned int i;	struct heap_page *page;	TRACE(("kmalloc: asked to allocate size %d\n", size));	mutex_lock(&heap_lock);#if USE_WALL	// The wall uses 4 bytes to store the actual length of the requested	// block, 8 bytes for the front wall, and 8 bytes for the back wall	size += 20;#endif	for (bin_index = 0; bin_index < bin_count; bin_index++)		if (size <= bins[bin_index].element_size)			break;	if (bin_index == bin_count) {		// XXX fix the raw alloc later.		//address = raw_alloc(size, bin_index);		panic("kmalloc: asked to allocate too much for now!\n");		goto out;	} else {		if (bins[bin_index].free_list != NULL) {			address = bins[bin_index].free_list;			bins[bin_index].free_list = (void *)(*(unsigned int *)bins[bin_index].free_list);			bins[bin_index].free_count--;		} else {			if (bins[bin_index].raw_count == 0) {				bins[bin_index].raw_list = raw_alloc(bins[bin_index].grow_size, bin_index);				bins[bin_index].raw_count = bins[bin_index].grow_size / bins[bin_index].element_size;			}			bins[bin_index].raw_count--;			address = bins[bin_index].raw_list;			bins[bin_index].raw_list += bins[bin_index].element_size;		}		bins[bin_index].alloc_count++;		page = &heap_alloc_table[((unsigned int)address - heap_base) / PAGE_SIZE];		page[0].free_count--;		TRACE(("kmalloc0: page %p: bin_index %d, free_count %d\n", page, page->bin_index, page->free_count));		for(i = 1; i < bins[bin_index].element_size / PAGE_SIZE; i++) {			page[i].free_count--;			TRACE(("kmalloc1: page 0x%x: bin_index %d, free_count %d\n", page[i], page[i].bin_index, page[i].free_count));		}	}out:	mutex_unlock(&heap_lock);	TRACE(("kmalloc: asked to allocate size %d, returning ptr = %p\n", size, address));#if PARANOID_KMALLOC	memset(address, 0xCC, size);#endif#if PARANOID_POINTER_CHECK	ptrchecklist_store(address);#endif#if USE_WALL	{		uint32 *wall = address;		size -= 20;		wall[0] = size;		wall[1] = 0xabadcafe;		wall[2] = 0xabadcafe;		address = (uint8 *)address + 12;		wall = (uint32 *)((uint8 *)address + size);		wall[0] = 0xabadcafe;		wall[1] = 0xabadcafe;	}#endif	return address;}