Module Name: src
Committed By: jmcneill
Date: Sun Nov 27 03:24:00 UTC 2011
Modified Files:
src/sys/kern: kern_lock.c
src/sys/sys: systm.h
Log Message:
add KERNEL_LOCKED_P() macro
To generate a diff of this commit:
cvs rdiff -u -r1.151 -r1.152 src/sys/kern/kern_lock.c
cvs rdiff -u -r1.252 -r1.253 src/sys/sys/systm.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/kern_lock.c
diff -u src/sys/kern/kern_lock.c:1.151 src/sys/kern/kern_lock.c:1.152
--- src/sys/kern/kern_lock.c:1.151 Sun Jul 17 20:54:52 2011
+++ src/sys/kern/kern_lock.c Sun Nov 27 03:24:00 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_lock.c,v 1.151 2011/07/17 20:54:52 joerg Exp $ */
+/* $NetBSD: kern_lock.c,v 1.152 2011/11/27 03:24:00 jmcneill Exp $ */
/*-
* Copyright (c) 2002, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lock.c,v 1.151 2011/07/17 20:54:52 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lock.c,v 1.152 2011/11/27 03:24:00 jmcneill Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -305,3 +305,9 @@ _kernel_unlock(int nlocks, int *countp)
if (countp != NULL)
*countp = olocks;
}
+
+bool
+_kernel_locked_p(void)
+{
+ return __SIMPLELOCK_LOCKED_P(kernel_lock);
+}
Index: src/sys/sys/systm.h
diff -u src/sys/sys/systm.h:1.252 src/sys/sys/systm.h:1.253
--- src/sys/sys/systm.h:1.252 Mon Nov 21 04:36:06 2011
+++ src/sys/sys/systm.h Sun Nov 27 03:24:00 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: systm.h,v 1.252 2011/11/21 04:36:06 christos Exp $ */
+/* $NetBSD: systm.h,v 1.253 2011/11/27 03:24:00 jmcneill Exp $ */
/*-
* Copyright (c) 1982, 1988, 1991, 1993
@@ -489,6 +489,7 @@ void scdebug_ret(register_t, int, const
void kernel_lock_init(void);
void _kernel_lock(int);
void _kernel_unlock(int, int *);
+bool _kernel_locked_p(void);
#ifdef _KERNEL
void kernconfig_lock_init(void);
@@ -504,9 +505,11 @@ do { \
_kernel_lock((count)); \
} while (/* CONSTCOND */ 0)
#define KERNEL_UNLOCK(all, lwp, p) _kernel_unlock((all), (p))
+#define KERNEL_LOCKED_P() _kernel_locked_p()
#else
#define KERNEL_LOCK(count, lwp) do {(void)(count); (void)(lwp);} while (/* CONSTCOND */ 0) /*NOP*/
#define KERNEL_UNLOCK(all, lwp, ptr) do {(void)(all); (void)(lwp); (void)(ptr);} while (/* CONSTCOND */ 0) /*NOP*/
+#define KERNEL_LOCKED_P() do { } while (/* CONSTCOND */ 0) /*NOP*/
#endif
#define KERNEL_UNLOCK_LAST(l) KERNEL_UNLOCK(-1, (l), NULL)