diff --git a/nx/include/switch/arm/atomics.h b/nx/include/switch/arm/atomics.h index a1999104..c6714234 100644 --- a/nx/include/switch/arm/atomics.h +++ b/nx/include/switch/arm/atomics.h @@ -1,6 +1,17 @@ #include "../types.h" -u32 atomicIncrement32(u32* p); -u32 atomicDecrement32(u32* p); -u64 atomicIncrement64(u64* p); -u64 atomicDecrement64(u64* p); +static inline u32 atomicIncrement32(u32* p) { + return __atomic_fetch_add(p, 1, __ATOMIC_SEQ_CST); +} + +static inline u32 atomicDecrement32(u32* p) { + return __atomic_sub_fetch(p, 1, __ATOMIC_SEQ_CST); +} + +static inline u64 atomicIncrement64(u64* p) { + return __atomic_fetch_add(p, 1, __ATOMIC_SEQ_CST); +} + +static inline u64 atomicDecrement64(u64* p) { + return __atomic_sub_fetch(p, 1, __ATOMIC_SEQ_CST); +} diff --git a/nx/source/arm/atomics.c b/nx/source/arm/atomics.c deleted file mode 100644 index c05c863d..00000000 --- a/nx/source/arm/atomics.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "types.h" - -u32 atomicIncrement32(u32* p) { - return __sync_fetch_and_add(p, 1); -} - -u32 atomicDecrement32(u32* p) { - return __sync_sub_and_fetch(p, 1); -} - -u64 atomicIncrement64(u64* p) { - return __sync_fetch_and_add(p, 1); -} - -u64 atomicDecrement64(u64* p) { - return __sync_sub_and_fetch(p, 1); -}