struct cds_list_head head;
};
+/* Kernel event rule token list */
+struct ltt_kernel_token_event_rule_list {
+ struct cds_list_head head;
+};
+
/* Channel stream list */
struct ltt_kernel_stream_list {
struct cds_list_head head;
struct lttng_kernel_event *event;
struct cds_list_head list;
char *filter_expression;
- struct lttng_filter_bytecode *filter;
+ struct lttng_bytecode *filter;
+ struct lttng_userspace_probe_location *userspace_probe_location;
+};
+
+/* Kernel event */
+struct ltt_kernel_token_event_rule {
+ int fd;
+ int enabled;
+ enum lttng_event_type type;
+ struct lttng_event_rule *event_rule;
+ struct cds_list_head list;
+ uint64_t token;
+ const struct lttng_bytecode *filter;
struct lttng_userspace_probe_location *userspace_probe_location;
};
struct ltt_kernel_event *trace_kernel_find_event(
char *name, struct ltt_kernel_channel *channel,
enum lttng_event_type type,
- struct lttng_filter_bytecode *filter);
+ struct lttng_bytecode *filter);
struct ltt_kernel_channel *trace_kernel_get_channel_by_name(
const char *name, struct ltt_kernel_session *session);
+struct ltt_kernel_token_event_rule *trace_kernel_find_trigger_by_token(
+ struct ltt_kernel_token_event_rule_list *list,
+ uint64_t token);
+
/*
* Create functions malloc() the data structure.
*/
struct ltt_kernel_channel *trace_kernel_create_channel(
struct lttng_channel *chan);
enum lttng_error_code trace_kernel_create_event(struct lttng_event *ev,
- char *filter_expression, struct lttng_filter_bytecode *filter,
+ char *filter_expression, struct lttng_bytecode *filter,
struct ltt_kernel_event **kernel_event);
struct ltt_kernel_metadata *trace_kernel_create_metadata(void);
struct ltt_kernel_stream *trace_kernel_create_stream(const char *name,
unsigned int count);
struct ltt_kernel_context *trace_kernel_create_context(
struct lttng_kernel_context *ctx);
+enum lttng_error_code trace_kernel_create_token_event_rule(
+ struct lttng_event_rule *event_rule,
+ uint64_t token,
+ struct ltt_kernel_token_event_rule **kernel_token_event_rule);
struct ltt_kernel_context *trace_kernel_copy_context(
struct ltt_kernel_context *ctx);
+enum lttng_error_code trace_kernel_init_trigger_from_event_rule(const struct lttng_event_rule *rule,
+ struct lttng_kernel_trigger *kernel_trigger);
/*
* Destroy functions free() the data structure and remove from linked list if
void trace_kernel_destroy_event(struct ltt_kernel_event *event);
void trace_kernel_destroy_stream(struct ltt_kernel_stream *stream);
void trace_kernel_destroy_context(struct ltt_kernel_context *ctx);
+void trace_kernel_destroy_token_event_rule(struct ltt_kernel_token_event_rule *rule);
void trace_kernel_free_session(struct ltt_kernel_session *session);
#endif /* _LTT_TRACE_KERNEL_H */