diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/atomic.h | 5 | ||||
-rw-r--r-- | arch/microblaze/atomic.h | 5 | ||||
-rw-r--r-- | arch/mips/atomic.h | 5 | ||||
-rw-r--r-- | arch/powerpc/atomic.h | 5 |
4 files changed, 20 insertions, 0 deletions
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 }; |