Make lf stack push return if the stack was empty
[urcu.git] / urcu / rculfstack.h
index 20ac26c3d2e8a13b8d64ae5e21a09459da9f53ca..cf00daf26cc65cf09d300dafb91dd73467cf6f42 100644 (file)
@@ -37,20 +37,43 @@ struct cds_lfs_stack_rcu {
 
 #ifdef _LGPL_SOURCE
 
-#include <urcu/rculfstack-static.h>
+#include <urcu/static/rculfstack.h>
 
-#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
+#define cds_lfs_node_init_rcu_qsbr     _cds_lfs_node_init_rcu
+#define cds_lfs_init_rcu_qsbr          _cds_lfs_init_rcu
+#define cds_lfs_push_rcu_qsbr          _cds_lfs_push_rcu
+#define cds_lfs_pop_rcu_qsbr           _cds_lfs_pop_rcu
+
+#define cds_lfs_node_init_rcu_bp       _cds_lfs_node_init_rcu
+#define cds_lfs_init_rcu_bp            _cds_lfs_init_rcu
+#define cds_lfs_push_rcu_bp            _cds_lfs_push_rcu
+#define cds_lfs_pop_rcu_bp             _cds_lfs_pop_rcu
+
+#define cds_lfs_node_init_rcu_memb     _cds_lfs_node_init_rcu
+#define cds_lfs_init_rcu_memb          _cds_lfs_init_rcu
+#define cds_lfs_push_rcu_memb          _cds_lfs_push_rcu
+#define cds_lfs_pop_rcu_memb           _cds_lfs_pop_rcu
+
+#define cds_lfs_node_init_rcu_mb       _cds_lfs_node_init_rcu
+#define cds_lfs_init_rcu_mb            _cds_lfs_init_rcu
+#define cds_lfs_push_rcu_mb            _cds_lfs_push_rcu
+#define cds_lfs_pop_rcu_mb             _cds_lfs_pop_rcu
+
+#define cds_lfs_node_init_rcu_sig      _cds_lfs_node_init_rcu
+#define cds_lfs_init_rcu_sig           _cds_lfs_init_rcu
+#define cds_lfs_push_rcu_sig           _cds_lfs_push_rcu
+#define cds_lfs_pop_rcu_sig            _cds_lfs_pop_rcu
 
 #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 int cds_lfs_push_rcu(struct cds_lfs_stack_rcu *s,
+                       struct cds_lfs_node_rcu *node);
 
 /*
+ * Acts as a RCU reader.
+ *
  * 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.
This page took 0.024565 seconds and 4 git commands to generate.