Browse Source

add missing a_or_l to atomic.h for non-x86 archs

this is needed for recently committed sigaction code
Rich Felker 11 years ago
parent
commit
7568ee4cbf
4 changed files with 20 additions and 0 deletions
  1. 5 0
      arch/arm/atomic.h
  2. 5 0
      arch/microblaze/atomic.h
  3. 5 0
      arch/mips/atomic.h
  4. 5 0
      arch/powerpc/atomic.h

+ 5 - 0
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 };

+ 5 - 0
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 };

+ 5 - 0
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 };

+ 5 - 0
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 };