rem: case B_EXACT_KERNEL_ADDRESS:
context: insert_area(vm_address_space *addressSpace, void **_address,	uint32 addressSpec, addr_t size, vm_region *area){	addr_t searchBase, searchEnd;	status_t status;	switch (addressSpec) {		case B_EXACT_ADDRESS:		case B_EXACT_KERNEL_ADDRESS:			searchBase = (addr_t)*_address;			searchEnd = (addr_t)*_address + size;			break;		case B_BASE_ADDRESS:			searchBase = (addr_t)*_address;			searchEnd = addressSpace->virtual_map.base + (addressSpace->virtual_map.size - 1);			break;		case B_ANY_ADDRESS:		case B_ANY_KERNEL_ADDRESS:		case B_ANY_KERNEL_BLOCK_ADDRESS:			searchBase = addressSpace->virtual_map.base;			searchEnd = addressSpace->virtual_map.base + (addressSpace->virtual_map.size - 1);			break;		default:			return B_BAD_VALUE;	}	status = find_and_insert_region_slot(&addressSpace->virtual_map, searchBase, size,				searchEnd, addressSpec, area);	if (status == B_OK)		// ToDo: do we have to do anything about B_ANY_KERNEL_ADDRESS		//		vs. B_ANY_KERNEL_BLOCK_ADDRESS here?		*_address = (void *)area->base;	return status;}