summaryrefslogtreecommitdiffstats
path: root/include/payload.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/payload.h')
-rw-r--r--include/payload.h21
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);