#ifdef __cplusplus
extern "C" {
-#endif
+#endif
/**
* _rcu_dereference - reads (copy) a RCU-protected pointer to a local variable
* meets the 10-line criterion in LGPL, allowing this function to be
* expanded directly in non-LGPL code.
*/
-#define _rcu_dereference(p) ({ \
+#define _rcu_dereference(p) \
+ __extension__ \
+ ({ \
__typeof__(p) _________p1 = CMM_LOAD_SHARED(p); \
cmm_smp_read_barrier_depends(); \
(_________p1); \
* expanded directly in non-LGPL code.
*/
#define _rcu_cmpxchg_pointer(p, old, _new) \
+ __extension__ \
({ \
__typeof__(*p) _________pold = (old); \
__typeof__(*p) _________pnew = (_new); \
* expanded directly in non-LGPL code.
*/
#define _rcu_xchg_pointer(p, v) \
+ __extension__ \
({ \
__typeof__(*p) _________pv = (v); \
if (!__builtin_constant_p(v) || \
*/
#define _rcu_assign_pointer(p, v) _rcu_set_pointer(&(p), v)
-#ifdef __cplusplus
+#ifdef __cplusplus
}
#endif