def bpf_run.go
bend-osdev-bpf@0.1.0.0 · bpf.bend:321
import bend-osdev-bpf@0.1.0.0/bpf.bend as Bpf
import Base
import bend-osdev-bpf@0.1.0.0/insn.bend as I
321def bpf_run.go(xs: List<&2, I.BpfOp>, cur: BpfStep, +inp: BpfInput) -> Result<&2, &2, I.BpfError, U32>:
322 match xs:
323 case Nil{}:
324 match cur:
325 case BpfNext{skip, st}:
326 Fail{I.BpfErrFellOff{}}
327 case BpfStop{v}:
328 Done{v}
329 case BpfFault{e}:
330 Fail{e}
331 case Con{op, t}:
332 match cur:
333 case BpfNext{skip, st}:
334 match skip:
335 case 0n:
336 bpf_run.go(t, bpf_exec(op, st, inp), inp)
337 case 1n+s:
338 bpf_run.go(t, BpfNext{s, st}, inp)
339 case BpfStop{v}:
340 Done{v}
341 case BpfFault{e}:
342 Fail{e}