#include <linux/kernel.h>
#include <lttng/events.h>
+#include <lttng/events-internal.h>
#include <lttng/bytecode.h>
/* Interpreter stack length, in number of entries */
size_t data_alloc_len;
char *data;
uint16_t len;
- char code[0];
+ char code[];
};
enum entry_type {
size_t len;
enum object_type type;
bool rev_bo; /* reverse byte order */
+ bool user; /* from userspace */
} elem;
};
enum object_type object_type;
const struct lttng_kernel_event_field *field;
bool rev_bo; /* reverse byte order */
+ bool user; /* from userspace */
};
struct vstack_entry {
const void *ptr;
size_t nr_elem;
bool rev_bo;
+ bool user; /* from userspace */
/* Temporary place-holders for contexts. */
union {
int64_t s64;
const char __user *user_str;
size_t seq_len;
enum estack_string_literal_type literal_type;
- int user; /* is string from userspace ? */
+ bool user; /* is string from userspace ? */
} s;
struct load_ptr ptr;
} u;
struct {
const char *str;
+ const char __user *user_str;
size_t len;
+ bool user; /* is string from userspace ? */
} str;
struct {
const void *ptr;
void lttng_bytecode_sync_state(struct lttng_kernel_bytecode_runtime *runtime);
int lttng_bytecode_validate(struct bytecode_runtime *bytecode);
+int lttng_bytecode_validate_load(struct bytecode_runtime *bytecode);
int lttng_bytecode_specialize(const struct lttng_kernel_event_desc *event_desc,
struct bytecode_runtime *bytecode);
int lttng_bytecode_interpret_error(struct lttng_kernel_bytecode_runtime *bytecode_runtime,
const char *stack_data,
- struct lttng_probe_ctx *probe_ctx,
+ struct lttng_kernel_probe_ctx *probe_ctx,
void *ctx);
int lttng_bytecode_interpret(struct lttng_kernel_bytecode_runtime *kernel_bytecode,
const char *interpreter_stack_data,
- struct lttng_probe_ctx *lttng_probe_ctx,
+ struct lttng_kernel_probe_ctx *lttng_probe_ctx,
void *caller_ctx);
#endif /* _LTTNG_FILTER_H */