struct vm_map *map; struct vm_map_entry *entry;
vm_map_t	map; vm_map_entry_t	entry;
uvm_map_clip_end(map, entry, end)	struct vm_map *map;	struct vm_map_entry *entry;	vaddr_t	end;{	struct vm_map_entry *	new_entry;	vaddr_t new_adj; /* #bytes we move start forward */	/*	 *	Create a new entry and insert it	 *	AFTER the specified entry	 */	new_entry = uvm_mapent_alloc(map);	uvm_mapent_copy(entry, new_entry); /* entry -> new_entry */	new_entry->start = entry->end = end;	new_adj = end - entry->start;	if (new_entry->object.uvm_obj)		new_entry->offset += new_adj;	if (entry->aref.ar_amap)		amap_splitref(&entry->aref, &new_entry->aref, new_adj);	uvm_map_entry_link(map, entry, new_entry);	if (UVM_ET_ISSUBMAP(entry)) {		/* ... unlikely to happen, but play it safe */	 	uvm_map_reference(new_entry->object.sub_map);	} else {		if (UVM_ET_ISOBJ(entry) &&		    entry->object.uvm_obj->pgops &&		    entry->object.uvm_obj->pgops->pgo_reference)			entry->object.uvm_obj->pgops->pgo_reference(			    entry->object.uvm_obj);	}}