X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fevent-expr-internal.h;h=9d717b8674c0e1a9e08ad635c03717f358ed91b0;hb=a0377dfefe40662ba7d68617bce6ff467114136c;hp=88fa695de9d154882e9a8d44ed5d9865594126df;hpb=48c475643635d97d56fc251ca0b54e67ff25a51f;p=lttng-tools.git diff --git a/include/lttng/event-expr-internal.h b/include/lttng/event-expr-internal.h index 88fa695de..9d717b867 100644 --- a/include/lttng/event-expr-internal.h +++ b/include/lttng/event-expr-internal.h @@ -8,9 +8,12 @@ #ifndef LTTNG_EVENT_EXPR_INTERNAL_H #define LTTNG_EVENT_EXPR_INTERNAL_H -#include +#include #include +struct lttng_bytecode; +struct mi_writer; + struct lttng_event_expr { enum lttng_event_expr_type type; }; @@ -47,11 +50,20 @@ struct lttng_event_expr_array_field_element { static inline bool lttng_event_expr_is_lvalue(const struct lttng_event_expr *expr) { - assert(expr); + LTTNG_ASSERT(expr); return expr->type == LTTNG_EVENT_EXPR_TYPE_EVENT_PAYLOAD_FIELD || expr->type == LTTNG_EVENT_EXPR_TYPE_CHANNEL_CONTEXT_FIELD || expr->type == LTTNG_EVENT_EXPR_TYPE_APP_SPECIFIC_CONTEXT_FIELD || expr->type == LTTNG_EVENT_EXPR_TYPE_ARRAY_FIELD_ELEMENT; } +LTTNG_HIDDEN +int lttng_event_expr_to_bytecode(const struct lttng_event_expr *expr, + struct lttng_bytecode **bytecode_out); + +LTTNG_HIDDEN +enum lttng_error_code lttng_event_expr_mi_serialize( + const struct lttng_event_expr *expression, + struct mi_writer *writer); + #endif /* LTTNG_EVENT_EXPR_INTERNAL_H */