Make lf stack push return if the stack was empty
[urcu.git] / urcu / rculfstack.h
index 75a580b58fe39e55af2b899ef38010fe66b3db0e..cf00daf26cc65cf09d300dafb91dd73467cf6f42 100644 (file)
@@ -39,19 +39,40 @@ struct cds_lfs_stack_rcu {
 
 #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);
 
 /*
- * Should be called under rcu read lock critical section.
+ * 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.
This page took 0.022972 seconds and 4 git commands to generate.