-#ifndef _LTTNG_TRACEPOINT_RCU_H
-#define _LTTNG_TRACEPOINT_RCU_H
-
/*
- * Copyright 2011-2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
+ * SPDX-License-Identifier: MIT
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*/
+#ifndef _LTTNG_TRACEPOINT_RCU_H
+#define _LTTNG_TRACEPOINT_RCU_H
+
#include <urcu/compiler.h>
+#include <lttng/urcu/pointer.h>
+#include <lttng/ust-api-compat.h>
#ifdef _LGPL_SOURCE
-#include <urcu-bp.h>
+#include <lttng/urcu/urcu-ust.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_LINK_TEST() 1
+#define lttng_ust_tp_rcu_read_lock lttng_ust_urcu_read_lock
+#define lttng_ust_tp_rcu_read_unlock lttng_ust_urcu_read_unlock
+#define lttng_ust_tp_rcu_dereference lttng_ust_rcu_dereference
+#define LTTNG_UST_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 lttng_ust_tp_rcu_read_lock lttng_ust_tracepoint_dlopen_ptr->rcu_read_lock_sym
+#define lttng_ust_tp_rcu_read_unlock lttng_ust_tracepoint_dlopen_ptr->rcu_read_unlock_sym
-#define tp_rcu_dereference_bp(p) \
+#define lttng_ust_tp_rcu_dereference(p) \
URCU_FORCE_CAST(__typeof__(p), \
- tracepoint_dlopen.rcu_dereference_sym_bp(URCU_FORCE_CAST(void *, p)))
+ lttng_ust_tracepoint_dlopen_ptr->rcu_dereference_sym(URCU_FORCE_CAST(void *, p)))
-#define TP_RCU_LINK_TEST() tp_rcu_read_lock_bp
+#define LTTNG_UST_TP_RCU_LINK_TEST() (lttng_ust_tracepoint_dlopen_ptr && tp_rcu_read_lock)
#endif /* _LGPL_SOURCE */
+#if LTTNG_UST_COMPAT_API(0)
+#define tp_rcu_read_lock lttng_ust_tp_rcu_read_lock
+#define tp_rcu_read_unlock lttng_ust_tp_rcu_read_unlock
+#define tp_rcu_dereference lttng_ust_tp_rcu_dereference
+#define TP_RCU_LINK_TEST LTTNG_UST_TP_RCU_LINK_TEST
+#endif
+
#endif /* _LTTNG_TRACEPOINT_RCU_H */