#include <urcu/compiler.h>
#include <urcu/system.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef __SIZEOF_LONG__
#if defined(__x86_64__) || defined(__amd64__)
#define __SIZEOF_LONG__ 8
#define _uatomic_dec(addr) (__uatomic_dec((addr), sizeof(*(addr))))
-#if ((BITS_PER_LONG != 64) && defined(CONFIG_URCU_COMPAT_ARCH))
-extern int __urcu_cas_avail;
-extern int __urcu_cas_init(void);
+#if ((BITS_PER_LONG != 64) && defined(CONFIG_RCU_COMPAT_ARCH))
+extern int __rcu_cas_avail;
+extern int __rcu_cas_init(void);
#define UATOMIC_COMPAT(insn) \
- ((likely(__urcu_cas_avail > 0)) \
+ ((likely(__rcu_cas_avail > 0)) \
? (_uatomic_##insn) \
- : ((unlikely(__urcu_cas_avail < 0) \
- ? ((__urcu_cas_init() > 0) \
+ : ((unlikely(__rcu_cas_avail < 0) \
+ ? ((__rcu_cas_init() > 0) \
? (_uatomic_##insn) \
: (compat_uatomic_##insn)) \
: (compat_uatomic_##insn))))
#define uatomic_inc(addr) UATOMIC_COMPAT(inc(addr))
#define uatomic_dec(addr) UATOMIC_COMPAT(dec(addr))
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _URCU_ARCH_UATOMIC_X86_H */