Adapt lttng-ust to use multiflavor symbols from liburcu 0.11
[lttng-ust.git] / include / lttng / tracepoint-rcu.h
index 918837e1a162b553091441bf8e0cd02d2015f89c..95d60493c0b04f62e53af82f831eeeeb8e048ffb 100644 (file)
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #include <urcu/compiler.h>
 
 #ifdef _LGPL_SOURCE
 
-#include <urcu-bp.h>
+#include <urcu/urcu-bp.h>
 
-#define tp_rcu_read_lock_bp    rcu_read_lock_bp
-#define tp_rcu_read_unlock_bp  rcu_read_unlock_bp
-#define tp_rcu_dereference_bp  rcu_dereference_bp
+#define tp_rcu_read_lock_bp    urcu_bp_read_lock
+#define tp_rcu_read_unlock_bp  urcu_bp_read_unlock
+#define tp_rcu_dereference_bp  rcu_dereference
 #define TP_RCU_LINK_TEST()     1
 
 #else  /* _LGPL_SOURCE */
 
-#define tp_rcu_read_lock_bp    tracepoint_dlopen.rcu_read_lock_sym_bp
-#define tp_rcu_read_unlock_bp  tracepoint_dlopen.rcu_read_unlock_sym_bp
+#define tp_rcu_read_lock_bp    tracepoint_dlopen_ptr->rcu_read_lock_sym_bp
+#define tp_rcu_read_unlock_bp  tracepoint_dlopen_ptr->rcu_read_unlock_sym_bp
 
-#define tp_rcu_dereference_bp(p)                                            \
-       ({                                                                   \
-               typeof(p) _________p1 = URCU_FORCE_CAST(typeof(p),           \
-                       tracepoint_dlopen.rcu_dereference_sym_bp(URCU_FORCE_CAST(void *, p))); \
-               (_________p1);                                               \
-       })
+#define tp_rcu_dereference_bp(p)                                          \
+               URCU_FORCE_CAST(__typeof__(p),                             \
+                       tracepoint_dlopen_ptr->rcu_dereference_sym_bp(URCU_FORCE_CAST(void *, p)))
 
-#define TP_RCU_LINK_TEST()     tp_rcu_read_lock_bp
+#define TP_RCU_LINK_TEST()     (tracepoint_dlopen_ptr && tp_rcu_read_lock_bp)
 
 #endif /* _LGPL_SOURCE */
 
This page took 0.024237 seconds and 4 git commands to generate.