int lttng_channel_enable(struct lttng_channel *channel);
int lttng_channel_disable(struct lttng_channel *channel);
-int lttng_attach_context(struct lttng_ust_context *context_param,
- union ust_args *uargs,
- struct lttng_ctx **ctx, struct lttng_session *session);
void lttng_transport_register(struct lttng_transport *transport);
void lttng_transport_unregister(struct lttng_transport *transport);
int lttng_fix_pending_events(void);
int lttng_probes_init(void);
void lttng_probes_exit(void);
-int lttng_find_context(struct lttng_ctx *ctx, const char *name);
-int lttng_get_context_index(struct lttng_ctx *ctx, const char *name);
-struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p);
-void lttng_context_update(struct lttng_ctx *ctx);
-void lttng_remove_context_field(struct lttng_ctx **ctx_p,
- struct lttng_ctx_field *field);
-void lttng_destroy_context(struct lttng_ctx *ctx);
-int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_pthread_id_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_procname_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_ip_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_cpu_id_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_dyntest_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vuid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_veuid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vsuid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vgid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vegid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vsgid_to_ctx(struct lttng_ctx **ctx);
-void lttng_context_vtid_reset(void);
-void lttng_context_vpid_reset(void);
-void lttng_context_procname_reset(void);
-void lttng_context_cgroup_ns_reset(void);
-void lttng_context_ipc_ns_reset(void);
-void lttng_context_mnt_ns_reset(void);
-void lttng_context_net_ns_reset(void);
-void lttng_context_pid_ns_reset(void);
-void lttng_context_user_ns_reset(void);
-void lttng_context_uts_ns_reset(void);
-void lttng_context_vuid_reset(void);
-void lttng_context_veuid_reset(void);
-void lttng_context_vsuid_reset(void);
-void lttng_context_vgid_reset(void);
-void lttng_context_vegid_reset(void);
-void lttng_context_vsgid_reset(void);
+/*
+ * Can be used by applications that change their procname to clear the ust cached value.
+ */
+void lttng_context_procname_reset(void);
struct lttng_transport *lttng_transport_find(const char *name);
LTTNG_HIDDEN
int lttng_context_init_all(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_attach_context(struct lttng_ust_context *context_param,
+ union ust_args *uargs,
+ struct lttng_ctx **ctx, struct lttng_session *session);
+
+LTTNG_HIDDEN
+int lttng_find_context(struct lttng_ctx *ctx, const char *name);
+LTTNG_HIDDEN
+int lttng_get_context_index(struct lttng_ctx *ctx, const char *name);
+LTTNG_HIDDEN
+struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p);
+LTTNG_HIDDEN
+void lttng_context_update(struct lttng_ctx *ctx);
+LTTNG_HIDDEN
+void lttng_remove_context_field(struct lttng_ctx **ctx_p,
+ struct lttng_ctx_field *field);
+LTTNG_HIDDEN
+void lttng_destroy_context(struct lttng_ctx *ctx);
+
+LTTNG_HIDDEN
+void lttng_context_vtid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vpid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_cgroup_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_ipc_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_mnt_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_net_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_pid_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_user_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_uts_ns_reset(void);
LTTNG_HIDDEN
void lttng_context_time_ns_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vuid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_veuid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vsuid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vgid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vegid_reset(void);
+LTTNG_HIDDEN
+void lttng_context_vsgid_reset(void);
+LTTNG_HIDDEN
+int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_pthread_id_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_procname_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_ip_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_cpu_id_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_dyntest_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
LTTNG_HIDDEN
int lttng_add_time_ns_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vuid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_veuid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vsuid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vgid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vegid_to_ctx(struct lttng_ctx **ctx);
+LTTNG_HIDDEN
+int lttng_add_vsgid_to_ctx(struct lttng_ctx **ctx);
#endif /* _LTTNG_UST_CONTEXT_INTERNAL_H */
#include <stddef.h>
#include <stdint.h>
-#include "lttng-bytecode.h"
#include <lttng/align.h>
+
+#include "context-internal.h"
+#include "lttng-bytecode.h"
#include "ust-events-internal.h"
static int lttng_fls(int val)
#include <urcu/rculist.h>
+#include "context-internal.h"
#include "lttng-bytecode.h"
#include "ust-events-internal.h"
#include <lttng/ringbuffer-config.h>
#include <ust-tid.h>
#include <urcu/tls-compat.h>
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "ns.h"
#include <lttng/ringbuffer-config.h>
#include "../libringbuffer/getcpu.h"
+#include "context-internal.h"
+
static
size_t cpu_id_get_size(struct lttng_ctx_field *field, size_t offset)
{
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
+
static
size_t ip_get_size(struct lttng_ctx_field *field, size_t offset)
{
#include <lttng/ringbuffer-config.h>
#include <ust-tid.h>
#include <urcu/tls-compat.h>
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "ns.h"
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
#include "ns.h"
/*
#include <lttng/ringbuffer-config.h>
#include <ust-tid.h>
#include <urcu/tls-compat.h>
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "ns.h"
#include <signal.h>
#include <urcu/tls-compat.h>
#include "perf_event.h"
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "ust-events-internal.h"
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
#include "ns.h"
/*
#include <assert.h>
#include "compat.h"
+#include "context-internal.h"
+
/* Maximum number of nesting levels for the procname cache. */
#define PROCNAME_NESTING_MAX 2
#include <ust-context-provider.h>
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "jhash.h"
#include "context-provider-internal.h"
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
+
static
size_t pthread_id_get_size(struct lttng_ctx_field *field, size_t offset)
{
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
#include "ns.h"
/*
#include <lttng/ringbuffer-config.h>
#include <ust-tid.h>
#include <urcu/tls-compat.h>
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
#include "ns.h"
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+#include "context-internal.h"
+
/*
* We cache the result to ensure we don't trigger a system call for
* each event.
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include <lttng/ringbuffer-config.h>
#include <ust-tid.h>
#include <urcu/tls-compat.h>
+
+#include "context-internal.h"
#include "lttng-tracer-core.h"
/*
#include <lttng/ust-events.h>
#include <lttng/ust-tracer.h>
#include <lttng/ringbuffer-config.h>
+
+#include "context-internal.h"
#include "creds.h"
#include "lttng-tracer.h"
#include "string-utils.h"
#include "ust-events-internal.h"
+#include "context-internal.h"
#define OBJ_NAME_LEN 16