X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=liblttng-ust%2Ffilter-bytecode.h;h=38c5d51c04f84bdaf494f69a6317e8ea96a5819b;hb=499050383201feb03dc6ae7798fcc75acd79a9c9;hp=ab02b40ae33d959dd4e122a91f1f5ce53b5269a4;hpb=2f0145d1ef14717353a29e8d79d674bf0bdc2c4e;p=lttng-ust.git diff --git a/liblttng-ust/filter-bytecode.h b/liblttng-ust/filter-bytecode.h index ab02b40a..38c5d51c 100644 --- a/liblttng-ust/filter-bytecode.h +++ b/liblttng-ust/filter-bytecode.h @@ -67,6 +67,8 @@ enum filter_op { FILTER_OP_BIN_AND, FILTER_OP_BIN_OR, FILTER_OP_BIN_XOR, + + /* binary comparators */ FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, @@ -74,10 +76,40 @@ enum filter_op { FILTER_OP_GE, FILTER_OP_LE, + /* string binary comparator */ + FILTER_OP_EQ_STRING, + FILTER_OP_NE_STRING, + FILTER_OP_GT_STRING, + FILTER_OP_LT_STRING, + FILTER_OP_GE_STRING, + FILTER_OP_LE_STRING, + + /* s64 binary comparator */ + FILTER_OP_EQ_S64, + FILTER_OP_NE_S64, + FILTER_OP_GT_S64, + FILTER_OP_LT_S64, + FILTER_OP_GE_S64, + FILTER_OP_LE_S64, + + /* double binary comparator */ + FILTER_OP_EQ_DOUBLE, + FILTER_OP_NE_DOUBLE, + FILTER_OP_GT_DOUBLE, + FILTER_OP_LT_DOUBLE, + FILTER_OP_GE_DOUBLE, + FILTER_OP_LE_DOUBLE, + /* unary */ FILTER_OP_UNARY_PLUS, FILTER_OP_UNARY_MINUS, FILTER_OP_UNARY_NOT, + FILTER_OP_UNARY_PLUS_S64, + FILTER_OP_UNARY_MINUS_S64, + FILTER_OP_UNARY_NOT_S64, + FILTER_OP_UNARY_PLUS_DOUBLE, + FILTER_OP_UNARY_MINUS_DOUBLE, + FILTER_OP_UNARY_NOT_DOUBLE, /* logical */ FILTER_OP_AND, @@ -94,6 +126,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, }; @@ -121,6 +158,11 @@ struct logical_op { uint16_t skip_offset; /* bytecode insn, if skip second test */ } __attribute__((packed)); +struct cast_op { + filter_opcode_t op; + uint8_t reg; /* enum filter_register */ +} __attribute__((packed)); + struct return_op { filter_opcode_t op; } __attribute__((packed));