|
|
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>
38: #include <kern/zalloc.h>
39: #include <kern/kalloc.h>
40: #include <vm/vm_object.h>
41: #include <vm/vm_map.h>
42: #include <vm/vm_page.h>
43: #include <vm/vm_kern.h>
44: #include <vm/memory_object.h>
45:
46:
47:
48: /*
49: * vm_mem_bootstrap initializes the virtual memory system.
50: * This is done only by the first cpu up.
51: */
52:
53: void vm_mem_bootstrap()
54: {
55: vm_offset_t start, end;
56:
57: /*
58: * Initializes resident memory structures.
59: * From here on, all physical memory is accounted for,
60: * and we use only virtual addresses.
61: */
62:
63: vm_page_bootstrap(&start, &end);
64:
65: /*
66: * Initialize other VM packages
67: */
68:
69: zone_bootstrap();
70: vm_object_bootstrap();
71: vm_map_init();
72: kmem_init(start, end);
73: pmap_init();
74: zone_init();
75: kalloc_init();
76: vm_fault_init();
77: vm_page_module_init();
78: memory_manager_default_init();
79: }
80:
81: void vm_mem_init()
82: {
83: vm_object_init();
84: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.