Fixes for atomic operations when building with MSVC
This commit is contained in:
parent
4e60462881
commit
18d08ede22
@ -34,6 +34,11 @@
|
|||||||
#if defined (__APPLE__)
|
#if defined (__APPLE__)
|
||||||
# include <libkern/OSAtomic.h>
|
# include <libkern/OSAtomic.h>
|
||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
|
# define NOGDI
|
||||||
|
# ifndef NOMINMAX
|
||||||
|
# define NOMINMAX
|
||||||
|
# endif
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#elif defined(__arm__)
|
#elif defined(__arm__)
|
||||||
/* Attempt to fix compilation error on Debian armel kernel.
|
/* Attempt to fix compilation error on Debian armel kernel.
|
||||||
@ -97,13 +102,13 @@ atomic_cas_uint64(uint64_t *v, uint64_t old, uint64_t _new)
|
|||||||
ATOMIC_INLINE uint64_t
|
ATOMIC_INLINE uint64_t
|
||||||
atomic_add_uint64(uint64_t *p, uint64_t x)
|
atomic_add_uint64(uint64_t *p, uint64_t x)
|
||||||
{
|
{
|
||||||
return InterlockedExchangeAdd64(p, x);
|
return InterlockedExchangeAdd64((int64_t *)p, (int64_t)x);
|
||||||
}
|
}
|
||||||
|
|
||||||
ATOMIC_INLINE uint64_t
|
ATOMIC_INLINE uint64_t
|
||||||
atomic_sub_uint64(uint64_t *p, uint64_t x)
|
atomic_sub_uint64(uint64_t *p, uint64_t x)
|
||||||
{
|
{
|
||||||
return InterlockedExchangeAdd64(p, -((int64_t)x));
|
return InterlockedExchangeAdd64((int64_t *)p, -((int64_t)x));
|
||||||
}
|
}
|
||||||
|
|
||||||
ATOMIC_INLINE uint64_t
|
ATOMIC_INLINE uint64_t
|
||||||
|
Loading…
Reference in New Issue
Block a user