X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Fust-events-internal.h;h=0fc0b795de3e08179e98ada090ad963e0e1d6313;hb=621c07fc1b90c12ec997d539770da1937d11c450;hp=074a7b69bf44fcabfe544a191b3031fefbfe0f45;hpb=d8d2416dab454962b90222ba46c82cdce0c666a4;p=lttng-ust.git diff --git a/liblttng-ust/ust-events-internal.h b/liblttng-ust/ust-events-internal.h index 074a7b69..0fc0b795 100644 --- a/liblttng-ust/ust-events-internal.h +++ b/liblttng-ust/ust-events-internal.h @@ -51,14 +51,20 @@ struct lttng_event_notifier_enabler { uint64_t user_token; /* User-provided token */ }; -struct lttng_ust_filter_bytecode_node { +enum lttng_ust_bytecode_node_type { + LTTNG_UST_BYTECODE_NODE_TYPE_FILTER, +}; + +struct lttng_ust_bytecode_node { + enum lttng_ust_bytecode_node_type type; struct cds_list_head node; struct lttng_enabler *enabler; - /* - * struct lttng_ust_filter_bytecode has var. sized array, must - * be last field. - */ - struct lttng_ust_filter_bytecode bc; + struct { + uint32_t len; + uint32_t reloc_offset; + uint64_t seqnum; + char data[]; + } bc; }; struct lttng_ust_excluder_node { @@ -122,8 +128,9 @@ int lttng_event_enabler_disable(struct lttng_event_enabler *enabler); * events related to this enabler. */ LTTNG_HIDDEN -int lttng_event_enabler_attach_bytecode(struct lttng_event_enabler *enabler, - struct lttng_ust_filter_bytecode_node *bytecode); +int lttng_event_enabler_attach_filter_bytecode( + struct lttng_event_enabler *enabler, + struct lttng_ust_bytecode_node *bytecode); /* * Attach an application context to an event enabler. @@ -143,16 +150,16 @@ int lttng_event_enabler_attach_exclusion(struct lttng_event_enabler *enabler, struct lttng_ust_excluder_node *excluder); /* - * Synchronize bytecodes for the enabler and the event. + * Synchronize bytecodes for the enabler and the instance (event or trigger). * - * This function goes over all bytecode programs of the event enabler to ensure - * each is linked to the provided event. + * This function goes over all bytecode programs of the enabler (event or + * trigger enabler) to ensure each is linked to the provided instance. */ LTTNG_HIDDEN void lttng_enabler_link_bytecode(const struct lttng_event_desc *event_desc, struct lttng_ctx **ctx, - struct cds_list_head *bytecode_runtime_head, - struct lttng_enabler *enabler); + struct cds_list_head *instance_bytecode_runtime_head, + struct cds_list_head *enabler_bytecode_runtime_head); /* * Allocate and initialize a `struct lttng_event_notifier_group` object. @@ -210,9 +217,9 @@ int lttng_event_notifier_enabler_disable( * all event notifiers related to this enabler. */ LTTNG_HIDDEN -int lttng_event_notifier_enabler_attach_bytecode( +int lttng_event_notifier_enabler_attach_filter_bytecode( struct lttng_event_notifier_enabler *event_notifier_enabler, - struct lttng_ust_filter_bytecode_node *bytecode); + struct lttng_ust_bytecode_node *bytecode); /* * Attach exclusion list to `struct lttng_event_notifier_enabler` and all