+ &(task_mapping_info.fs_base),
+ &(task_mapping_info.system),
+ &(task_mapping_info.flags), &next);
+
+ {
+ shared_region_mapping_t default_shared_region;
+ default_shared_region =
+ lookup_default_shared_region(
+ ENV_DEFAULT_ROOT,
+ task_mapping_info.system);
+ if(shared_region == default_shared_region) {
+ default_regions = 1;
+ }
+ shared_region_mapping_dealloc(default_shared_region);
+ }
+ /* If we are running on a removable file system we must not */
+ /* be in a set of shared regions or the file system will not */
+ /* be removable. */
+ if(((vp->v_mount != rootvnode->v_mount) && (default_regions))
+ && (lsf_mapping_pool_gauge() < 75)) {
+ /* We don't want to run out of shared memory */
+ /* map entries by starting too many private versions */
+ /* of the shared library structures */
+ int error;
+ if(p->p_flag & P_NOSHLIB) {
+ error = clone_system_shared_regions(FALSE, ENV_DEFAULT_ROOT);
+ } else {
+ error = clone_system_shared_regions(TRUE, ENV_DEFAULT_ROOT);
+ }
+ if (error) {
+ goto lsf_bailout_free_vput;
+ }
+ local_flags = local_flags & ~NEW_LOCAL_SHARED_REGIONS;
+ vm_get_shared_region(current_task(), &shared_region);
+ shared_region_mapping_info(shared_region,
+ &(task_mapping_info.text_region),
+ &(task_mapping_info.text_size),
+ &(task_mapping_info.data_region),
+ &(task_mapping_info.data_size),
+ &(task_mapping_info.region_mappings),
+ &(task_mapping_info.client_base),
+ &(task_mapping_info.alternate_base),
+ &(task_mapping_info.alternate_next),
+ &(task_mapping_info.fs_base),
+ &(task_mapping_info.system),