def AmlM.run.go

bend-osdev-acpi@0.1.1.0 · aml_interp.bend:2930

import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_host.bend as Hs

2930# h: m has halted; used: the steps taken so far
2931def AmlM.run.go(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, n: Nat, h: Bool, m: AmlMachine<H>, used: Nat) -> AmlRun<H>:
2932  match n:
2933    case 0n:
2934      AmlRun{m, used}
2935    case 1n+p:
2936      match h:
2937        case True{}:
2938          AmlRun{m, used}
2939        case False{}:
2940          +m2 = AmlM.step(~H, ~io, m)
2941          AmlM.run.go(~H, ~io, p, AmlMachine.halted(H, m2), m2, 1n+used)

Uses (10)

Used by (3)