diff options
author | Sven Gothel <[email protected]> | 2014-06-10 05:30:02 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-06-10 05:30:02 +0200 |
commit | f95bf4457fbc31112fa82dacbc1b7e094b9fd1cf (patch) | |
tree | 965ba5b8e6fc8e6bfe7a981c1dfb1179bb9adcde /common/atomic.c | |
parent | 7297c3214a4c648aaee81a9877da15b88f798197 (diff) | |
parent | c07fb7b45c1e345dbaa439882250de5b2213026f (diff) |
Merge branch 'UPSTREAM' into UPSTREAM_MERGE
Diffstat (limited to 'common/atomic.c')
-rw-r--r-- | common/atomic.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/common/atomic.c b/common/atomic.c new file mode 100644 index 00000000..634587e4 --- /dev/null +++ b/common/atomic.c @@ -0,0 +1,16 @@ + +#include "config.h" + +#include "atomic.h" + + +extern inline void InitRef(volatile RefCount *ptr, uint value); +extern inline uint ReadRef(volatile RefCount *ptr); +extern inline uint IncrementRef(volatile RefCount *ptr); +extern inline uint DecrementRef(volatile RefCount *ptr); +extern inline uint ExchangeRef(volatile RefCount *ptr, uint newval); +extern inline uint CompExchangeRef(volatile RefCount *ptr, uint oldval, uint newval); +extern inline int ExchangeInt(volatile int *ptr, int newval); +extern inline void *ExchangePtr(XchgPtr *ptr, void *newval); +extern inline int CompExchangeInt(volatile int *ptr, int oldval, int newval); +extern inline void *CompExchangePtr(XchgPtr *ptr, void *oldval, void *newval); |