+
+ while (next) {
+ /* this should be fleshed out for the general case */
+ /* but this is not necessary for now. Indeed we */
+ /* are handling the com page inside of the */
+ /* shared_region mapping create calls for now for */
+ /* simplicities sake. If more general support is */
+ /* needed the code to manipulate the shared range */
+ /* chain can be pulled out and moved to the callers*/
+ shared_region_mapping_info(next,
+ &(map_info.text_region),
+ &(map_info.text_size),
+ &(map_info.data_region),
+ &(map_info.data_size),
+ &(map_info.region_mappings),
+ &(map_info.client_base),
+ &(map_info.alternate_base),
+ &(map_info.alternate_next),
+ &(map_info.fs_base),
+ &(map_info.system),
+ &(map_info.flags), &next);
+
+ addr = map_info.client_base;
+ vm_map(map, &addr, map_info.text_size,
+ 0, SHARED_LIB_ALIAS,
+ map_info.text_region, 0, FALSE,
+ VM_PROT_READ, VM_PROT_READ, VM_INHERIT_SHARE);
+ }