Module Name: src Committed By: pgoyette Date: Mon Nov 9 01:21:18 UTC 2015
Modified Files: src/sys/conf: param.c src/sys/kern: init_sysctl.c uipc_sem.c Log Message: Whether or not the semaphore code is loaded as a module or built-in, its sysctl data belongs with the module code. Move it from kern/init_sysctl.c to kern/uipc_sem.c While here, add a new sysctl variable kern.posix.semcnt (current count of semaphores) to complement the existing kern.posix.semmax (maximum number of semaphores). To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/sys/conf/param.c cvs rdiff -u -r1.209 -r1.210 src/sys/kern/init_sysctl.c cvs rdiff -u -r1.42 -r1.43 src/sys/kern/uipc_sem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/conf/param.c diff -u src/sys/conf/param.c:1.66 src/sys/conf/param.c:1.67 --- src/sys/conf/param.c:1.66 Mon Aug 24 22:50:33 2015 +++ src/sys/conf/param.c Mon Nov 9 01:21:18 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: param.c,v 1.66 2015/08/24 22:50:33 pooka Exp $ */ +/* $NetBSD: param.c,v 1.67 2015/11/09 01:21:18 pgoyette Exp $ */ /* * Copyright (c) 1980, 1986, 1989 Regents of the University of California. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: param.c,v 1.66 2015/08/24 22:50:33 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: param.c,v 1.67 2015/11/09 01:21:18 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_hz.h" @@ -59,7 +59,6 @@ __KERNEL_RCSID(0, "$NetBSD: param.c,v 1. #include <ufs/ufs/quota.h> #include <sys/kernel.h> #include <sys/utsname.h> -#include <sys/ksem.h> #include <sys/lwp.h> #ifdef SYSVSHM #include <machine/vmparam.h> @@ -218,8 +217,3 @@ struct msginfo msginfo = { */ const int msize = MSIZE; const int mclbytes = MCLBYTES; - -/* - * Values in support of POSIX semaphores. - */ -int ksem_max = KSEM_MAX; Index: src/sys/kern/init_sysctl.c diff -u src/sys/kern/init_sysctl.c:1.209 src/sys/kern/init_sysctl.c:1.210 --- src/sys/kern/init_sysctl.c:1.209 Tue Aug 25 14:52:31 2015 +++ src/sys/kern/init_sysctl.c Mon Nov 9 01:21:18 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: init_sysctl.c,v 1.209 2015/08/25 14:52:31 pooka Exp $ */ +/* $NetBSD: init_sysctl.c,v 1.210 2015/11/09 01:21:18 pgoyette Exp $ */ /*- * Copyright (c) 2003, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: init_sysctl.c,v 1.209 2015/08/25 14:52:31 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: init_sysctl.c,v 1.210 2015/11/09 01:21:18 pgoyette Exp $"); #include "opt_sysv.h" #include "opt_compat_netbsd.h" @@ -64,7 +64,6 @@ __KERNEL_RCSID(0, "$NetBSD: init_sysctl. #include <sys/stat.h> #include <sys/kauth.h> #include <sys/ktrace.h> -#include <sys/ksem.h> #include <sys/cpu.h> @@ -591,20 +590,6 @@ SYSCTL_SETUP(sysctl_kern_setup, "sysctl SYSCTL_DESCR("Information from build environment"), NULL, 0, __UNCONST(buildinfo), 0, CTL_KERN, CTL_CREATE, CTL_EOL); - - /* kern.posix. */ - sysctl_createv(clog, 0, NULL, &rnode, - CTLFLAG_PERMANENT, - CTLTYPE_NODE, "posix", - SYSCTL_DESCR("POSIX options"), - NULL, 0, NULL, 0, - CTL_KERN, CTL_CREATE, CTL_EOL); - sysctl_createv(clog, 0, &rnode, NULL, - CTLFLAG_PERMANENT | CTLFLAG_READWRITE, - CTLTYPE_INT, "semmax", - SYSCTL_DESCR("Maximal number of semaphores"), - NULL, 0, &ksem_max, 0, - CTL_CREATE, CTL_EOL); } SYSCTL_SETUP(sysctl_hw_misc_setup, "sysctl hw subtree misc setup") Index: src/sys/kern/uipc_sem.c diff -u src/sys/kern/uipc_sem.c:1.42 src/sys/kern/uipc_sem.c:1.43 --- src/sys/kern/uipc_sem.c:1.42 Fri Sep 5 09:20:59 2014 +++ src/sys/kern/uipc_sem.c Mon Nov 9 01:21:18 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_sem.c,v 1.42 2014/09/05 09:20:59 matt Exp $ */ +/* $NetBSD: uipc_sem.c,v 1.43 2015/11/09 01:21:18 pgoyette Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_sem.c,v 1.42 2014/09/05 09:20:59 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_sem.c,v 1.43 2015/11/09 01:21:18 pgoyette Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -80,6 +80,7 @@ __KERNEL_RCSID(0, "$NetBSD: uipc_sem.c,v #include <sys/syscall.h> #include <sys/syscallargs.h> #include <sys/syscallvar.h> +#include <sys/sysctl.h> MODULE(MODULE_CLASS_MISC, ksem, NULL); @@ -129,6 +130,9 @@ static const struct syscall_package ksem { 0, 0, NULL }, }; +struct sysctllog *ksem_clog; +int ksem_max; + static int ksem_listener_cb(kauth_cred_t cred, kauth_action_t action, void *cookie, void *arg0, void *arg1, void *arg2, void *arg3) @@ -154,6 +158,7 @@ static int ksem_sysinit(void) { int error; + const struct sysctlnode *rnode; mutex_init(&ksem_lock, MUTEX_DEFAULT, IPL_NONE); LIST_INIT(&ksem_head); @@ -168,6 +173,30 @@ ksem_sysinit(void) ksem_listener = kauth_listen_scope(KAUTH_SCOPE_SYSTEM, ksem_listener_cb, NULL); + /* Define module-specific sysctl tree */ + + ksem_max = KSEM_MAX; + ksem_clog = NULL; + + sysctl_createv(&ksem_clog, 0, NULL, &rnode, + CTLFLAG_PERMANENT, + CTLTYPE_NODE, "posix", + SYSCTL_DESCR("POSIX options"), + NULL, 0, NULL, 0, + CTL_KERN, CTL_CREATE, CTL_EOL); + sysctl_createv(&ksem_clog, 0, &rnode, NULL, + CTLFLAG_PERMANENT | CTLFLAG_READWRITE, + CTLTYPE_INT, "semmax", + SYSCTL_DESCR("Maximal number of semaphores"), + NULL, 0, &ksem_max, 0, + CTL_CREATE, CTL_EOL); + sysctl_createv(&ksem_clog, 0, &rnode, NULL, + CTLFLAG_PERMANENT | CTLFLAG_READWRITE, + CTLTYPE_INT, "semcnt", + SYSCTL_DESCR("Current number of semaphores"), + NULL, 0, &nsems, 0, + CTL_CREATE, CTL_EOL); + return error; } @@ -193,6 +222,7 @@ ksem_sysfini(bool interface) } kauth_unlisten_scope(ksem_listener); mutex_destroy(&ksem_lock); + sysctl_teardown(&ksem_clog); return 0; }