X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-events.h;h=44b8d4c4878819d57b2a13b7130e9c28862540d7;hb=d37ecb3fc622dee6f80f84c21f38d32eef407262;hp=41164ac348eb1edf14e83960f07027205cb037ca;hpb=c42416df21bb28b9b19ca509f7242f660c5469b2;p=lttng-ust.git diff --git a/include/lttng/ust-events.h b/include/lttng/ust-events.h index 41164ac3..44b8d4c4 100644 --- a/include/lttng/ust-events.h +++ b/include/lttng/ust-events.h @@ -315,6 +315,7 @@ struct lttng_ctx_value { enum lttng_ust_dynamic_type sel; union { int64_t s64; + uint64_t u64; const char *str; double d; } u; @@ -434,6 +435,8 @@ enum lttng_bytecode_interpreter_ret { /* Other bits are kept for future use. */ }; +struct lttng_interpreter_output; + /* * This structure is used in the probes. More specifically, the `filter` and * `node` fields are explicity used in the probes. When modifying this @@ -446,6 +449,9 @@ struct lttng_bytecode_runtime { union { uint64_t (*filter)(void *interpreter_data, const char *interpreter_stack_data); + uint64_t (*capture)(void *interpreter_data, + const char *interpreter_stack_data, + struct lttng_interpreter_output *interpreter_output); } interpreter_funcs; int link_failed; struct cds_list_head node; /* list of bytecode runtime in event */ @@ -506,7 +512,9 @@ struct lttng_event_notifier { uint64_t user_token; int enabled; int registered; /* has reg'd tracepoint probe */ + size_t num_captures; /* Needed to allocate the msgpack array. */ struct cds_list_head filter_bytecode_runtime_head; + struct cds_list_head capture_bytecode_runtime_head; int has_enablers_without_bytecode; struct cds_list_head enablers_ref_head; const struct lttng_event_desc *desc; @@ -694,7 +702,8 @@ int lttng_session_statedump(struct lttng_session *session); void lttng_session_destroy(struct lttng_session *session); void lttng_event_notifier_notification_send( - struct lttng_event_notifier *event_notifier); + struct lttng_event_notifier *event_notifier, + const char *stack_data); struct lttng_channel *lttng_channel_create(struct lttng_session *session, const char *transport_name, @@ -712,8 +721,6 @@ 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); -int lttng_session_context_init(struct lttng_ctx **ctx); - void lttng_transport_register(struct lttng_transport *transport); void lttng_transport_unregister(struct lttng_transport *transport); @@ -850,6 +857,8 @@ int lttng_enabler_attach_exclusion(struct lttng_enabler *enabler, void lttng_enabler_event_link_bytecode(struct lttng_event *event, struct lttng_enabler *enabler); void lttng_filter_sync_state(struct lttng_bytecode_runtime *runtime); +int lttng_session_context_init(struct lttng_ctx **ctx); + #ifdef __cplusplus }