summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_glue.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1995-08-28 09:19:25 +0000
committerjulian <julian@FreeBSD.org>1995-08-28 09:19:25 +0000
commitebb726ec45c12268b6b931aa636809cc9cb99a90 (patch)
tree53b6da073fd58ab81ebf18bb0642954c76b642bd /sys/vm/vm_glue.c
parent6f51a7615899188fd49e4446341be92684c778de (diff)
downloadFreeBSD-src-ebb726ec45c12268b6b931aa636809cc9cb99a90.zip
FreeBSD-src-ebb726ec45c12268b6b931aa636809cc9cb99a90.tar.gz
Reviewed by: julian with quick glances by bruce and others
Submitted by: terry (terry lambert) This is a composite of 3 patch sets submitted by terry. they are: New low-level init code that supports loadbal modules better some cleanups in the namei code to help terry in 16-bit character support some changes to the mount-root code to make it a little more modular.. NOTE: mounting root off cdrom or NFS MIGHT be broken as I haven't been able to test those cases.. certainly mounting root of disk still works just fine.. mfs should work but is untested. (tomorrows task) The low level init stuff includes a total rewrite of init_main.c to make it possible for new modules to have an init phase by simply adding an entry to a TEXT_SET (or is it DATA_SET) list. thus a new module can be added to the kernel without editing any other files other than the 'files' file.
Diffstat (limited to 'sys/vm/vm_glue.c')
-rw-r--r--sys/vm/vm_glue.c35
1 files changed, 29 insertions, 6 deletions
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;
OpenPOWER on IntegriCloud