This function acquires a lock on map by calling vm_map_lock(9), and holds it until the function returns.
The search for a free region is defined to be first-fit, from the address addr onwards.
The vm_map_find function returns KERN_SUCCESS if space for the mapping could be found and the mapping was successfully created. If space could not be found in the map, KERN_NO_SPACE will be returned. If the discovered range turned out to be bogus, KERN_INVALID_ADDRESS will be returned.
vm_map(9), vm_map_findspace(9), vm_map_insert(9), vm_map_lock(9)