X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-filter.h;h=c3f06c4bcbed1524fea98afb83256b2686f30cc8;hb=266cef247ceb5d1b4d266a987b8bfcc53d8965ca;hp=98b97c20bcd774ab89021012291ffc0ed6c51d06;hpb=07dfc1d0e4b093ad02682499a702dc11e54e8302;p=lttng-modules.git diff --git a/lttng-filter.h b/lttng-filter.h index 98b97c20..c3f06c4b 100644 --- a/lttng-filter.h +++ b/lttng-filter.h @@ -25,8 +25,8 @@ #include -#include "lttng-events.h" -#include "filter-bytecode.h" +#include +#include /* Filter stack length, in number of entries */ #define FILTER_STACK_LEN 10 /* includes 2 dummy */ @@ -121,8 +121,10 @@ struct estack_entry { struct { const char *str; + const char __user *user_str; size_t seq_len; int literal; /* is string literal ? */ + int user; /* is string from userspace ? */ } s; } u; }; @@ -137,19 +139,19 @@ struct estack { #define estack_ax(stack, top) \ ({ \ - WARN_ON_ONCE((top) <= FILTER_STACK_EMPTY); \ + BUG_ON((top) <= FILTER_STACK_EMPTY); \ &(stack)->e[top]; \ }) #define estack_bx(stack, top) \ ({ \ - WARN_ON_ONCE((top) <= FILTER_STACK_EMPTY + 1); \ + BUG_ON((top) <= FILTER_STACK_EMPTY + 1); \ &(stack)->e[(top) - 1]; \ }) #define estack_push(stack, top, ax, bx) \ do { \ - WARN_ON_ONCE((top) >= FILTER_STACK_LEN - 1); \ + BUG_ON((top) >= FILTER_STACK_LEN - 1); \ (stack)->e[(top) - 1].u.v = (bx); \ (bx) = (ax); \ ++(top); \ @@ -157,7 +159,7 @@ struct estack { #define estack_pop(stack, top, ax, bx) \ do { \ - WARN_ON_ONCE((top) <= FILTER_STACK_EMPTY); \ + BUG_ON((top) <= FILTER_STACK_EMPTY); \ (ax) = (bx); \ (bx) = (stack)->e[(top) - 2].u.v; \ (top)--; \ @@ -169,8 +171,10 @@ int lttng_filter_validate_bytecode(struct bytecode_runtime *bytecode); int lttng_filter_specialize_bytecode(struct bytecode_runtime *bytecode); uint64_t lttng_filter_false(void *filter_data, + struct lttng_probe_ctx *lttng_probe_ctx, const char *filter_stack_data); uint64_t lttng_filter_interpret_bytecode(void *filter_data, + struct lttng_probe_ctx *lttng_probe_ctx, const char *filter_stack_data); #endif /* _LTTNG_FILTER_H */