aboutgitcodelistschat:MatrixIRC
path: root/cooker/emit.c
diff options
context:
space:
mode:
Diffstat (limited to 'cooker/emit.c')
-rw-r--r--cooker/emit.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/cooker/emit.c b/cooker/emit.c
index 28afd29..ce325f1 100644
--- a/cooker/emit.c
+++ b/cooker/emit.c
@@ -14,6 +14,7 @@
#include "filter.h"
#include "util.h"
#include "emit.h"
+#include "seccomp_profile.h"
static const char *type_str[] = {
"UNDEF", "NONE",
@@ -549,8 +550,8 @@ static void gluten_link(struct gluten_ctx *g, enum jump_type type,
}
}
-void emit_bpf_arg(int index, enum type type, union value v, union value mask,
- enum op_cmp_type cmp)
+static void emit_bpf_filter_arg(int index, enum type type, union value v,
+ union value mask, enum op_cmp_type cmp)
{
struct bpf_field bpf;
@@ -575,6 +576,15 @@ void emit_bpf_arg(int index, enum type type, union value v, union value mask,
filter_add_check(&bpf);
}
+void emit_bpf_arg(int index, enum type type, union value v, union value mask,
+ enum op_cmp_type cmp, enum scmp_mode mode)
+{
+ if (mode == SCMP_FILTER)
+ emit_bpf_filter_arg(index, type, v, mask, cmp);
+ else
+ scmp_profile_add_check(index, v, mask, cmp);
+}
+
void link_block(struct gluten_ctx *g)
{
debug(" Linking block...");