urcu_qsbr_sys/
lib.rs

1#![doc = include_str!("../README.md")]
2
3use urcu_sys::RcuFlavorApi;
4
5mod bindings {
6    #![allow(warnings)]
7
8    use urcu_sys::{
9        RcuAtFork as urcu_atfork,
10        RcuFlavorApi as rcu_flavor_struct,
11        RcuHead as rcu_head,
12        RcuPollState as urcu_gp_poll_state,
13    };
14
15    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
16}
17
18pub use bindings::{
19    urcu_qsbr_barrier,
20    urcu_qsbr_call_rcu,
21    urcu_qsbr_defer_barrier,
22    urcu_qsbr_defer_rcu,
23    urcu_qsbr_defer_register_thread,
24    urcu_qsbr_defer_unregister_thread,
25    urcu_qsbr_poll_state_synchronize_rcu,
26    urcu_qsbr_quiescent_state,
27    urcu_qsbr_read_ongoing,
28    urcu_qsbr_register_rculfhash_atfork,
29    urcu_qsbr_register_thread,
30    urcu_qsbr_start_poll_synchronize_rcu,
31    urcu_qsbr_synchronize_rcu,
32    urcu_qsbr_thread_offline,
33    urcu_qsbr_thread_online,
34    urcu_qsbr_unregister_rculfhash_atfork,
35    urcu_qsbr_unregister_thread,
36};
37
38#[allow(clippy::missing_safety_doc)]
39pub unsafe extern "C" fn urcu_qsbr_init() {}
40
41#[allow(clippy::missing_safety_doc)]
42pub unsafe extern "C" fn urcu_qsbr_read_lock() {
43    #[cfg(feature = "debug")]
44    bindings::urcu_qsbr_read_lock();
45}
46
47#[allow(clippy::missing_safety_doc)]
48pub unsafe extern "C" fn urcu_qsbr_read_unlock() {
49    #[cfg(feature = "debug")]
50    bindings::urcu_qsbr_read_unlock();
51}
52
53pub static RCU_API: RcuFlavorApi = RcuFlavorApi {
54    read_lock: Some(urcu_qsbr_read_lock),
55    read_unlock: Some(urcu_qsbr_read_unlock),
56    read_ongoing: Some(urcu_qsbr_read_ongoing),
57    read_quiescent_state: Some(urcu_qsbr_quiescent_state),
58    update_call_rcu: Some(urcu_qsbr_call_rcu),
59    update_synchronize_rcu: Some(urcu_qsbr_synchronize_rcu),
60    update_defer_rcu: Some(urcu_qsbr_defer_rcu),
61    thread_offline: Some(urcu_qsbr_thread_offline),
62    thread_online: Some(urcu_qsbr_thread_online),
63    register_thread: Some(urcu_qsbr_register_thread),
64    unregister_thread: Some(urcu_qsbr_unregister_thread),
65    barrier: Some(urcu_qsbr_barrier),
66    register_rculfhash_atfork: Some(urcu_qsbr_register_rculfhash_atfork),
67    unregister_rculfhash_atfork: Some(urcu_qsbr_unregister_rculfhash_atfork),
68    update_start_poll_synchronize_rcu: Some(urcu_qsbr_start_poll_synchronize_rcu),
69    update_poll_state_synchronize_rcu: Some(urcu_qsbr_poll_state_synchronize_rcu),
70};