uatomic/x86: Remove redundant memory barriers
[urcu.git] / src / lfstack.c
1 // SPDX-FileCopyrightText: 2010-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4
5 /*
6 * Userspace RCU library - Lock-Free Stack
7 */
8
9 /* Do not #define _LGPL_SOURCE to ensure we can emit the wrapper symbols */
10 #undef _LGPL_SOURCE
11 #include "urcu/lfstack.h"
12 #define _LGPL_SOURCE
13 #include "urcu/static/lfstack.h"
14
15 /*
16 * library wrappers to be used by non-LGPL compatible source code.
17 */
18
19 void cds_lfs_node_init(struct cds_lfs_node *node)
20 {
21 _cds_lfs_node_init(node);
22 }
23
24 void cds_lfs_init(struct cds_lfs_stack *s)
25 {
26 _cds_lfs_init(s);
27 }
28
29 void cds_lfs_destroy(struct cds_lfs_stack *s)
30 {
31 _cds_lfs_destroy(s);
32 }
33
34 void __cds_lfs_init(struct __cds_lfs_stack *s)
35 {
36 ___cds_lfs_init(s);
37 }
38
39 bool cds_lfs_empty(cds_lfs_stack_ptr_t s)
40 {
41 return _cds_lfs_empty(s);
42 }
43
44 bool cds_lfs_push(cds_lfs_stack_ptr_t s, struct cds_lfs_node *node)
45 {
46 return _cds_lfs_push(s, node);
47 }
48
49 struct cds_lfs_node *cds_lfs_pop_blocking(struct cds_lfs_stack *s)
50 {
51 return _cds_lfs_pop_blocking(s);
52 }
53
54 struct cds_lfs_head *cds_lfs_pop_all_blocking(struct cds_lfs_stack *s)
55 {
56 return _cds_lfs_pop_all_blocking(s);
57 }
58
59 void cds_lfs_pop_lock(struct cds_lfs_stack *s)
60 {
61 _cds_lfs_pop_lock(s);
62 }
63
64 void cds_lfs_pop_unlock(struct cds_lfs_stack *s)
65 {
66 _cds_lfs_pop_unlock(s);
67 }
68
69 struct cds_lfs_node *__cds_lfs_pop(cds_lfs_stack_ptr_t s)
70 {
71 return ___cds_lfs_pop(s);
72 }
73
74 struct cds_lfs_head *__cds_lfs_pop_all(cds_lfs_stack_ptr_t s)
75 {
76 return ___cds_lfs_pop_all(s);
77 }
This page took 0.029741 seconds and 4 git commands to generate.