Insn.BpfOp.encode: def of bend-osdev-bpf@0.1.0.0 Import: import bend-osdev-bpf@0.1.0.0/insn.bend as Insn Lines 192-230 of bend-osdev-bpf@0.1.0.0/insn.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&start_line=192&end_line=230 import Base # the sock_filter of an instruction; unused fields are 0 def BpfOp.encode(op: BpfOp) -> BpfRaw: match op: case BpfLdAbs{size, k}: BpfRaw{U32.or(32, BpfSize.bits(size)), 0, 0, k} case BpfLdInd{size, k}: BpfRaw{U32.or(64, BpfSize.bits(size)), 0, 0, k} case BpfLdImm{k}: BpfRaw{0, 0, 0, k} case BpfLdLen{}: BpfRaw{128, 0, 0, 0} case BpfLdMem{k}: BpfRaw{96, 0, 0, k} case BpfLdxImm{k}: BpfRaw{1, 0, 0, k} case BpfLdxMem{k}: BpfRaw{97, 0, 0, k} case BpfLdxLen{}: BpfRaw{129, 0, 0, 0} case BpfLdxMsh{k}: BpfRaw{177, 0, 0, k} case BpfSt{k}: BpfRaw{2, 0, 0, k} case BpfStx{k}: BpfRaw{3, 0, 0, k} case BpfAlu{o, +src}: BpfRaw{U32.or(4, U32.or(BpfAluOp.bits(o), BpfSrc.bits(src))), 0, 0, BpfSrc.k(src)} case BpfNeg{}: BpfRaw{132, 0, 0, 0} case BpfJa{k}: BpfRaw{5, 0, 0, k} case BpfJmp{c, +src, jt, jf}: BpfRaw{U32.or(5, U32.or(BpfCond.bits(c), BpfSrc.bits(src))), jt, jf, BpfSrc.k(src)} case BpfRet{r}: BpfRval.encode(r) case BpfTax{}: BpfRaw{7, 0, 0, 0} case BpfTxa{}: BpfRaw{135, 0, 0, 0} Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.or https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfAluOp.bits https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfCond.bits https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfOp https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfRaw https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfRval.encode https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfSize.bits https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfSrc.bits https://jend.leeeet.dev/definition.txt?path=bend-osdev-bpf@0.1.0.0/insn.bend&name=BpfSrc.k