diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/scmp_bpf_disasm.c | 24 |
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: |