|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University.
4: * Copyright (c) 1993,1994 The University of Utah and
5: * the Computer Systems Laboratory (CSL).
6: * All rights reserved.
7: *
8: * Permission to use, copy, modify and distribute this software and its
9: * documentation is hereby granted, provided that both the copyright
10: * notice and this permission notice appear in all copies of the
11: * software, derivative works or modified versions, and any portions
12: * thereof, and that both notices appear in supporting documentation.
13: *
14: * CARNEGIE MELLON, THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF
15: * THIS SOFTWARE IN ITS "AS IS" CONDITION, AND DISCLAIM ANY LIABILITY
16: * OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF
17: * THIS SOFTWARE.
18: *
19: * Carnegie Mellon requests users of this software to return to
20: *
21: * Software Distribution Coordinator or [email protected]
22: * School of Computer Science
23: * Carnegie Mellon University
24: * Pittsburgh PA 15213-3890
25: *
26: * any improvements or extensions that they make and grant Carnegie Mellon
27: * the rights to redistribute these changes.
28: */
29: /*
30: * File: vm/vm_init.c
31: * Author: Avadis Tevanian, Jr., Michael Wayne Young
32: * Date: 1985
33: *
34: * Initialize the Virtual Memory subsystem.
35: */
36:
37: #include <mach/machine/vm_types.h>
1.1.1.2 root 38: #include <kern/slab.h>
1.1 root 39: #include <kern/kalloc.h>
1.1.1.2 root 40: #include <vm/vm_fault.h>
1.1 root 41: #include <vm/vm_object.h>
42: #include <vm/vm_map.h>
43: #include <vm/vm_page.h>
44: #include <vm/vm_kern.h>
45: #include <vm/memory_object.h>
1.1.1.2 root 46: #include <vm/memory_object_proxy.h>
1.1 root 47:
48:
49: /*
50: * vm_mem_bootstrap initializes the virtual memory system.
51: * This is done only by the first cpu up.
52: */
53:
1.1.1.3 ! root 54: void vm_mem_bootstrap(void)
1.1 root 55: {
56: vm_offset_t start, end;
57:
58: /*
59: * Initializes resident memory structures.
60: * From here on, all physical memory is accounted for,
61: * and we use only virtual addresses.
62: */
63:
64: vm_page_bootstrap(&start, &end);
65:
66: /*
67: * Initialize other VM packages
68: */
69:
1.1.1.2 root 70: slab_bootstrap();
1.1 root 71: vm_object_bootstrap();
72: vm_map_init();
73: kmem_init(start, end);
74: pmap_init();
1.1.1.2 root 75: slab_init();
1.1 root 76: kalloc_init();
77: vm_fault_init();
78: vm_page_module_init();
79: memory_manager_default_init();
80: }
81:
1.1.1.3 ! root 82: void vm_mem_init(void)
1.1 root 83: {
84: vm_object_init();
1.1.1.2 root 85: memory_object_proxy_init();
1.1 root 86: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.