X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Ffilter-bytecode.h;h=df1b34c34eb55ad57c6b035cbfca5a855375cda6;hp=a846ec7a72cc30d9213d65139dc70224d3866392;hb=8564ccbd529ed367de6a0c86f428dda64e14cf5d;hpb=aa449dc58147b75aa0b349aa0eaae92c758db01d diff --git a/src/lib/lttng-ctl/filter-bytecode.h b/src/lib/lttng-ctl/filter-bytecode.h index a846ec7a7..df1b34c34 100644 --- a/src/lib/lttng-ctl/filter-bytecode.h +++ b/src/lib/lttng-ctl/filter-bytecode.h @@ -29,12 +29,6 @@ * offsets are absolute from start of bytecode. */ -enum filter_register { - REG_R0 = 0, - REG_R1 = 1, - REG_ERROR, -}; - struct field_ref { /* Initially, symbol offset. After link, field offset. */ uint16_t offset; @@ -115,10 +109,6 @@ enum filter_op { /* logical */ FILTER_OP_AND, FILTER_OP_OR, - FILTER_OP_AND_S64, - FILTER_OP_OR_S64, - FILTER_OP_AND_DOUBLE, - FILTER_OP_OR_DOUBLE, /* load */ FILTER_OP_LOAD_FIELD_REF, @@ -131,6 +121,11 @@ enum filter_op { FILTER_OP_LOAD_S64, FILTER_OP_LOAD_DOUBLE, + /* cast */ + FILTER_OP_CAST_TO_S64, + FILTER_OP_CAST_DOUBLE_TO_S64, + FILTER_OP_CAST_NOP, + NR_FILTER_OPS, }; @@ -138,7 +133,6 @@ typedef uint8_t filter_opcode_t; struct load_op { filter_opcode_t op; - uint8_t reg; /* enum filter_register */ char data[0]; /* data to load. Size known by enum filter_opcode and null-term char. */ } __attribute__((packed)); @@ -149,7 +143,6 @@ struct binary_op { struct unary_op { filter_opcode_t op; - uint8_t reg; /* enum filter_register */ } __attribute__((packed)); /* skip_offset is absolute from start of bytecode */ @@ -158,6 +151,10 @@ struct logical_op { uint16_t skip_offset; /* bytecode insn, if skip second test */ } __attribute__((packed)); +struct cast_op { + filter_opcode_t op; +} __attribute__((packed)); + struct return_op { filter_opcode_t op; } __attribute__((packed));