From 7568ee4cbf317f8c21fb9b45e059db2a45c81488 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 11 Aug 2013 03:43:25 -0400 Subject: add missing a_or_l to atomic.h for non-x86 archs this is needed for recently committed sigaction code --- arch/arm/atomic.h | 5 +++++ arch/microblaze/atomic.h | 5 +++++ arch/mips/atomic.h | 5 +++++ arch/powerpc/atomic.h | 5 +++++ 4 files changed, 20 insertions(+) (limited to 'arch') diff --git a/arch/arm/atomic.h b/arch/arm/atomic.h index f434a0c6..94efe5a0 100644 --- a/arch/arm/atomic.h +++ b/arch/arm/atomic.h @@ -97,6 +97,11 @@ static inline void a_or(volatile int *p, int v) while (a_cas(p, old, old|v) != old); } +static inline void a_or_l(volatile void *p, long v) +{ + a_or(p, v); +} + static inline void a_and_64(volatile uint64_t *p, uint64_t v) { union { uint64_t v; uint32_t r[2]; } u = { v }; diff --git a/arch/microblaze/atomic.h b/arch/microblaze/atomic.h index ee7aa256..818bcc0d 100644 --- a/arch/microblaze/atomic.h +++ b/arch/microblaze/atomic.h @@ -134,6 +134,11 @@ static inline void a_or(volatile int *p, int v) while (a_cas(p, old, old|v) != old); } +static inline void a_or_l(volatile void *p, long v) +{ + a_or(p, v); +} + static inline void a_and_64(volatile uint64_t *p, uint64_t v) { union { uint64_t v; uint32_t r[2]; } u = { v }; diff --git a/arch/mips/atomic.h b/arch/mips/atomic.h index f3478ef2..69dcdf48 100644 --- a/arch/mips/atomic.h +++ b/arch/mips/atomic.h @@ -182,6 +182,11 @@ static inline void a_or(volatile int *p, int v) : "=&r"(dummy) : "r"(p), "r"(v) : "memory" ); } +static inline void a_or_l(volatile void *p, long v) +{ + a_or(p, v); +} + static inline void a_and_64(volatile uint64_t *p, uint64_t v) { union { uint64_t v; uint32_t r[2]; } u = { v }; diff --git a/arch/powerpc/atomic.h b/arch/powerpc/atomic.h index 4a47064a..d52ee0c6 100644 --- a/arch/powerpc/atomic.h +++ b/arch/powerpc/atomic.h @@ -100,6 +100,11 @@ static inline void a_or(volatile int *p, int v) while (a_cas(p, old, old|v) != old); } +static inline void a_or_l(volatile void *p, long v) +{ + a_or(p, v); +} + static inline void a_and_64(volatile uint64_t *p, uint64_t v) { union { uint64_t v; uint32_t r[2]; } u = { v }; -- cgit v1.2.1