#include "common/macros.h"
#include "lttng-tracer-core.h"
#include "lttng-ust-statedump.h"
-#include "jhash.h"
-#include "getenv.h"
-#include "ust-events-internal.h"
+#include "common/jhash.h"
+#include "common/getenv.h"
+#include "lib/lttng-ust/events.h"
-#define TRACEPOINT_DEFINE
+#define LTTNG_UST_TRACEPOINT_HIDDEN_DEFINITION
+#define LTTNG_UST_TRACEPOINT_PROVIDER_HIDDEN_DEFINITION
+
+#define LTTNG_UST_TRACEPOINT_DEFINE
#include "ust_lib.h" /* Only define. */
-#define TRACEPOINT_CREATE_PROBES
-#define TP_SESSION_CHECK
+#define LTTNG_UST_TRACEPOINT_CREATE_PROBES
+#define LTTNG_UST_TP_SESSION_CHECK
#include "lttng-ust-statedump-provider.h" /* Define and create probes. */
struct dl_iterate_data {
#define UST_DL_STATE_HASH_BITS 8
#define UST_DL_STATE_TABLE_SIZE (1 << UST_DL_STATE_HASH_BITS)
-struct cds_hlist_head dl_state_table[UST_DL_STATE_TABLE_SIZE];
+static struct cds_hlist_head dl_state_table[UST_DL_STATE_TABLE_SIZE];
typedef void (*tracepoint_cb)(struct lttng_ust_session *session, void *priv);
{
struct bin_info_data *bin_data = (struct bin_info_data *) priv;
- tracepoint(lttng_ust_statedump, bin_info,
+ lttng_ust_tracepoint(lttng_ust_statedump, bin_info,
session, bin_data->base_addr_ptr,
bin_data->resolved_path, bin_data->memsz,
bin_data->is_pic, bin_data->has_build_id,
{
struct bin_info_data *bin_data = (struct bin_info_data *) priv;
- tracepoint(lttng_ust_statedump, build_id,
+ lttng_ust_tracepoint(lttng_ust_statedump, build_id,
session, bin_data->base_addr_ptr,
bin_data->build_id, bin_data->build_id_len);
}
{
struct bin_info_data *bin_data = (struct bin_info_data *) priv;
- tracepoint(lttng_ust_statedump, debug_link,
+ lttng_ust_tracepoint(lttng_ust_statedump, debug_link,
session, bin_data->base_addr_ptr,
bin_data->dbg_file, bin_data->crc);
}
void procname_cb(struct lttng_ust_session *session, void *priv)
{
char *procname = (char *) priv;
- tracepoint(lttng_ust_statedump, procname, session, procname);
+ lttng_ust_tracepoint(lttng_ust_statedump, procname, session, procname);
}
static
void trace_start_cb(struct lttng_ust_session *session, void *priv __attribute__((unused)))
{
- tracepoint(lttng_ust_statedump, start, session);
+ lttng_ust_tracepoint(lttng_ust_statedump, start, session);
}
static
void trace_end_cb(struct lttng_ust_session *session, void *priv __attribute__((unused)))
{
- tracepoint(lttng_ust_statedump, end, session);
+ lttng_ust_tracepoint(lttng_ust_statedump, end, session);
}
static
static
void trace_lib_load(const struct bin_info_data *bin_data, void *ip)
{
- tracepoint(lttng_ust_lib, load,
+ lttng_ust_tracepoint(lttng_ust_lib, load,
ip, bin_data->base_addr_ptr, bin_data->resolved_path,
bin_data->memsz, bin_data->has_build_id,
bin_data->has_debug_link);
if (bin_data->has_build_id) {
- tracepoint(lttng_ust_lib, build_id,
+ lttng_ust_tracepoint(lttng_ust_lib, build_id,
ip, bin_data->base_addr_ptr, bin_data->build_id,
bin_data->build_id_len);
}
if (bin_data->has_debug_link) {
- tracepoint(lttng_ust_lib, debug_link,
+ lttng_ust_tracepoint(lttng_ust_lib, debug_link,
ip, bin_data->base_addr_ptr, bin_data->dbg_file,
bin_data->crc);
}
static
void trace_lib_unload(const struct bin_info_data *bin_data, void *ip)
{
- tracepoint(lttng_ust_lib, unload, ip, bin_data->base_addr_ptr);
+ lttng_ust_tracepoint(lttng_ust_lib, unload, ip, bin_data->base_addr_ptr);
}
static
*/
for (i = 0; i < UST_DL_STATE_TABLE_SIZE; i++) {
struct cds_hlist_head *head;
- struct lttng_ust_dl_node *e;
+ struct lttng_ust_dl_node *e, *tmp;
head = &dl_state_table[i];
- cds_hlist_for_each_entry_2(e, head, node) {
+ cds_hlist_for_each_entry_safe_2(e, tmp, head, node) {
if (e->marked) {
if (!e->traced) {
trace_lib_load(&e->bin_data, ip);
return;
/*
- * Fixup lttng-ust TLS when called from dlopen/dlclose
- * instrumentation.
+ * Force the allocation of lttng-ust TLS variables when called from
+ * dlopen/dlclose instrumentation.
*/
- lttng_ust_fixup_tls();
+ lttng_ust_common_init_thread(0);
data.exec_found = 0;
data.first = true;
void lttng_ust_statedump_init(void)
{
- __tracepoints__init();
- __tracepoints__ptrs_init();
- __lttng_events_init__lttng_ust_statedump();
+ lttng_ust__tracepoints__init();
+ lttng_ust__tracepoints__ptrs_init();
+ lttng_ust__events_init__lttng_ust_statedump();
lttng_ust_dl_update(LTTNG_UST_CALLER_IP());
}
void lttng_ust_statedump_destroy(void)
{
- __lttng_events_exit__lttng_ust_statedump();
- __tracepoints__ptrs_destroy();
- __tracepoints__destroy();
+ lttng_ust__events_exit__lttng_ust_statedump();
+ lttng_ust__tracepoints__ptrs_destroy();
+ lttng_ust__tracepoints__destroy();
ust_dl_state_destroy();
}