def AmlM.step

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

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

2899# One step of the machine
2900def AmlM.step(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, m: AmlMachine<H>) -> AmlMachine<H>:
2901  match m:
2902    case AmlMachine{md, +c, fs, +w}:
2903      match md:
2904        case AmlMExec{}:
2905          in.exec(~H, ~io, cur.at_end(c), c, fs, w)
2906        case AmlMEval{k}:
2907          in.eval(~H, ~io, k, c, fs, w)
2908        case AmlMGive{v}:
2909          in.give.to(~H, ~io, fs, v, c, w)
2910        case AmlMDone{v}:
2911          AmlMachine{AmlMDone{v}, c, fs, w}
2912        case AmlMFail{e}:
2913          AmlMachine{AmlMFail{e}, c, fs, w}

Uses (10)

Used by (2)