aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-10-19 19:28:18 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-10-19 19:28:18 +0000
commitfb63feef6fd4bbcfba35fdafd7e6a45aa0d28cd2 (patch)
tree99db920e4ea6834b3c98d18c5e434a9c736c1558 /sys
parente37d2a8c820946f8d4e3d2d9b7b5bc29e20c0a92 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/sys/_lock.h16
-rw-r--r--sys/sys/lock.h17
-rw-r--r--sys/sys/mutex.h10
3 files changed, 20 insertions, 23 deletions
diff --git a/sys/sys/_lock.h b/sys/sys/_lock.h
index 9841f45d565a9..cc035df54ba03 100644
--- a/sys/sys/_lock.h
+++ b/sys/sys/_lock.h
@@ -31,22 +31,6 @@
#ifndef _SYS_LOCK_TYPES_H_
#define _SYS_LOCK_TYPES_H_
-#ifdef _KERNEL
-/*
- * If any of WITNESS, INVARIANTS, or KTR_LOCK KTR tracing has been enabled,
- * then turn on LOCK_DEBUG. When this option is on, extra debugging
- * facilities such as tracking the file and line number of lock operations
- * are enabled. Also, mutex locking operations are not inlined to avoid
- * bloat from all the extra debugging code. We also have to turn on all the
- * calling conventions for this debugging code in modules so that modules can
- * work with both debug and non-debug kernels.
- */
-#if defined(KLD_MODULE) || defined(WITNESS) || defined(INVARIANTS) || defined(INVARIANT_SUPPORT) || (defined(KTR) && (KTR_COMPILE & KTR_LOCK))
-#define LOCK_DEBUG
-#endif
-
-#endif /* _KERNEL */
-
struct lock_object {
struct lock_class *lo_class;
const char *lo_name;
diff --git a/sys/sys/lock.h b/sys/sys/lock.h
index 51fcac3570edf..04b49fac02155 100644
--- a/sys/sys/lock.h
+++ b/sys/sys/lock.h
@@ -124,10 +124,25 @@ struct lock_list_entry {
};
/*
+ * If any of WITNESS, INVARIANTS, or KTR_LOCK KTR tracing has been enabled,
+ * then turn on LOCK_DEBUG. When this option is on, extra debugging
+ * facilities such as tracking the file and line number of lock operations
+ * are enabled. Also, mutex locking operations are not inlined to avoid
+ * bloat from all the extra debugging code. We also have to turn on all the
+ * calling conventions for this debugging code in modules so that modules can
+ * work with both debug and non-debug kernels.
+ */
+#if defined(KLD_MODULE) || defined(WITNESS) || defined(INVARIANTS) || defined(INVARIANT_SUPPORT) || defined(KTR)
+#define LOCK_DEBUG 1
+#else
+#define LOCK_DEBUG 0
+#endif
+
+/*
* In the LOCK_DEBUG case, use the filename and line numbers for debugging
* operations. Otherwise, use default values to avoid the unneeded bloat.
*/
-#ifdef LOCK_DEBUG
+#if LOCK_DEBUG > 0
#define LOCK_FILE __FILE__
#define LOCK_LINE __LINE__
#else
diff --git a/sys/sys/mutex.h b/sys/sys/mutex.h
index 3965d97c3778b..d4c5c37606f95 100644
--- a/sys/sys/mutex.h
+++ b/sys/sys/mutex.h
@@ -34,11 +34,6 @@
#ifndef LOCORE
#include <sys/queue.h>
-
-#ifdef _KERNEL
-#include <sys/ktr.h>
-#endif /* _KERNEL_ */
-
#include <sys/_lock.h>
#include <sys/_mutex.h>
@@ -242,7 +237,10 @@ void _mtx_assert(struct mtx *m, int what, const char *file, int line);
#define mtx_unlock(m) mtx_unlock_flags((m), 0)
#define mtx_unlock_spin(m) mtx_unlock_spin_flags((m), 0)
-#ifdef LOCK_DEBUG
+#ifndef LOCK_DEBUG
+#error LOCK_DEBUG not defined, include <sys/lock.h> before <sys/mutex.h>
+#endif
+#if LOCK_DEBUG > 0
#define mtx_lock_flags(m, opts) \
_mtx_lock_flags((m), (opts), LOCK_FILE, LOCK_LINE)
#define mtx_unlock_flags(m, opts) \