X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Frculfstack.h;h=2d1ecceba729524700804f85821a73c03c1d0ba0;hb=d89ec7629b8cafdc12e619cf5f07ceb5b0279275;hp=20ac26c3d2e8a13b8d64ae5e21a09459da9f53ca;hpb=16aa9ee87cf4364921c36025359be01390338d87;p=urcu.git diff --git a/urcu/rculfstack.h b/urcu/rculfstack.h index 20ac26c..2d1ecce 100644 --- a/urcu/rculfstack.h +++ b/urcu/rculfstack.h @@ -27,6 +27,11 @@ extern "C" { #endif +#ifndef CDS_LFS_RCU_DEPRECATED +#define CDS_LFS_RCU_DEPRECATED \ + __attribute__((deprecated("urcu/rculfstack.h is deprecated. Please use urcu/lfstack.h instead."))) +#endif + struct cds_lfs_node_rcu { struct cds_lfs_node_rcu *next; }; @@ -37,25 +42,52 @@ struct cds_lfs_stack_rcu { #ifdef _LGPL_SOURCE -#include +#include + +static inline CDS_LFS_RCU_DEPRECATED +void cds_lfs_node_init_rcu(struct cds_lfs_node_rcu *node) +{ + _cds_lfs_node_init_rcu(node); +} + +static inline +void cds_lfs_init_rcu(struct cds_lfs_stack_rcu *s) +{ + _cds_lfs_init_rcu(s); +} -#define cds_lfs_node_init_rcu _cds_lfs_node_init_rcu -#define cds_lfs_init_rcu _cds_lfs_init_rcu -#define cds_lfs_push_rcu _cds_lfs_push_rcu -#define cds_lfs_pop_rcu _cds_lfs_pop_rcu +static inline CDS_LFS_RCU_DEPRECATED +int cds_lfs_push_rcu(struct cds_lfs_stack_rcu *s, + struct cds_lfs_node_rcu *node) +{ + return _cds_lfs_push_rcu(s, node); +} + +static inline CDS_LFS_RCU_DEPRECATED +struct cds_lfs_node_rcu *cds_lfs_pop_rcu(struct cds_lfs_stack_rcu *s) +{ + return _cds_lfs_pop_rcu(s); +} #else /* !_LGPL_SOURCE */ -extern void cds_lfs_node_init_rcu(struct cds_lfs_node_rcu *node); -extern void cds_lfs_init_rcu(struct cds_lfs_stack_rcu *s); -extern void cds_lfs_push_rcu(struct cds_lfs_stack_rcu *s, struct cds_lfs_node_rcu *node); +extern CDS_LFS_RCU_DEPRECATED +void cds_lfs_node_init_rcu(struct cds_lfs_node_rcu *node); +extern CDS_LFS_RCU_DEPRECATED +void cds_lfs_init_rcu(struct cds_lfs_stack_rcu *s); +extern CDS_LFS_RCU_DEPRECATED +int cds_lfs_push_rcu(struct cds_lfs_stack_rcu *s, + struct cds_lfs_node_rcu *node); /* + * Should be called under rcu read lock critical section. + * * The caller must wait for a grace period to pass before freeing the returned * node or modifying the cds_lfs_node_rcu structure. * Returns NULL if stack is empty. */ -extern struct cds_lfs_node_rcu *cds_lfs_pop_rcu(struct cds_lfs_stack_rcu *s); +extern CDS_LFS_RCU_DEPRECATED +struct cds_lfs_node_rcu *cds_lfs_pop_rcu(struct cds_lfs_stack_rcu *s); #endif /* !_LGPL_SOURCE */