summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/scmp_bpf_disasm.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/scmp_bpf_disasm.c b/tools/scmp_bpf_disasm.c
index b412759..911fd85 100644
--- a/tools/scmp_bpf_disasm.c
+++ b/tools/scmp_bpf_disasm.c
@@ -199,6 +199,18 @@ static void bpf_decode_args(const bpf_instr_raw *bpf, unsigned int line)
case BPF_MEM:
printf("$temp[%u]", bpf->k);
break;
+ case BPF_IMM:
+ printf("%u", bpf->k);
+ break;
+ case BPF_IND:
+ printf("$data[X + %u]", bpf->k);
+ break;
+ case BPF_LEN:
+ printf("len($data)");
+ break;
+ case BPF_MSH:
+ printf("4 * $data[%u] & 0x0f", bpf->k);
+ break;
}
break;
case BPF_ST:
@@ -312,6 +324,18 @@ static void bpf_dot_decode_args(const bpf_instr_raw *bpf, unsigned int line)
case BPF_MEM:
printf(" $temp[%u]\",shape=parallelogram]\n", bpf->k);
break;
+ case BPF_IMM:
+ printf(" %u\",shape=parallelogram]\n", bpf->k);
+ break;
+ case BPF_IND:
+ printf(" $data[X + %u]\",shape=parallelogram]\n", bpf->k);
+ break;
+ case BPF_LEN:
+ printf(" len($data)\",shape=parallelogram]\n");
+ break;
+ case BPF_MSH:
+ printf(" 4 * $data[%u] & 0x0f\",shape=parallelogram]\n", bpf->k);
+ break;
}
break;
case BPF_ST: