projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
urcu-pointer: add more type checking
[userspace-rcu.git]
/
urcu-pointer.h
diff --git
a/urcu-pointer.h
b/urcu-pointer.h
index d3718b020e070d95724db18513c022d784a136a0..b10aa13a4ad5c9689f7364476b263531e86e4278 100644
(file)
--- a/
urcu-pointer.h
+++ b/
urcu-pointer.h
@@
-71,24
+71,29
@@
extern void *rcu_dereference_sym(void *p);
extern void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new);
#define rcu_cmpxchg_pointer(p, old, _new) \
({ \
extern void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new);
#define rcu_cmpxchg_pointer(p, old, _new) \
({ \
+ typeof(*p) _________pold = (old); \
+ typeof(*p) _________pnew = (_new); \
typeof(*p) _________p1 = \
typeof(*p) _________p1 = \
- rcu_cmpxchg_pointer_sym((void **)(p), (old), (_new));\
+ rcu_cmpxchg_pointer_sym((void **)(p), _________pold, \
+ _________pnew); \
(_________p1); \
})
extern void *rcu_xchg_pointer_sym(void **p, void *v);
#define rcu_xchg_pointer(p, v) \
({ \
(_________p1); \
})
extern void *rcu_xchg_pointer_sym(void **p, void *v);
#define rcu_xchg_pointer(p, v) \
({ \
+ typeof(*p) _________pv = (v); \
typeof(*p) _________p1 = \
typeof(*p) _________p1 = \
- rcu_xchg_pointer_sym((void **)(p),
(v));
\
+ rcu_xchg_pointer_sym((void **)(p),
_________pv);
\
(_________p1); \
})
extern void *rcu_set_pointer_sym(void **p, void *v);
#define rcu_set_pointer(p, v) \
({ \
(_________p1); \
})
extern void *rcu_set_pointer_sym(void **p, void *v);
#define rcu_set_pointer(p, v) \
({ \
+ typeof(*p) _________pv = (v); \
typeof(*p) _________p1 = \
typeof(*p) _________p1 = \
- rcu_set_pointer_sym((void **)(p),
(v));
\
+ rcu_set_pointer_sym((void **)(p),
_________pv);
\
})
#endif /* !_LGPL_SOURCE */
})
#endif /* !_LGPL_SOURCE */
This page took
0.022528 seconds
and
4
git commands to generate.