def fld.ix.rd

bend-osdev-acpi@0.1.1.0 · aml_field.bend:354

import bend-osdev-acpi@0.1.1.0/aml_field.bend as AmlField
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

354def fld.ix.rd(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, n: Nat, +idx: AmlFieldDesc, +dat: AmlFieldDesc, +f: AmlFieldDesc, +k: Nat, r: Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>) -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>:
355  match n:
356    case 0n:
357      r
358    case 1n+p:
359      match r:
360        case Fail{e}:
361          Fail{e}
362        case Done{Hs.AmlHostAns{h, acc}}:
363          +u = fld.unit(f, k)
364          fld.ix.rd(~H, ~io, p, idx, dat, f, 1n+k, fld.ix.rd.k(~H, ~io, dat, u, acc, AmlField.write_int(~H, ~io, idx, h, AmlUnit.addr(u))))

Uses (10)

Used by (1)