diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2002-12-17 23:11:33 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2002-12-17 23:11:33 +0000 |
commit | 25ea8c8a69576ca14e0d418bcc7d03b82db24db2 (patch) | |
tree | d9af0722d8761b2c04ddf3def6874033dfd44219 /sys/arch/i386 | |
parent | a6dcb6be4019c0f02edd62f13fbb5737a42598aa (diff) |
Make SysV-style shared memory and semaphore limits sysctl'able.
Instead of allocating a static amount of memory for the data
structures via valloc() in allocsys(), allocate things dynamically
using pool(9) when possible and malloc(9) when not. The various
members of struct seminfo and struct shminfo are in kern.seminfo
and kern.shminfo respectively (not all members of kern.seminfo are
changable).
The data structures used still leave something to be desired but
things are not made worse in that respect by this commit.
Diffstat (limited to 'sys/arch/i386')
-rw-r--r-- | sys/arch/i386/i386/machdep.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c index 33300474984..dc913b17665 100644 --- a/sys/arch/i386/i386/machdep.c +++ b/sys/arch/i386/i386/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.216 2002/10/07 18:35:56 mickey Exp $ */ +/* $OpenBSD: machdep.c,v 1.217 2002/12/17 23:11:32 millert Exp $ */ /* $NetBSD: machdep.c,v 1.214 1996/11/10 03:16:17 thorpej Exp $ */ /*- @@ -104,12 +104,6 @@ #ifdef SYSVMSG #include <sys/msg.h> #endif -#ifdef SYSVSEM -#include <sys/sem.h> -#endif -#ifdef SYSVSHM -#include <sys/shm.h> -#endif #ifdef KGDB #include <sys/kgdb.h> @@ -466,18 +460,7 @@ allocsys(v) #define valloc(name, type, num) \ v = (caddr_t)(((name) = (type *)v) + (num)) -#ifdef SYSVSHM - shminfo.shmmax = shmmaxpgs; - shminfo.shmall = shmmaxpgs; - shminfo.shmseg = shmseg; - valloc(shmsegs, struct shmid_ds, shminfo.shmmni); -#endif -#ifdef SYSVSEM - valloc(sema, struct semid_ds, seminfo.semmni); - valloc(sem, struct sem, seminfo.semmns); - /* This is pretty disgusting! */ - valloc(semu, int, (seminfo.semmnu * seminfo.semusz) / sizeof(int)); -#endif + #ifdef SYSVMSG valloc(msgpool, char, msginfo.msgmax); valloc(msgmaps, struct msgmap, msginfo.msgseg); |