rem: dprintf("free kernel args: get rid of %p - %p\n", (void *)lastEnd, (void *)areaStart);
add: TRACE(("free boot range: get rid of %p - %p\n", (void *)lastEnd, (void *)areaStart));
context: vm_free_unused_boot_loader_range(addr_t start, addr_t size){	vm_translation_map *map = &kernel_aspace->translation_map;	addr_t end = start + size;	addr_t lastEnd = start;	vm_region *area;	dprintf("free kernel args: asked to free %p - %p\n", (void *)start, (void *)end);	// The areas are sorted in virtual address space order, so	// we just have to find the holes between them that fall	// into the region we should dispose	map->ops->lock(map);	for (area = kernel_aspace->virtual_map.region_list; area; area = area->aspace_next) {		addr_t areaStart = area->base;		addr_t areaEnd = areaStart + area->size;		if (areaEnd >= end) {			// we are done, the areas are already beyond of what we have to free			lastEnd = end;			break;		}		if (areaStart > lastEnd) {			// this is something we can free			dprintf("free kernel args: get rid of %p - %p\n", (void *)lastEnd, (void *)areaStart);			unmap_and_free_physical_pages(map, lastEnd, areaStart);		}		lastEnd = areaEnd;	}	if (lastEnd < end) {		// we can also get rid of some space at the end of the region		dprintf("free kernel args: also remove %p - %p\n", (void *)lastEnd, (void *)end);		unmap_and_free_physical_pages(map, lastEnd, end);	}	map->ops->unlock(map);}