X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-events.h;h=893096827802f92ddb1550ca06ff32ce0322a4f5;hb=fca2f1916cd9f22f410d8f22b9a0720c978c2025;hp=f3ade45c43558acddedefc5baf33d0a59798bef3;hpb=53569322d40ed45abe0368ddb08eb4a2738afc37;p=lttng-ust.git diff --git a/include/lttng/ust-events.h b/include/lttng/ust-events.h index f3ade45c..89309682 100644 --- a/include/lttng/ust-events.h +++ b/include/lttng/ust-events.h @@ -39,6 +39,10 @@ #include #include +#ifndef LTTNG_PACKED +#error "LTTNG_PACKED should be defined" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -101,11 +105,25 @@ enum lttng_string_encodings { NR_STRING_ENCODINGS, }; +struct lttng_enum_value { + unsigned long long value; + unsigned int signedness:1; +}; + +enum lttng_enum_entry_options { + LTTNG_ENUM_ENTRY_OPTION_IS_AUTO = 1U << 0, +}; + #define LTTNG_UST_ENUM_ENTRY_PADDING 16 struct lttng_enum_entry { - unsigned long long start, end; /* start and end are inclusive */ + struct lttng_enum_value start, end; /* start and end are inclusive */ const char *string; - char padding[LTTNG_UST_ENUM_ENTRY_PADDING]; + union { + struct { + unsigned int options; + } LTTNG_PACKED extra; + char padding[LTTNG_UST_ENUM_ENTRY_PADDING]; + } u; }; #define __type_integer(_type, _byte_order, _base, _encoding) \ @@ -328,7 +346,7 @@ struct lttng_probe_desc { /* Data structures used by the tracer. */ enum lttng_enabler_type { - LTTNG_ENABLER_WILDCARD, + LTTNG_ENABLER_STAR_GLOB, LTTNG_ENABLER_EVENT, }; @@ -409,6 +427,7 @@ struct lttng_bytecode_runtime { int link_failed; struct cds_list_head node; /* list of bytecode runtime in event */ struct lttng_session *session; + struct lttng_event *event; }; /* @@ -475,7 +494,8 @@ struct lttng_channel_ops { unsigned int read_timer_interval, unsigned char *uuid, uint32_t chan_id, - const int *stream_fds, int nr_stream_fds); + const int *stream_fds, int nr_stream_fds, + int64_t blocking_timeout); void (*channel_destroy)(struct lttng_channel *chan); union { void *_deprecated1; @@ -601,6 +621,7 @@ struct lttng_transport { struct lttng_session *lttng_session_create(void); int lttng_session_enable(struct lttng_session *session); int lttng_session_disable(struct lttng_session *session); +int lttng_session_statedump(struct lttng_session *session); void lttng_session_destroy(struct lttng_session *session); struct lttng_channel *lttng_channel_create(struct lttng_session *session, @@ -629,6 +650,7 @@ int lttng_enabler_attach_exclusion(struct lttng_enabler *enabler, struct lttng_ust_excluder_node *excluder); int lttng_attach_context(struct lttng_ust_context *context_param, + union ust_args *uargs, struct lttng_ctx **ctx, struct lttng_session *session); int lttng_session_context_init(struct lttng_ctx **ctx); @@ -639,6 +661,7 @@ void synchronize_trace(void); int lttng_probe_register(struct lttng_probe_desc *desc); void lttng_probe_unregister(struct lttng_probe_desc *desc); +void lttng_probe_provider_unregister_events(struct lttng_probe_desc *desc); int lttng_fix_pending_events(void); int lttng_probes_init(void); void lttng_probes_exit(void); @@ -656,8 +679,35 @@ 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); #ifdef LTTNG_UST_HAVE_PERF_EVENT int lttng_add_perf_counter_to_ctx(uint32_t type, @@ -713,8 +763,17 @@ int lttng_session_active(void); typedef int (*t_statedump_func_ptr)(struct lttng_session *session); void lttng_handle_pending_statedump(void *owner); struct cds_list_head *_lttng_get_sessions(void); -struct lttng_enum *lttng_ust_enum_get(struct lttng_session *session, - const char *enum_name); + +struct lttng_enum *lttng_ust_enum_get_from_desc(struct lttng_session *session, + const struct lttng_enum_desc *enum_desc); + +void lttng_ust_dl_update(void *ip); +void lttng_ust_fixup_fd_tracker_tls(void); + +/* For backward compatibility. Leave those exported symbols in place. */ +extern struct lttng_ctx *lttng_static_ctx; +void lttng_context_init(void); +void lttng_context_exit(void); #ifdef __cplusplus }