diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2001-10-19 19:28:18 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2001-10-19 19:28:18 +0000 |
| commit | fb63feef6fd4bbcfba35fdafd7e6a45aa0d28cd2 (patch) | |
| tree | 99db920e4ea6834b3c98d18c5e434a9c736c1558 /sys | |
| parent | e37d2a8c820946f8d4e3d2d9b7b5bc29e20c0a92 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/sys/_lock.h | 16 | ||||
| -rw-r--r-- | sys/sys/lock.h | 17 | ||||
| -rw-r--r-- | sys/sys/mutex.h | 10 |
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) \ |
