diff options
author | Matthew Wilcox <matthew@wil.cx> | 2009-01-06 17:40:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-06 18:59:10 -0500 |
commit | ea435467500612636f8f4fb639ff6e76b2496e4b (patch) | |
tree | fdf5cb7ca3834f0a4120fb3cce5a631dd2769f26 /arch/parisc | |
parent | f99ebf0a86de13f77bc4ee349de96db9f2f67f2e (diff) |
atomic_t: unify all arch definitions
The atomic_t type cannot currently be used in some header files because it
would create an include loop with asm/atomic.h. Move the type definition
to linux/types.h to break the loop.
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/include/asm/atomic.h | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h index 57fcc4a5ebb4..edbfe25c5fc1 100644 --- a/arch/parisc/include/asm/atomic.h +++ b/arch/parisc/include/asm/atomic.h | |||
@@ -155,14 +155,11 @@ static inline unsigned long __cmpxchg_local(volatile void *ptr, | |||
155 | #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) | 155 | #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) |
156 | #endif | 156 | #endif |
157 | 157 | ||
158 | /* Note that we need not lock read accesses - aligned word writes/reads | 158 | /* |
159 | * are atomic, so a reader never sees unconsistent values. | 159 | * Note that we need not lock read accesses - aligned word writes/reads |
160 | * | 160 | * are atomic, so a reader never sees inconsistent values. |
161 | * Cache-line alignment would conflict with, for example, linux/module.h | ||
162 | */ | 161 | */ |
163 | 162 | ||
164 | typedef struct { volatile int counter; } atomic_t; | ||
165 | |||
166 | /* It's possible to reduce all atomic operations to either | 163 | /* It's possible to reduce all atomic operations to either |
167 | * __atomic_add_return, atomic_set and atomic_read (the latter | 164 | * __atomic_add_return, atomic_set and atomic_read (the latter |
168 | * is there only for consistency). | 165 | * is there only for consistency). |
@@ -260,8 +257,6 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
260 | 257 | ||
261 | #ifdef CONFIG_64BIT | 258 | #ifdef CONFIG_64BIT |
262 | 259 | ||
263 | typedef struct { volatile s64 counter; } atomic64_t; | ||
264 | |||
265 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) | 260 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) |
266 | 261 | ||
267 | static __inline__ int | 262 | static __inline__ int |