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}

Uses (9)

Used by (8)