diff options
author | julian <julian@FreeBSD.org> | 1995-08-28 09:19:25 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1995-08-28 09:19:25 +0000 |
commit | ebb726ec45c12268b6b931aa636809cc9cb99a90 (patch) | |
tree | 53b6da073fd58ab81ebf18bb0642954c76b642bd /sys/vm/vm_glue.c | |
parent | 6f51a7615899188fd49e4446341be92684c778de (diff) | |
download | FreeBSD-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.c | 35 |
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; |