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;
 }
 

Reply via email to