CDS API: removal of rcu_read lock/unlock dep, removal of call_rcu argument from init
[urcu.git] / urcu / rculfqueue.h
index 757d133028357265ac980f30cecee5124cbff2e4..1582694e92abbcfc5bfc8104f2016fb480f41aff 100644 (file)
@@ -34,31 +34,51 @@ struct cds_lfq_queue_rcu;
 
 struct cds_lfq_node_rcu {
        struct cds_lfq_node_rcu *next;
+       int dummy;
 };
 
 struct cds_lfq_queue_rcu {
-       struct cds_lfq_node_rcu *head;
-       struct cds_lfq_node_rcu *tail;
-       void (*queue_call_rcu)(struct rcu_head *head,
-               void (*func)(struct rcu_head *head));
+       struct cds_lfq_node_rcu *head, *tail;
 };
 
 #ifdef _LGPL_SOURCE
 
 #include <urcu/static/rculfqueue.h>
 
-#define cds_lfq_node_init_rcu          _cds_lfq_node_init_rcu
-#define cds_lfq_init_rcu               _cds_lfq_init_rcu
-#define cds_lfq_destroy_rcu            _cds_lfq_destroy_rcu
-#define cds_lfq_enqueue_rcu            _cds_lfq_enqueue_rcu
-#define cds_lfq_dequeue_rcu            _cds_lfq_dequeue_rcu
+#define cds_lfq_node_init_rcu_qsbr     _cds_lfq_node_init_rcu
+#define cds_lfq_init_rcu_qsbr          _cds_lfq_init_rcu
+#define cds_lfq_destroy_rcu_qsbr       _cds_lfq_destroy_rcu
+#define cds_lfq_enqueue_rcu_qsbr       _cds_lfq_enqueue_rcu
+#define cds_lfq_dequeue_rcu_qsbr       _cds_lfq_dequeue_rcu
+
+#define cds_lfq_node_init_rcu_bp       _cds_lfq_node_init_rcu
+#define cds_lfq_init_rcu_bp            _cds_lfq_init_rcu
+#define cds_lfq_destroy_rcu_bp         _cds_lfq_destroy_rcu
+#define cds_lfq_enqueue_rcu_bp         _cds_lfq_enqueue_rcu
+#define cds_lfq_dequeue_rcu_bp         _cds_lfq_dequeue_rcu
+
+#define cds_lfq_node_init_rcu_memb     _cds_lfq_node_init_rcu
+#define cds_lfq_init_rcu_memb          _cds_lfq_init_rcu
+#define cds_lfq_destroy_rcu_memb       _cds_lfq_destroy_rcu
+#define cds_lfq_enqueue_rcu_memb       _cds_lfq_enqueue_rcu
+#define cds_lfq_dequeue_rcu_memb       _cds_lfq_dequeue_rcu
+
+#define cds_lfq_node_init_rcu_mb       _cds_lfq_node_init_rcu
+#define cds_lfq_init_rcu_mb            _cds_lfq_init_rcu
+#define cds_lfq_destroy_rcu_mb         _cds_lfq_destroy_rcu
+#define cds_lfq_enqueue_rcu_mb         _cds_lfq_enqueue_rcu
+#define cds_lfq_dequeue_rcu_mb         _cds_lfq_dequeue_rcu
+
+#define cds_lfq_node_init_rcu_sig      _cds_lfq_node_init_rcu
+#define cds_lfq_init_rcu_sig           _cds_lfq_init_rcu
+#define cds_lfq_destroy_rcu_sig                _cds_lfq_destroy_rcu
+#define cds_lfq_enqueue_rcu_sig                _cds_lfq_enqueue_rcu
+#define cds_lfq_dequeue_rcu_sig                _cds_lfq_dequeue_rcu
 
 #else /* !_LGPL_SOURCE */
 
 extern void cds_lfq_node_init_rcu(struct cds_lfq_node_rcu *node);
-extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q,
-                            void queue_call_rcu(struct rcu_head *head,
-                                       void (*func)(struct rcu_head *head)));
+extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q);
 /*
  * The queue should be emptied before calling destroy.
  *
@@ -67,13 +87,13 @@ extern void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q,
 extern int cds_lfq_destroy_rcu(struct cds_lfq_queue_rcu *q);
 
 /*
- * Should be called under rcu read lock critical section.
+ * Acts as a RCU reader.
  */
 extern void cds_lfq_enqueue_rcu(struct cds_lfq_queue_rcu *q,
                                struct cds_lfq_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_lfq_node_rcu structure.
This page took 0.023075 seconds and 4 git commands to generate.