xref: /csrg-svn/sys/vm/vm_init.c (revision 45748)
1*45748Smckusick /*
2*45748Smckusick  * Copyright (c) 1985, Avadis Tevanian, Jr., Michael Wayne Young
3*45748Smckusick  * Copyright (c) 1987 Carnegie-Mellon University
4*45748Smckusick  * Copyright (c) 1991 Regents of the University of California.
5*45748Smckusick  * All rights reserved.
6*45748Smckusick  *
7*45748Smckusick  * This code is derived from software contributed to Berkeley by
8*45748Smckusick  * The Mach Operating System project at Carnegie-Mellon University.
9*45748Smckusick  *
10*45748Smckusick  * The CMU software License Agreement specifies the terms and conditions
11*45748Smckusick  * for use and redistribution.
12*45748Smckusick  *
13*45748Smckusick  *	@(#)vm_init.c	7.1 (Berkeley) 12/05/90
14*45748Smckusick  */
15*45748Smckusick 
16*45748Smckusick /*
17*45748Smckusick  *	Initialize the Virtual Memory subsystem.
18*45748Smckusick  */
19*45748Smckusick 
20*45748Smckusick #include "types.h"
21*45748Smckusick #include "../vm/vm_param.h"
22*45748Smckusick #include "lock.h"
23*45748Smckusick #include "../vm/vm_object.h"
24*45748Smckusick #include "../vm/vm_map.h"
25*45748Smckusick #include "../vm/vm_page.h"
26*45748Smckusick #include "../vm/vm_kern.h"
27*45748Smckusick 
28*45748Smckusick /*
29*45748Smckusick  *	vm_init initializes the virtual memory system.
30*45748Smckusick  *	This is done only by the first cpu up.
31*45748Smckusick  *
32*45748Smckusick  *	The start and end address of physical memory is passed in.
33*45748Smckusick  */
34*45748Smckusick 
35*45748Smckusick void vm_mem_init()
36*45748Smckusick {
37*45748Smckusick 	extern vm_offset_t	avail_start, avail_end;
38*45748Smckusick 	extern vm_offset_t	virtual_avail, virtual_end;
39*45748Smckusick 
40*45748Smckusick 	/*
41*45748Smckusick 	 *	Initializes resident memory structures.
42*45748Smckusick 	 *	From here on, all physical memory is accounted for,
43*45748Smckusick 	 *	and we use only virtual addresses.
44*45748Smckusick 	 */
45*45748Smckusick 
46*45748Smckusick 	virtual_avail = vm_page_startup(avail_start, avail_end, virtual_avail);
47*45748Smckusick 	/*
48*45748Smckusick 	 * Initialize other VM packages
49*45748Smckusick 	 */
50*45748Smckusick 	vm_object_init();
51*45748Smckusick 	vm_map_init();
52*45748Smckusick 	kmem_init(virtual_avail, virtual_end);
53*45748Smckusick 	pmap_init(avail_start, avail_end);
54*45748Smckusick 	vm_pager_init();
55*45748Smckusick }
56