diff options
author | Patrick McHardy <kaber@trash.net> | 2016-03-26 10:04:48 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2016-04-24 21:51:31 +0100 |
commit | 3b219e5dd3a558228d67d97e0e2ac3e94c88df92 (patch) | |
tree | 26eb77c8be3c4720a9a858328fbe5931841edc94 /include | |
parent | 3b79cab7eb64df9922922eed76a37c93cf207417 (diff) |
payload: move payload depedency tracking to payload.c
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/payload.h | 21 |
1 files changed, 21 insertions, 0 deletions
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); |