12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University.
- * Copyright (c) 1993,1994 The University of Utah and
- * the Computer Systems Laboratory (CSL).
- * All rights reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON, THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF
- * THIS SOFTWARE IN ITS "AS IS" CONDITION, AND DISCLAIM ANY LIABILITY
- * OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF
- * THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
- /*
- * File: vm/vm_init.c
- * Author: Avadis Tevanian, Jr., Michael Wayne Young
- * Date: 1985
- *
- * Initialize the Virtual Memory subsystem.
- */
- #include <mach/machine/vm_types.h>
- #include <kern/slab.h>
- #include <kern/kalloc.h>
- #include <vm/vm_fault.h>
- #include <vm/vm_object.h>
- #include <vm/vm_map.h>
- #include <vm/vm_page.h>
- #include <vm/vm_kern.h>
- #include <vm/memory_object.h>
- #include <vm/memory_object_proxy.h>
- /*
- * vm_mem_bootstrap initializes the virtual memory system.
- * This is done only by the first cpu up.
- */
- void vm_mem_bootstrap(void)
- {
- vm_offset_t start, end;
- /*
- * Initializes resident memory structures.
- * From here on, all physical memory is accounted for,
- * and we use only virtual addresses.
- */
- vm_page_bootstrap(&start, &end);
- /*
- * Initialize other VM packages
- */
- slab_bootstrap();
- vm_object_bootstrap();
- vm_map_init();
- kmem_init(start, end);
- pmap_init();
- slab_init();
- kalloc_init();
- vm_fault_init();
- vm_page_module_init();
- memory_manager_default_init();
- }
- void vm_mem_init(void)
- {
- vm_object_init();
- memory_object_proxy_init();
- vm_page_info_all();
- }
|