+#include <mach/shared_memory_server.h>
+#include <vm/vm_shared_memory_server.h>
+
+/* forward declarations */
+static kern_return_t
+shared_file_init(
+ ipc_port_t *shared_text_region_handle,
+ vm_size_t text_region_size,
+ ipc_port_t *shared_data_region_handle,
+ vm_size_t data_region_size,
+ vm_offset_t *shared_file_mapping_array);
+
+static load_struct_t *
+lsf_hash_lookup(
+ queue_head_t *hash_table,
+ void *file_object,
+ int size,
+ boolean_t alternate,
+ shared_region_task_mappings_t sm_info);
+
+static load_struct_t *
+lsf_hash_delete(
+ void *file_object,
+ vm_offset_t base_offset,
+ shared_region_task_mappings_t sm_info);
+
+static void
+lsf_hash_insert(
+ load_struct_t *entry,
+ shared_region_task_mappings_t sm_info);
+
+static kern_return_t
+lsf_load(
+ vm_offset_t mapped_file,
+ vm_size_t mapped_file_size,
+ vm_offset_t *base_address,
+ sf_mapping_t *mappings,
+ int map_cnt,
+ void *file_object,
+ int flags,
+ shared_region_task_mappings_t sm_info);
+
+static void
+lsf_unload(
+ void *file_object,
+ vm_offset_t base_offset,
+ shared_region_task_mappings_t sm_info);
+