def in.read_loc
bend-osdev-acpi@0.1.1.0 · aml_interp.bend:614
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_ns.bend as S
import bend-osdev-acpi@0.1.1.0/aml_host.bend as Hs
614
615def in.read_loc(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, l: V.AmlLoc, +w: AmlWorld<H>) -> Result<&2, &2, E.AcpiError, AmlRead<H>>:
616 match l:
617 case V.AmlLName{+p}:
618 +q = in.unalias(AmlWorld.ns(H, w), p)
619 in.read_obj(~H, ~io, w, q, S.AmlNs.get(AmlWorld.ns(H, w), q))
620 case V.AmlLLocal{i}:
621 Done{AmlRead{w, in.ctx.local(H, w, i)}}
622 case V.AmlLArg{i}:
623 Done{AmlRead{w, in.ctx.arg(H, w, i)}}
624 case V.AmlLIndex{base, +i}:
625 in.elem.rd(H, in.read_loc(~H, ~io, base, w), i)
626 case V.AmlLElem{v, +i}:
627 in.wrap(H, w, AmlValue.element(v, i))
628 case V.AmlLDebug{}:
629 Done{AmlRead{w, V.AmlUninit{}}}
630 case V.AmlLNone{}:
631 Done{AmlRead{w, V.AmlUninit{}}}