-#define rcu_set_pointer(p, v) \
- rcu_set_pointer_sym((void **)(p), (v))
-
-extern void *rcu_publish_content_sym(void **p, void *v);
-#define rcu_publish_content(p, v) \
- rcu_publish_content_sym((void **)(p), (v))
-
-extern void *rcu_assign_pointer_sym(void **p, void *v);
+#define rcu_set_pointer(p, v) \
+ ({ \
+ typeof(*(p)) _________pv = (v); \
+ typeof(*(p)) _________p1 = URCU_FORCE_CAST(typeof(*(p)), \
+ rcu_set_pointer_sym(URCU_FORCE_CAST(void **, p), \
+ _________pv)); \
+ (_________p1); \
+ })