X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Ffilter.h;h=26538b5e932957382e3344349ec6f7ade0bddddf;hb=1242217a08db0fb08a4f8f7bb3a94b82647b17e4;hp=a9477870491d5bace0ee03eadb7be31a9bedd3bc;hpb=2dfda770cc6781ec372ee8dadd8eb4f6ab37375a;p=lttng-modules.git diff --git a/include/lttng/filter.h b/include/lttng/filter.h index a9477870..26538b5e 100644 --- a/include/lttng/filter.h +++ b/include/lttng/filter.h @@ -47,6 +47,7 @@ struct bytecode_runtime { enum entry_type { REG_S64, + REG_U64, REG_DOUBLE, REG_STRING, REG_STAR_GLOB_STRING, @@ -182,6 +183,7 @@ struct load_ptr { }; struct estack_entry { + enum entry_type type; union { int64_t v; @@ -204,6 +206,9 @@ struct estack { #define estack_ax_v ax #define estack_bx_v bx +#define estack_ax_t ax_t +#define estack_bx_t bx_t + #define estack_ax(stack, top) \ ({ \ BUG_ON((top) <= FILTER_STACK_EMPTY); \ @@ -216,19 +221,23 @@ struct estack { &(stack)->e[(top) - 1]; \ }) -#define estack_push(stack, top, ax, bx) \ +#define estack_push(stack, top, ax, bx, ax_t, bx_t) \ do { \ BUG_ON((top) >= FILTER_STACK_LEN - 1); \ (stack)->e[(top) - 1].u.v = (bx); \ + (stack)->e[(top) - 1].type = (bx_t); \ (bx) = (ax); \ + (bx_t) = (ax_t); \ ++(top); \ } while (0) -#define estack_pop(stack, top, ax, bx) \ +#define estack_pop(stack, top, ax, bx, ax_t, bx_t) \ do { \ BUG_ON((top) <= FILTER_STACK_EMPTY); \ (ax) = (bx); \ + (ax_t) = (bx_t); \ (bx) = (stack)->e[(top) - 2].u.v; \ + (bx_t) = (stack)->e[(top) - 2].type; \ (top)--; \ } while (0)