diff options
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_extern.h | 4 | ||||
-rw-r--r-- | sys/vm/vm_glue.c | 35 | ||||
-rw-r--r-- | sys/vm/vm_init.c | 16 | ||||
-rw-r--r-- | sys/vm/vm_pageout.c | 33 | ||||
-rw-r--r-- | sys/vm/vm_pageout.h | 3 |
5 files changed, 74 insertions, 17 deletions
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index 71c5180..b6c0897 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)vm_extern.h 8.2 (Berkeley) 1/12/94 - * $Id: vm_extern.h,v 1.16 1995/07/10 08:53:16 davidg Exp $ + * $Id: vm_extern.h,v 1.17 1995/07/13 08:48:19 davidg Exp $ */ #ifndef _VM_EXTERN_H_ @@ -91,8 +91,6 @@ void vm_fault_copy_entry __P((vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t void vm_fault_unwire __P((vm_map_t, vm_offset_t, vm_offset_t)); int vm_fault_wire __P((vm_map_t, vm_offset_t, vm_offset_t)); int vm_fork __P((struct proc *, struct proc *, int)); -void vm_init_limits __P((struct proc *)); -void vm_mem_init __P((void)); int vm_mmap __P((vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, caddr_t, vm_offset_t)); vm_offset_t vm_page_alloc_contig __P((vm_offset_t, vm_offset_t, vm_offset_t, vm_offset_t)); void vm_set_page_size __P((void)); diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index cd4feac..b570aa0 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -59,7 +59,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_glue.c,v 1.22 1995/07/10 08:53:20 davidg Exp $ + * $Id: vm_glue.c,v 1.23 1995/07/13 08:48:21 davidg Exp $ */ #include <sys/param.h> @@ -81,6 +81,24 @@ #include <machine/stdarg.h> #include <machine/cpu.h> +/* + * System initialization + * + * Note: proc0 from proc.h + */ + +static void vm_init_limits __P((caddr_t)); +SYSINIT(vm_limits, SI_SUB_VM_CONF, SI_ORDER_FIRST, vm_init_limits, (caddr_t)&proc0) + +/* + * THIS MUST BE THE LAST INITIALIZATION ITEM!!! + * + * Note: run scheduling should be divorced from the vm system. + */ +static void scheduler __P((caddr_t)); +SYSINIT(scheduler, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, scheduler, NULL) + + extern char kstack[]; /* vm_map_t upages_map; */ @@ -264,11 +282,14 @@ vm_fork(p1, p2, isvfork) /* * Set default limits for VM system. * Called for proc 0, and then inherited by all others. + * + * XXX should probably act directly on proc0. */ -void -vm_init_limits(p) - register struct proc *p; +static void +vm_init_limits( udata) +caddr_t udata; { + register struct proc *p = (struct proc *)udata; int rss_limit; /* @@ -341,8 +362,10 @@ faultin(p) * is enough space for them. Of course, if a process waits for a long * time, it will be swapped in anyway. */ -void -scheduler() +/* ARGSUSED*/ +static void +scheduler( udata) +caddr_t udata; /* not used*/ { register struct proc *p; register int pri; diff --git a/sys/vm/vm_init.c b/sys/vm/vm_init.c index 51fcf30..ea41d94 100644 --- a/sys/vm/vm_init.c +++ b/sys/vm/vm_init.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_init.c,v 1.6 1995/03/16 18:17:11 bde Exp $ + * $Id: vm_init.c,v 1.7 1995/07/13 08:48:24 davidg Exp $ */ /* @@ -69,6 +69,7 @@ */ #include <sys/param.h> +#include <sys/kernel.h> #include <sys/systm.h> #include <vm/vm.h> @@ -77,14 +78,23 @@ #include <vm/vm_pager.h> /* + * System initialization + */ + +static void vm_mem_init __P((caddr_t)); +SYSINIT(vm_mem, SI_SUB_VM, SI_ORDER_FIRST, vm_mem_init, NULL) + +/* * vm_init initializes the virtual memory system. * This is done only by the first cpu up. * * The start and end address of physical memory is passed in. */ -void -vm_mem_init() +/* ARGSUSED*/ +static void +vm_mem_init( udata) +caddr_t udata; /* not used*/ { /* * Initializes resident memory structures. From here on, all physical diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 92e5713..e7ba408 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -65,7 +65,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_pageout.c,v 1.52 1995/07/10 08:53:22 davidg Exp $ + * $Id: vm_pageout.c,v 1.53 1995/07/13 08:48:40 davidg Exp $ */ /* @@ -89,6 +89,33 @@ #include <vm/vm_pager.h> #include <vm/swap_pager.h> +/* + * System initialization + */ + +/* the kernel process "vm_pageout"*/ +static void vm_pageout __P((void)); +struct proc *pageproc; + +static struct kproc_desc page_kp = { + "pagedaemon", + vm_pageout, + &pageproc +}; +SYSINIT_KT(pagedaemon, SI_SUB_KTHREAD_PAGE, SI_ORDER_FIRST, kproc_start, (caddr_t)&page_kp) + +/* the kernel process "vm_daemon"*/ +static void vm_daemon __P((void)); +struct proc *vmproc; + +static struct kproc_desc vm_kp = { + "vmdaemon", + vm_daemon, + &vmproc +}; +SYSINIT_KT(vmdaemon, SI_SUB_KTHREAD_VM, SI_ORDER_FIRST, kproc_start, (caddr_t)&vm_kp) + + int vm_pages_needed; /* Event on which pageout daemon sleeps */ int vm_pageout_pages_needed; /* flag saying that the pageout daemon needs pages */ @@ -789,7 +816,7 @@ rescan1: /* * vm_pageout is the high level pageout daemon. */ -void +static void vm_pageout() { (void) spl0(); @@ -853,7 +880,7 @@ vm_pageout() } } -void +static void vm_daemon() { vm_object_t object; diff --git a/sys/vm/vm_pageout.h b/sys/vm/vm_pageout.h index b908497..b1ef37c 100644 --- a/sys/vm/vm_pageout.h +++ b/sys/vm/vm_pageout.h @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_pageout.h,v 1.12 1995/05/30 08:16:20 rgrimes Exp $ + * $Id: vm_pageout.h,v 1.13 1995/07/13 08:48:41 davidg Exp $ */ #ifndef _VM_VM_PAGEOUT_H_ @@ -123,7 +123,6 @@ vm_wait() #ifdef KERNEL -void vm_daemon __P((void)); int vm_pageout_scan __P((void)); void vm_pageout_page __P((vm_page_t, vm_object_t)); void vm_pageout_cluster __P((vm_page_t, vm_object_t)); |