Commit | Line | Data |
---|---|---|
acdb82a2 MJ |
1 | // SPDX-FileCopyrightText: 2010 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
2 | // | |
3 | // SPDX-License-Identifier: LGPL-2.1-or-later | |
4 | ||
3d02c34d | 5 | /* |
3d02c34d | 6 | * Userspace RCU library - Lock-Free RCU Queue |
3d02c34d MD |
7 | */ |
8 | ||
3d02c34d | 9 | /* Do not #define _LGPL_SOURCE to ensure we can emit the wrapper symbols */ |
ae4510b5 | 10 | #undef _LGPL_SOURCE |
3d02c34d | 11 | #include "urcu/rculfqueue.h" |
ae4510b5 | 12 | #define _LGPL_SOURCE |
af7c2dbe | 13 | #include "urcu/static/rculfqueue.h" |
3d02c34d MD |
14 | |
15 | /* | |
16 | * library wrappers to be used by non-LGPL compatible source code. | |
17 | */ | |
18 | ||
16aa9ee8 | 19 | void cds_lfq_node_init_rcu(struct cds_lfq_node_rcu *node) |
3d02c34d | 20 | { |
16aa9ee8 | 21 | _cds_lfq_node_init_rcu(node); |
3d02c34d MD |
22 | } |
23 | ||
6e5f88cf MD |
24 | void cds_lfq_init_rcu(struct cds_lfq_queue_rcu *q, |
25 | void queue_call_rcu(struct rcu_head *head, | |
26 | void (*func)(struct rcu_head *head))) | |
3d02c34d | 27 | { |
6e5f88cf | 28 | _cds_lfq_init_rcu(q, queue_call_rcu); |
e17d9985 MD |
29 | } |
30 | ||
31 | int cds_lfq_destroy_rcu(struct cds_lfq_queue_rcu *q) | |
32 | { | |
33 | return _cds_lfq_destroy_rcu(q); | |
3d02c34d MD |
34 | } |
35 | ||
16aa9ee8 | 36 | void cds_lfq_enqueue_rcu(struct cds_lfq_queue_rcu *q, struct cds_lfq_node_rcu *node) |
3d02c34d | 37 | { |
16aa9ee8 | 38 | _cds_lfq_enqueue_rcu(q, node); |
3d02c34d MD |
39 | } |
40 | ||
16aa9ee8 | 41 | struct cds_lfq_node_rcu * |
d9b52143 | 42 | cds_lfq_dequeue_rcu(struct cds_lfq_queue_rcu *q) |
3d02c34d | 43 | { |
d9b52143 | 44 | return _cds_lfq_dequeue_rcu(q); |
3d02c34d | 45 | } |