diff options
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/sysctl/sysctl.8 | 24 | ||||
-rw-r--r-- | sbin/sysctl/sysctl.c | 74 |
2 files changed, 93 insertions, 5 deletions
diff --git a/sbin/sysctl/sysctl.8 b/sbin/sysctl/sysctl.8 index 912817eb280..a10afeead75 100644 --- a/sbin/sysctl/sysctl.8 +++ b/sbin/sysctl/sysctl.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sysctl.8,v 1.91 2002/11/25 03:04:48 wcobb Exp $ +.\" $OpenBSD: sysctl.8,v 1.92 2002/12/17 23:11:32 millert Exp $ .\" $NetBSD: sysctl.8,v 1.4 1995/09/30 07:12:49 thorpej Exp $ .\" .\" Copyright (c) 1993 @@ -123,6 +123,7 @@ privilege can change the value. .It kern.nchstats struct no .It kern.forkstat struct no .It kern.somaxconn integer yes +.It kern.somaxconn integer yes .It kern.sominconn integer yes .It kern.usermount integer yes .It kern.random struct no @@ -153,6 +154,20 @@ privilege can change the value. .It kern.ttycount integer no .It kern.numvnodes integer no .It kern.mbstat struct no +.It kern.seminfo.semmni integer yes +.It kern.seminfo.semmns integer yes +.It kern.seminfo.semmnu integer yes +.It kern.seminfo.semmsl integer yes +.It kern.seminfo.semopm integer yes +.It kern.seminfo.semume integer no +.It kern.seminfo.semusz integer no +.It kern.seminfo.semvmx integer no +.It kern.seminfo.semaem integer no +.It kern.shminfo.shmmax integer yes +.It kern.shminfo.shmmin integer yes +.It kern.shminfo.shmmni integer yes +.It kern.shminfo.shmseg integer yes +.It kern.shminfo.shmall integer yes .It vm.loadavg struct no .It vm.psstrings struct no .It vm.swapencrypt.enable integer yes @@ -397,6 +412,13 @@ See and .Xr nfsd 8 for futher discussion. +.Pp +To set the amount of shared memory available in the system and +the maximum number of shared memory segments: +.Bd -literal noffset indent +# sysctl -w kern.shminfo.shmmax=33554432 +# sysctl -w kern.shminfo.shmseg=32 +.Ed .Sh FILES .Bl -tag -width <ufs/ffs/ffs_extern.h> -compact .It Pa <sys/sysctl.h> diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index 89d1c4d2e40..114c7d1d21c 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sysctl.c,v 1.84 2002/07/06 19:14:20 nordin Exp $ */ +/* $OpenBSD: sysctl.c,v 1.85 2002/12/17 23:11:32 millert Exp $ */ /* $NetBSD: sysctl.c,v 1.9 1995/09/30 07:12:50 thorpej Exp $ */ /* @@ -35,16 +35,16 @@ */ #ifndef lint -static char copyright[] = +static const char copyright[] = "@(#) Copyright (c) 1993\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint #if 0 -static char sccsid[] = "@(#)sysctl.c 8.5 (Berkeley) 5/9/95"; +static const char sccsid[] = "@(#)sysctl.c 8.5 (Berkeley) 5/9/95"; #else -static char *rcsid = "$OpenBSD: sysctl.c,v 1.84 2002/07/06 19:14:20 nordin Exp $"; +static char *rcsid = "$OpenBSD: sysctl.c,v 1.85 2002/12/17 23:11:32 millert Exp $"; #endif #endif /* not lint */ @@ -52,6 +52,8 @@ static char *rcsid = "$OpenBSD: sysctl.c,v 1.84 2002/07/06 19:14:20 nordin Exp $ #include <sys/gmon.h> #include <sys/mount.h> #include <sys/stat.h> +#include <sys/sem.h> +#include <sys/shm.h> #include <sys/sysctl.h> #include <sys/socket.h> #include <sys/malloc.h> @@ -128,6 +130,8 @@ struct ctlname kernmallocname[] = CTL_KERN_MALLOC_NAMES; struct ctlname forkstatname[] = CTL_KERN_FORKSTAT_NAMES; struct ctlname nchstatsname[] = CTL_KERN_NCHSTATS_NAMES; struct ctlname ttyname[] = CTL_KERN_TTY_NAMES; +struct ctlname semname[] = CTL_KERN_SEMINFO_NAMES; +struct ctlname shmname[] = CTL_KERN_SHMINFO_NAMES; struct ctlname *vfsname; #ifdef CTL_MACHDEP_NAMES struct ctlname machdepname[] = CTL_MACHDEP_NAMES; @@ -199,6 +203,8 @@ int sysctl_forkstat(char *, char **, int *, int, int *); int sysctl_tty(char *, char **, int *, int, int *); int sysctl_nchstats(char *, char **, int *, int, int *); int sysctl_malloc(char *, char **, int *, int, int *); +int sysctl_seminfo(char *, char **, int *, int, int *); +int sysctl_shminfo(char *, char **, int *, int, int *); #ifdef CPU_CHIPSET int sysctl_chipset(char *, char **, int *, int, int *); #endif @@ -403,6 +409,16 @@ parse(char *string, int flags) special |= LONGARRAY; lal = CPUSTATES; break; + case KERN_SEMINFO: + len = sysctl_seminfo(string, &bufp, mib, flags, &type); + if (len < 0) + return; + break; + case KERN_SHMINFO: + len = sysctl_shminfo(string, &bufp, mib, flags, &type); + if (len < 0) + return; + break; } break; @@ -1319,6 +1335,8 @@ struct list kernmalloclist = { kernmallocname, KERN_MALLOC_MAXID }; struct list forkstatlist = { forkstatname, KERN_FORKSTAT_MAXID }; struct list nchstatslist = { nchstatsname, KERN_NCHSTATS_MAXID }; struct list ttylist = { ttyname, KERN_TTY_MAXID }; +struct list semlist = { semname, KERN_SEMINFO_MAXID }; +struct list shmlist = { shmname, KERN_SHMINFO_MAXID }; /* * handle vfs namei cache statistics @@ -1785,6 +1803,54 @@ sysctl_ipx(char *string, char **bufpp, int mib[], int flags, int *typep) } /* + * Handle SysV semaphore info requests + */ +int +sysctl_seminfo(string, bufpp, mib, flags, typep) + char *string; + char **bufpp; + int mib[]; + int flags; + int *typep; +{ + int indx; + + if (*bufpp == NULL) { + listall(string, &semlist); + return(-1); + } + if ((indx = findname(string, "third", bufpp, &semlist)) == -1) + return(-1); + mib[2] = indx; + *typep = CTLTYPE_INT; + return(3); +} + +/* + * Handle SysV shared memory info requests + */ +int +sysctl_shminfo(string, bufpp, mib, flags, typep) + char *string; + char **bufpp; + int mib[]; + int flags; + int *typep; +{ + int indx; + + if (*bufpp == NULL) { + listall(string, &shmlist); + return(-1); + } + if ((indx = findname(string, "third", bufpp, &shmlist)) == -1) + return(-1); + mib[2] = indx; + *typep = CTLTYPE_INT; + return(3); +} + +/* * Scan a list of names searching for a particular name. */ int |