summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/arch/alpha/include/lock.h3
-rw-r--r--sys/arch/amd64/include/lock.h6
-rw-r--r--sys/arch/hppa/include/lock.h6
-rw-r--r--sys/arch/i386/include/lock.h3
-rw-r--r--sys/arch/m88k/include/lock.h6
-rw-r--r--sys/arch/mips64/include/lock.h3
-rw-r--r--sys/arch/powerpc/include/lock.h3
-rw-r--r--sys/arch/sparc64/include/lock.h6
-rw-r--r--sys/kern/kern_rwlock.c30
-rw-r--r--sys/sys/rwlock.h6
10 files changed, 24 insertions, 48 deletions
diff --git a/sys/arch/alpha/include/lock.h b/sys/arch/alpha/include/lock.h
index 2d24ca142f8..e40761990d2 100644
--- a/sys/arch/alpha/include/lock.h
+++ b/sys/arch/alpha/include/lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lock.h,v 1.7 2014/03/29 18:09:28 guenther Exp $ */
+/* $OpenBSD: lock.h,v 1.8 2015/02/11 00:14:11 dlg Exp $ */
/* $NetBSD: lock.h,v 1.16 2001/12/17 23:34:57 thorpej Exp $ */
/*-
@@ -61,7 +61,6 @@ do { \
} while (0)
#endif /* MULTIPROCESSOR */
-#define rw_cas __cpu_cas
static inline int
__cpu_cas(volatile unsigned long *addr, unsigned long old, unsigned long new)
{
diff --git a/sys/arch/amd64/include/lock.h b/sys/arch/amd64/include/lock.h
index 6fe29ddc75f..40bee59167b 100644
--- a/sys/arch/amd64/include/lock.h
+++ b/sys/arch/amd64/include/lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lock.h,v 1.9 2014/03/29 18:09:28 guenther Exp $ */
+/* $OpenBSD: lock.h,v 1.10 2015/02/11 00:14:11 dlg Exp $ */
/* $NetBSD: lock.h,v 1.1.2.2 2000/05/03 14:40:55 sommerfeld Exp $ */
/*-
@@ -48,8 +48,4 @@
#define __lockbarrier() __asm volatile("": : :"memory")
#define SPINLOCK_SPIN_HOOK __asm volatile("pause": : :"memory");
-#include <machine/atomic.h>
-
-#define rw_cas(p, o, n) (atomic_cas_ulong(p, o, n) != o)
-
#endif /* _MACHINE_LOCK_H_ */
diff --git a/sys/arch/hppa/include/lock.h b/sys/arch/hppa/include/lock.h
index f0766ae614a..cb7e1edae89 100644
--- a/sys/arch/hppa/include/lock.h
+++ b/sys/arch/hppa/include/lock.h
@@ -1,12 +1,8 @@
-/* $OpenBSD: lock.h,v 1.8 2014/09/22 12:12:23 dlg Exp $ */
+/* $OpenBSD: lock.h,v 1.9 2015/02/11 00:14:11 dlg Exp $ */
/* public domain */
#ifndef _MACHINE_LOCK_H_
#define _MACHINE_LOCK_H_
-#include <machine/atomic.h>
-
-#define rw_cas(p, o, n) (atomic_cas_ulong(p, o, n) != o)
-
#endif /* _MACHINE_LOCK_H_ */
diff --git a/sys/arch/i386/include/lock.h b/sys/arch/i386/include/lock.h
index d1d39f704e5..63e616b0e26 100644
--- a/sys/arch/i386/include/lock.h
+++ b/sys/arch/i386/include/lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lock.h,v 1.9 2014/03/29 18:09:29 guenther Exp $ */
+/* $OpenBSD: lock.h,v 1.10 2015/02/11 00:14:11 dlg Exp $ */
/* $NetBSD: lock.h,v 1.1.2.2 2000/05/03 14:40:55 sommerfeld Exp $ */
/*-
@@ -53,7 +53,6 @@
#ifdef _KERNEL
extern int rw_cas_486(volatile unsigned long *, unsigned long, unsigned long);
-#define rw_cas rw_cas_486
#endif
#endif /* _MACHINE_LOCK_H_ */
diff --git a/sys/arch/m88k/include/lock.h b/sys/arch/m88k/include/lock.h
index 2ad1c95d8bc..5b3e70745ef 100644
--- a/sys/arch/m88k/include/lock.h
+++ b/sys/arch/m88k/include/lock.h
@@ -1,6 +1,6 @@
#ifndef _M88K_LOCK_H_
#define _M88K_LOCK_H_
-/* $OpenBSD: lock.h,v 1.10 2014/07/15 16:28:11 miod Exp $ */
+/* $OpenBSD: lock.h,v 1.11 2015/02/11 00:14:11 dlg Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat.
@@ -74,8 +74,4 @@ __cpu_simple_unlock(__cpu_simple_lock_t *l)
*l = __SIMPLELOCK_UNLOCKED;
}
-#if defined(_KERNEL) && defined(MULTIPROCESSOR)
-#define rw_cas(p, o, n) (atomic_cas_ulong(p, o, n) != o)
-#endif
-
#endif /* _M88K_LOCK_H_ */
diff --git a/sys/arch/mips64/include/lock.h b/sys/arch/mips64/include/lock.h
index c19cd7362c5..ee927014ad7 100644
--- a/sys/arch/mips64/include/lock.h
+++ b/sys/arch/mips64/include/lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lock.h,v 1.6 2014/09/30 06:51:58 jmatthew Exp $ */
+/* $OpenBSD: lock.h,v 1.7 2015/02/11 00:14:11 dlg Exp $ */
/* public domain */
@@ -7,7 +7,6 @@
#include <sys/atomic.h>
-#define rw_cas __cpu_cas
static __inline int
__cpu_cas(volatile unsigned long *addr, unsigned long old, unsigned long new)
{
diff --git a/sys/arch/powerpc/include/lock.h b/sys/arch/powerpc/include/lock.h
index 18f9bf6d88b..757cdedd343 100644
--- a/sys/arch/powerpc/include/lock.h
+++ b/sys/arch/powerpc/include/lock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lock.h,v 1.4 2013/05/21 20:05:30 tedu Exp $ */
+/* $OpenBSD: lock.h,v 1.5 2015/02/11 00:14:11 dlg Exp $ */
/* $NetBSD: lock.h,v 1.8 2005/12/28 19:09:29 perry Exp $ */
/*-
@@ -37,7 +37,6 @@
#ifndef _POWERPC_LOCK_H_
#define _POWERPC_LOCK_H_
-#define rw_cas __cpu_cas
static __inline int
__cpu_cas(volatile unsigned long *addr, unsigned long old, unsigned long new)
{
diff --git a/sys/arch/sparc64/include/lock.h b/sys/arch/sparc64/include/lock.h
index ac39aefdfa5..a34bb3d7be3 100644
--- a/sys/arch/sparc64/include/lock.h
+++ b/sys/arch/sparc64/include/lock.h
@@ -1,12 +1,8 @@
-/* $OpenBSD: lock.h,v 1.9 2014/01/30 00:51:13 dlg Exp $ */
+/* $OpenBSD: lock.h,v 1.10 2015/02/11 00:14:11 dlg Exp $ */
/* public domain */
#ifndef _MACHINE_LOCK_H_
#define _MACHINE_LOCK_H_
-#include <sys/atomic.h>
-
-#define rw_cas(p, o, n) (atomic_cas_ulong(p, o, n) != o)
-
#endif /* _MACHINE_LOCK_H_ */
diff --git a/sys/kern/kern_rwlock.c b/sys/kern/kern_rwlock.c
index f50cf65a033..3ad22be632a 100644
--- a/sys/kern/kern_rwlock.c
+++ b/sys/kern/kern_rwlock.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_rwlock.c,v 1.24 2015/02/10 10:04:27 dlg Exp $ */
+/* $OpenBSD: kern_rwlock.c,v 1.25 2015/02/11 00:14:11 dlg Exp $ */
/*
* Copyright (c) 2002, 2003 Artur Grabowski <art@openbsd.org>
@@ -24,11 +24,23 @@
#include <sys/limits.h>
#include <sys/atomic.h>
-#include <machine/lock.h>
-
/* XXX - temporary measure until proc0 is properly aligned */
#define RW_PROC(p) (((long)p) & ~RWLOCK_MASK)
+#ifdef MULTIPROCESSOR
+#define rw_cas(p, o, n) (atomic_cas_ulong(p, o, n) != o)
+#else
+static inline int
+rw_cas(volatile unsigned long *p, unsigned long o, unsigned long n)
+{
+ if (*p != o)
+ return (1);
+ *p = n;
+
+ return (0);
+}
+#endif
+
/*
* Magic wand for lock operations. Every operation checks if certain
* flags are set and if they aren't, it increments the lock with some
@@ -124,18 +136,6 @@ rw_exit_write(struct rwlock *rwl)
rw_exit(rwl);
}
-#ifndef rw_cas
-int
-rw_cas(volatile unsigned long *p, unsigned long o, unsigned long n)
-{
- if (*p != o)
- return (1);
- *p = n;
-
- return (0);
-}
-#endif
-
#ifdef DIAGNOSTIC
/*
* Put the diagnostic functions here to keep the main code free
diff --git a/sys/sys/rwlock.h b/sys/sys/rwlock.h
index 594463ea0f3..10db90ae94f 100644
--- a/sys/sys/rwlock.h
+++ b/sys/sys/rwlock.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: rwlock.h,v 1.17 2015/02/10 10:04:27 dlg Exp $ */
+/* $OpenBSD: rwlock.h,v 1.18 2015/02/11 00:14:11 dlg Exp $ */
/*
* Copyright (c) 2002 Artur Grabowski <art@openbsd.org>
*
@@ -110,10 +110,6 @@ int rw_status(struct rwlock *);
*/
#define RW_WRITE_OTHER 0x0100UL
-#ifndef rw_cas
-int rw_cas(volatile unsigned long *, unsigned long, unsigned long);
-#endif
-
/* recursive rwlocks; */
struct rrwlock {
struct rwlock rrwl_lock;