Put WITNESS only functions with the rest of the locking primitives.
authormpi <mpi@openbsd.org>
Wed, 14 Feb 2018 08:55:12 +0000 (08:55 +0000)
committermpi <mpi@openbsd.org>
Wed, 14 Feb 2018 08:55:12 +0000 (08:55 +0000)
sys/kern/kern_lock.c
sys/kern/kern_mutex.c [deleted file]

index 03a7bfd..64c5a1f 100644 (file)
@@ -1,6 +1,7 @@
-/*     $OpenBSD: kern_lock.c,v 1.56 2018/02/10 12:59:24 mpi Exp $      */
+/*     $OpenBSD: kern_lock.c,v 1.57 2018/02/14 08:55:12 mpi Exp $      */
 
 /*
+ * Copyright (c) 2017 Visa Hankala
  * Copyright (c) 2014 David Gwynne <dlg@openbsd.org>
  * Copyright (c) 2004 Artur Grabowski <art@openbsd.org>
  *
@@ -350,3 +351,52 @@ __mtx_leave(struct mutex *mtx)
                splx(s);
 }
 #endif /* __USE_MI_MUTEX */
+
+#ifdef WITNESS
+void
+_mtx_init_flags(struct mutex *m, int ipl, const char *name, int flags,
+    struct lock_type *type)
+{
+       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
+
+       lo->lo_flags = MTX_LO_FLAGS(flags);
+       if (name != NULL)
+               lo->lo_name = name;
+       else
+               lo->lo_name = type->lt_name;
+       WITNESS_INIT(lo, type);
+
+       _mtx_init(m, ipl);
+}
+
+void
+_mtx_enter(struct mutex *m, const char *file, int line)
+{
+       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
+
+       WITNESS_CHECKORDER(lo, LOP_EXCLUSIVE | LOP_NEWORDER, file, line, NULL);
+       __mtx_enter(m);
+       WITNESS_LOCK(lo, LOP_EXCLUSIVE, file, line);
+}
+
+int
+_mtx_enter_try(struct mutex *m, const char *file, int line)
+{
+       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
+
+       if (__mtx_enter_try(m)) {
+               WITNESS_LOCK(lo, LOP_EXCLUSIVE, file, line);
+               return 1;
+       }
+       return 0;
+}
+
+void
+_mtx_leave(struct mutex *m, const char *file, int line)
+{
+       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
+
+       WITNESS_UNLOCK(lo, LOP_EXCLUSIVE, file, line);
+       __mtx_leave(m);
+}
+#endif /* WITNESS */
diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c
deleted file mode 100644 (file)
index 6ede70b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*     $OpenBSD: kern_mutex.c,v 1.1 2017/04/20 13:57:30 visa Exp $     */
-
-/*
- * Copyright (c) 2017 Visa Hankala
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mutex.h>
-#include <sys/witness.h>
-
-void
-_mtx_init_flags(struct mutex *m, int ipl, const char *name, int flags,
-    struct lock_type *type)
-{
-       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
-
-       lo->lo_flags = MTX_LO_FLAGS(flags);
-       if (name != NULL)
-               lo->lo_name = name;
-       else
-               lo->lo_name = type->lt_name;
-       WITNESS_INIT(lo, type);
-
-       _mtx_init(m, ipl);
-}
-
-void
-_mtx_enter(struct mutex *m, const char *file, int line)
-{
-       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
-
-       WITNESS_CHECKORDER(lo, LOP_EXCLUSIVE | LOP_NEWORDER, file, line, NULL);
-       __mtx_enter(m);
-       WITNESS_LOCK(lo, LOP_EXCLUSIVE, file, line);
-}
-
-int
-_mtx_enter_try(struct mutex *m, const char *file, int line)
-{
-       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
-
-       if (__mtx_enter_try(m)) {
-               WITNESS_LOCK(lo, LOP_EXCLUSIVE, file, line);
-               return 1;
-       }
-       return 0;
-}
-
-void
-_mtx_leave(struct mutex *m, const char *file, int line)
-{
-       struct lock_object *lo = MUTEX_LOCK_OBJECT(m);
-
-       WITNESS_UNLOCK(lo, LOP_EXCLUSIVE, file, line);
-       __mtx_leave(m);
-}