xref: /csrg-svn/sys/vm/vm_init.c (revision 48386)
145748Smckusick /*
245748Smckusick  * Copyright (c) 1985, Avadis Tevanian, Jr., Michael Wayne Young
345748Smckusick  * Copyright (c) 1987 Carnegie-Mellon University
445748Smckusick  * Copyright (c) 1991 Regents of the University of California.
545748Smckusick  * All rights reserved.
645748Smckusick  *
745748Smckusick  * This code is derived from software contributed to Berkeley by
845748Smckusick  * The Mach Operating System project at Carnegie-Mellon University.
945748Smckusick  *
1045748Smckusick  * The CMU software License Agreement specifies the terms and conditions
1145748Smckusick  * for use and redistribution.
1245748Smckusick  *
13*48386Skarels  *	@(#)vm_init.c	7.2 (Berkeley) 04/20/91
1445748Smckusick  */
1545748Smckusick 
1645748Smckusick /*
1745748Smckusick  *	Initialize the Virtual Memory subsystem.
1845748Smckusick  */
1945748Smckusick 
20*48386Skarels #include "param.h"
2145748Smckusick 
22*48386Skarels #include "vm.h"
23*48386Skarels #include "vm_page.h"
24*48386Skarels #include "vm_kern.h"
25*48386Skarels 
2645748Smckusick /*
2745748Smckusick  *	vm_init initializes the virtual memory system.
2845748Smckusick  *	This is done only by the first cpu up.
2945748Smckusick  *
3045748Smckusick  *	The start and end address of physical memory is passed in.
3145748Smckusick  */
3245748Smckusick 
3345748Smckusick void vm_mem_init()
3445748Smckusick {
3545748Smckusick 	extern vm_offset_t	avail_start, avail_end;
3645748Smckusick 	extern vm_offset_t	virtual_avail, virtual_end;
3745748Smckusick 
3845748Smckusick 	/*
3945748Smckusick 	 *	Initializes resident memory structures.
4045748Smckusick 	 *	From here on, all physical memory is accounted for,
4145748Smckusick 	 *	and we use only virtual addresses.
4245748Smckusick 	 */
4345748Smckusick 
4445748Smckusick 	virtual_avail = vm_page_startup(avail_start, avail_end, virtual_avail);
4545748Smckusick 	/*
4645748Smckusick 	 * Initialize other VM packages
4745748Smckusick 	 */
4845748Smckusick 	vm_object_init();
49*48386Skarels 	vm_map_startup();
5045748Smckusick 	kmem_init(virtual_avail, virtual_end);
5145748Smckusick 	pmap_init(avail_start, avail_end);
5245748Smckusick 	vm_pager_init();
5345748Smckusick }
54