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)