summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDavid Drysdale <drysdale@google.com>2016-05-05 14:40:45 +0100
committerPaul Moore <paul@paul-moore.com>2016-05-05 18:29:19 -0400
commit6590589fe5893b6780566b4c4adefad29690831e (patch)
tree2766e3462aa735f1b67b0b41a111f461a3fdbc3c /tools
parent53c2b76cad83074242a4d353632b196fb54fa9c5 (diff)
downloadlibseccomp-6590589fe5893b6780566b4c4adefad29690831e.tar.gz
tools: add missing ALU operations in bpf.h
The disassembler and local constants are missing the xor and mod operations. Unlikely to occur, but it's nice to be complete. Signed-off-by: David Drysdale <drysdale@google.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/bpf.h3
-rw-r--r--tools/scmp_bpf_disasm.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/bpf.h b/tools/bpf.h
index 46f270f..7679d01 100644
--- a/tools/bpf.h
+++ b/tools/bpf.h
@@ -101,6 +101,9 @@ typedef struct sock_filter bpf_instr_raw;
#define BPF_LSH 0x60
#define BPF_RSH 0x70
#define BPF_NEG 0x80
+#define BPF_MOD 0x90
+#define BPF_XOR 0xa0
+
/* BPF_JMP */
#define BPF_JA 0x00
#define BPF_JEQ 0x10
diff --git a/tools/scmp_bpf_disasm.c b/tools/scmp_bpf_disasm.c
index e8e376b..05590f4 100644
--- a/tools/scmp_bpf_disasm.c
+++ b/tools/scmp_bpf_disasm.c
@@ -131,6 +131,12 @@ static const char *bpf_decode_op(const bpf_instr_raw *bpf)
case BPF_ALU+BPF_NEG+BPF_K:
case BPF_ALU+BPF_NEG+BPF_X:
return "neg";
+ case BPF_ALU+BPF_MOD+BPF_K:
+ case BPF_ALU+BPF_MOD+BPF_X:
+ return "mod";
+ case BPF_ALU+BPF_XOR+BPF_K:
+ case BPF_ALU+BPF_XOR+BPF_X:
+ return "xor";
case BPF_JMP+BPF_JA+BPF_K:
case BPF_JMP+BPF_JA+BPF_X:
return "jmp";