]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-arm/atomic.h
[ARM] 3438/1: ixp23xx: add pci slave support
[linux-2.6-omap-h63xx.git] / include / asm-arm / atomic.h
index d8ba0a9eb0852b4d9927ddc2c2cd20141fd3d063..3d7283d84405e58b1249a562e4839570170928ec 100644 (file)
@@ -83,7 +83,7 @@ static inline int atomic_sub_return(int i, atomic_t *v)
 
 static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
 {
-       u32 oldval, res;
+       unsigned long oldval, res;
 
        do {
                __asm__ __volatile__("@ atomic_cmpxchg\n"
@@ -175,6 +175,8 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
 
 #endif /* __LINUX_ARM_ARCH__ */
 
+#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
+
 static inline int atomic_add_unless(atomic_t *v, int a, int u)
 {
        int c, old;
@@ -205,5 +207,6 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
 #define smp_mb__before_atomic_inc()    barrier()
 #define smp_mb__after_atomic_inc()     barrier()
 
+#include <asm-generic/atomic.h>
 #endif
 #endif