Lines Matching defs:expr
77 static void nft_bitwise_fast_eval(const struct nft_expr *expr,
80 const struct nft_bitwise_fast_expr *priv = nft_expr_priv(expr);
87 static void nft_cmp_fast_eval(const struct nft_expr *expr,
90 const struct nft_cmp_fast_expr *priv = nft_expr_priv(expr);
97 static void nft_cmp16_fast_eval(const struct nft_expr *expr,
100 const struct nft_cmp16_fast_expr *priv = nft_expr_priv(expr);
147 static bool nft_payload_fast_eval(const struct nft_expr *expr,
151 const struct nft_payload *priv = nft_expr_priv(expr);
206 static void expr_call_ops_eval(const struct nft_expr *expr,
216 e = (unsigned long)expr->ops->eval;
219 return fun(expr, regs, pkt); } while (0)
240 expr->ops->eval(expr, regs, pkt);
244 #define nft_rule_expr_next(expr) ((void *)expr) + expr->ops->size
247 #define nft_rule_dp_for_each_expr(expr, last, rule) \
248 for ((expr) = nft_rule_expr_first(rule), (last) = nft_rule_expr_last(rule); \
249 (expr) != (last); \
250 (expr) = nft_rule_expr_next(expr))
257 const struct nft_expr *expr, *last;
279 nft_rule_dp_for_each_expr(expr, last, rule) {
280 if (expr->ops == &nft_cmp_fast_ops)
281 nft_cmp_fast_eval(expr, ®s);
282 else if (expr->ops == &nft_cmp16_fast_ops)
283 nft_cmp16_fast_eval(expr, ®s);
284 else if (expr->ops == &nft_bitwise_fast_ops)
285 nft_bitwise_fast_eval(expr, ®s);
286 else if (expr->ops != &nft_payload_fast_ops ||
287 !nft_payload_fast_eval(expr, ®s, pkt))
288 expr_call_ops_eval(expr, ®s, pkt);