summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_extern.h4
-rw-r--r--sys/vm/vm_glue.c35
-rw-r--r--sys/vm/vm_init.c16
-rw-r--r--sys/vm/vm_pageout.c33
-rw-r--r--sys/vm/vm_pageout.h3
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));
OpenPOWER on IntegriCloud