def in.term.rest.pick

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

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_value.bend as V
import bend-osdev-acpi@0.1.1.0/aml_host.bend as Hs

2657def in.term.rest.pick(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, local: Bool, arg: Bool, name: Bool, k: AmlArgK, +n: Nat, +b: U32, +exec: Bool, c: AmlCur, fs: List<&2, AmlFrame>, +w: AmlWorld<H>) -> AmlMachine<H>:
2658  match local:
2659    case True{}:
2660      +i = Nat.sub(n, 96n)
2661      in.lvar(H, k, V.AmlLLocal{i}, in.ctx.local(H, w, i), c, fs, w)
2662    case False{}:
2663      match arg:
2664        case True{}:
2665          +i = Nat.sub(n, 104n)
2666          in.lvar(H, k, V.AmlLArg{i}, in.ctx.arg(H, w, i), c, fs, w)
2667        case False{}:
2668          match name:
2669            case True{}:
2670              in.name.go(~H, ~io, cur.name(in.unread(b, c)), k, fs, w)
2671            case False{}:
2672              in.expr(~H, ~io, n, b, in.kinds(n), exec, c, fs, w)

Uses (23)

Used by (1)