X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Flttng-bytecode.h;h=6313b2cc179d973092a95ebb31605a06325782ab;hb=c2fb9c1c4f890840c02ad4b66a7cf69ae5dca6f7;hp=79a562bfb5c50f57ecff10958f126737e177bb4f;hpb=0b365677b4b159fa9aa2b98eb19f10f4a762fbe8;p=lttng-modules.git diff --git a/include/lttng/lttng-bytecode.h b/include/lttng/lttng-bytecode.h index 79a562bf..6313b2cc 100644 --- a/include/lttng/lttng-bytecode.h +++ b/include/lttng/lttng-bytecode.h @@ -71,6 +71,9 @@ enum object_type { OBJECT_TYPE_U32, OBJECT_TYPE_U64, + OBJECT_TYPE_SIGNED_ENUM, + OBJECT_TYPE_UNSIGNED_ENUM, + OBJECT_TYPE_DOUBLE, OBJECT_TYPE_STRING, OBJECT_TYPE_STRING_SEQUENCE, @@ -93,7 +96,7 @@ struct bytecode_get_index_data { * interpreter needs to find it from the event fields and types to * support variants. */ - const struct lttng_event_field *field; + const struct lttng_kernel_event_field *field; struct { size_t len; enum object_type type; @@ -105,7 +108,7 @@ struct bytecode_get_index_data { struct vstack_load { enum load_type type; enum object_type object_type; - const struct lttng_event_field *field; + const struct lttng_kernel_event_field *field; bool rev_bo; /* reverse byte order */ }; @@ -182,7 +185,7 @@ struct load_ptr { uint64_t u64; double d; } u; - const struct lttng_event_field *field; + const struct lttng_kernel_event_field *field; }; struct estack_entry { @@ -274,23 +277,26 @@ struct lttng_interpreter_output { size_t nr_elem; /* Inner type. */ - const struct lttng_type *nested_type; + const struct lttng_kernel_type_common *nested_type; } sequence; } u; }; const char *lttng_bytecode_print_op(enum bytecode_op op); -void lttng_bytecode_filter_sync_state(struct lttng_bytecode_runtime *runtime); +void lttng_bytecode_sync_state(struct lttng_bytecode_runtime *runtime); int lttng_bytecode_validate(struct bytecode_runtime *bytecode); -int lttng_bytecode_specialize(const struct lttng_event_desc *event_desc, +int lttng_bytecode_specialize(const struct lttng_kernel_event_desc *event_desc, struct bytecode_runtime *bytecode); -uint64_t lttng_bytecode_filter_interpret_false(void *filter_data, - struct lttng_probe_ctx *lttng_probe_ctx, - const char *filter_stack_data); -uint64_t lttng_bytecode_filter_interpret(void *filter_data, +int lttng_bytecode_interpret_error(struct lttng_bytecode_runtime *bytecode_runtime, + const char *stack_data, + struct lttng_probe_ctx *probe_ctx, + void *ctx); + +int lttng_bytecode_interpret(struct lttng_bytecode_runtime *kernel_bytecode, + const char *interpreter_stack_data, struct lttng_probe_ctx *lttng_probe_ctx, - const char *filter_stack_data); + void *caller_ctx); #endif /* _LTTNG_FILTER_H */