summaryrefslogtreecommitdiff
path: root/config/cpu/generic/atomicity.h
diff options
context:
space:
mode:
Diffstat (limited to 'config/cpu/generic/atomicity.h')
-rw-r--r--config/cpu/generic/atomicity.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/config/cpu/generic/atomicity.h b/config/cpu/generic/atomicity.h
index 655cc14..0b25100 100644
--- a/config/cpu/generic/atomicity.h
+++ b/config/cpu/generic/atomicity.h
@@ -20,24 +20,20 @@
#ifndef _ATOMICITY_H
#define _ATOMICITY_H 1
-#warning "stub atomicity functions are not atomic on this platform"
-
typedef int _Atomic_word;
static inline _Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* mem, int val)
{
- int result = *mem;
- *mem += val;
- return result;
+ return __sync_fetch_and_add(mem, val);
}
static inline void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* mem, int val)
{
- *mem += val;
+ __sync_add_and_fetch(mem, val);
}
#endif /* atomicity.h */