1 // SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation. 2 // SPDX-FileCopyrightText: 2009 Mathieu Desnoyers <mathieu.desnoyers (at) efficios.com> 3 // 4 // SPDX-License-Identifier: LGPL-2.1-or-later 5 6 /* 7 * Userspace RCU header -- name mapping to allow multiple flavors to be 8 * used in the same executable. 9 * 10 * LGPL-compatible code should include this header with : 11 * 12 * #define _LGPL_SOURCE 13 * #include <urcu.h> 14 * 15 * IBM's contributions to this file may be relicensed under LGPLv2 or later. 16 */ 17 18 #define rcu_read_lock urcu_qsbr_read_lock 19 #define _rcu_read_lock _urcu_qsbr_read_lock 20 #define rcu_read_unlock urcu_qsbr_read_unlock 21 #define _rcu_read_unlock _urcu_qsbr_read_unlock 22 #define rcu_read_ongoing urcu_qsbr_read_ongoing 23 #define _rcu_read_ongoing _urcu_qsbr_read_ongoing 24 #define rcu_quiescent_state urcu_qsbr_quiescent_state 25 #define _rcu_quiescent_state _urcu_qsbr_quiescent_state 26 #define rcu_thread_offline urcu_qsbr_thread_offline 27 #define rcu_thread_online urcu_qsbr_thread_online 28 #define rcu_register_thread urcu_qsbr_register_thread 29 #define rcu_unregister_thread urcu_qsbr_unregister_thread 30 #define rcu_exit urcu_qsbr_exit 31 #define synchronize_rcu urcu_qsbr_synchronize_rcu 32 #define rcu_reader urcu_qsbr_reader 33 #define rcu_gp urcu_qsbr_gp 34 35 #define get_cpu_call_rcu_data urcu_qsbr_get_cpu_call_rcu_data 36 #define get_call_rcu_thread urcu_qsbr_get_call_rcu_thread 37 #define create_call_rcu_data urcu_qsbr_create_call_rcu_data 38 #define set_cpu_call_rcu_data urcu_qsbr_set_cpu_call_rcu_data 39 #define get_default_call_rcu_data urcu_qsbr_get_default_call_rcu_data 40 #define get_call_rcu_data urcu_qsbr_get_call_rcu_data 41 #define get_thread_call_rcu_data urcu_qsbr_get_thread_call_rcu_data 42 #define set_thread_call_rcu_data urcu_qsbr_set_thread_call_rcu_data 43 #define create_all_cpu_call_rcu_data urcu_qsbr_create_all_cpu_call_rcu_data 44 #define free_all_cpu_call_rcu_data urcu_qsbr_free_all_cpu_call_rcu_data 45 #define call_rcu urcu_qsbr_call_rcu 46 #define call_rcu_data_free urcu_qsbr_call_rcu_data_free 47 #define call_rcu_before_fork urcu_qsbr_call_rcu_before_fork 48 #define call_rcu_after_fork_parent urcu_qsbr_call_rcu_after_fork_parent 49 #define call_rcu_after_fork_child urcu_qsbr_call_rcu_after_fork_child 50 #define rcu_barrier urcu_qsbr_barrier 51 52 #define defer_rcu urcu_qsbr_defer_rcu 53 #define rcu_defer_register_thread urcu_qsbr_defer_register_thread 54 #define rcu_defer_unregister_thread urcu_qsbr_defer_unregister_thread 55 #define rcu_defer_barrier urcu_qsbr_defer_barrier 56 #define rcu_defer_barrier_thread urcu_qsbr_defer_barrier_thread 57 #define rcu_defer_exit urcu_qsbr_defer_exit 58 59 #define rcu_flavor urcu_qsbr_flavor 60 61 #define urcu_register_rculfhash_atfork \ 62 urcu_qsbr_register_rculfhash_atfork 63 #define urcu_unregister_rculfhash_atfork \ 64 urcu_qsbr_unregister_rculfhash_atfork 65 66 #define start_poll_synchronize_rcu urcu_qsbr_start_poll_synchronize_rcu 67 #define poll_state_synchronize_rcu urcu_qsbr_poll_state_synchronize_rcu 68 69 70 /* Compat identifiers for prior undocumented multiflavor usage */ 71 #ifndef URCU_NO_COMPAT_IDENTIFIERS 72 73 #define rcu_dereference_qsbr urcu_qsbr_dereference 74 #define rcu_cmpxchg_pointer_qsbr urcu_qsbr_cmpxchg_pointer 75 #define rcu_xchg_pointer_qsbr urcu_qsbr_xchg_pointer 76 #define rcu_set_pointer_qsbr urcu_qsbr_set_pointer 77 78 #define rcu_qsbr_before_fork urcu_qsbr_before_fork 79 #define rcu_qsbr_after_fork_parent urcu_qsbr_after_fork_parent 80 #define rcu_qsbr_after_fork_child urcu_qsbr_after_fork_child 81 82 #define rcu_read_lock_qsbr urcu_qsbr_read_lock 83 #define _rcu_read_lock_qsbr _urcu_qsbr_read_lock 84 #define rcu_read_unlock_qsbr urcu_qsbr_read_unlock 85 #define _rcu_read_unlock_qsbr _urcu_qsbr_read_unlock 86 #define rcu_read_ongoing_qsbr urcu_qsbr_read_ongoing 87 #define _rcu_read_ongoing_qsbr _urcu_qsbr_read_ongoing 88 #define rcu_register_thread_qsbr urcu_qsbr_register_thread 89 #define rcu_unregister_thread_qsbr urcu_qsbr_unregister_thread 90 #define rcu_init_qsbr urcu_qsbr_init 91 #define rcu_exit_qsbr urcu_qsbr_exit 92 #define synchronize_rcu_qsbr urcu_qsbr_synchronize_rcu 93 #define rcu_reader_qsbr urcu_qsbr_reader 94 #define rcu_gp_qsbr urcu_qsbr_gp 95 96 #define get_cpu_call_rcu_data_qsbr urcu_qsbr_get_cpu_call_rcu_data 97 #define get_call_rcu_thread_qsbr urcu_qsbr_get_call_rcu_thread 98 #define create_call_rcu_data_qsbr urcu_qsbr_create_call_rcu_data 99 #define set_cpu_call_rcu_data_qsbr urcu_qsbr_set_cpu_call_rcu_data 100 #define get_default_call_rcu_data_qsbr urcu_qsbr_get_default_call_rcu_data 101 #define get_call_rcu_data_qsbr urcu_qsbr_get_call_rcu_data 102 #define get_thread_call_rcu_data_qsbr urcu_qsbr_get_thread_call_rcu_data 103 #define set_thread_call_rcu_data_qsbr urcu_qsbr_set_thread_call_rcu_data 104 #define create_all_cpu_call_rcu_data_qsbr \ 105 urcu_qsbr_create_all_cpu_call_rcu_data 106 #define free_all_cpu_call_rcu_data_qsbr urcu_qsbr_free_all_cpu_call_rcu_data 107 #define call_rcu_qsbr urcu_qsbr_call_rcu 108 #define call_rcu_data_free_qsbr urcu_qsbr_call_rcu_data_free 109 #define call_rcu_before_fork_qsbr urcu_qsbr_call_rcu_before_fork 110 #define call_rcu_after_fork_parent_qsbr urcu_qsbr_call_rcu_after_fork_parent 111 #define call_rcu_after_fork_child_qsbr urcu_qsbr_call_rcu_after_fork_child 112 #define rcu_barrier_qsbr urcu_qsbr_barrier 113 114 #define defer_rcu_qsbr urcu_qsbr_defer_rcu 115 #define rcu_defer_register_thread_qsbr urcu_qsbr_defer_register_thread 116 #define rcu_defer_unregister_thread_qsbr \ 117 urcu_qsbr_defer_unregister_thread 118 #define rcu_defer_barrier_qsbr urcu_qsbr_defer_barrier 119 #define rcu_defer_barrier_thread_qsbr urcu_qsbr_defer_barrier_thread 120 #define rcu_defer_exit_qsbr urcu_qsbr_defer_exit 121 122 #define rcu_flavor_qsbr urcu_qsbr_flavor 123 124 #define urcu_register_rculfhash_atfork_qsbr \ 125 urcu_qsbr_register_rculfhash_atfork 126 #define urcu_unregister_rculfhash_atfork_qsbr \ 127 urcu_qsbr_unregister_rculfhash_atfork 128 129 #endif /* URCU_NO_COMPAT_IDENTIFIERS */ 130