From 3b219e5dd3a558228d67d97e0e2ac3e94c88df92 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Sat, 26 Mar 2016 10:04:48 +0000 Subject: payload: move payload depedency tracking to payload.c Signed-off-by: Patrick McHardy --- include/payload.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'include/payload.h') diff --git a/include/payload.h b/include/payload.h index fae3c673..eb9ff17d 100644 --- a/include/payload.h +++ b/include/payload.h @@ -17,6 +17,27 @@ extern int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, extern int exthdr_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, struct stmt **res); +/** + * struct payload_dep_ctx - payload protocol dependency tracking + * + * @pbase: protocol base of last dependency match + * @pdep: last dependency match + * @prev: previous statement + */ +struct payload_dep_ctx { + enum proto_bases pbase; + struct stmt *pdep; + struct stmt *prev; +}; + +extern void payload_dependency_store(struct payload_dep_ctx *ctx, + struct stmt *stmt, + enum proto_bases base); +extern void __payload_dependency_kill(struct payload_dep_ctx *ctx, + enum proto_bases base); +extern void payload_dependency_kill(struct payload_dep_ctx *ctx, + struct expr *expr); + extern bool payload_can_merge(const struct expr *e1, const struct expr *e2); extern struct expr *payload_expr_join(const struct expr *e1, const struct expr *e2); -- cgit v1.2.3