def fld.rd

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

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

152# units k .. k + n - 1, read and joined into the value in r
153def fld.rd(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, n: Nat, +f: AmlFieldDesc, +k: Nat, r: Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>) -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>:
154  match n:
155    case 0n:
156      r
157    case 1n+p:
158      match r:
159        case Fail{e}:
160          Fail{e}
161        case Done{Hs.AmlHostAns{h, acc}}:
162          +u = fld.unit(f, k)
163          fld.rd(~H, ~io, p, f, 1n+k, fld.rd.next(H, u, acc, fld.rd.unit(~H, ~io, AmlUnit.fits(u), h, fld.access(f, AmlUnit.addr(u)))))

Uses (12)

Used by (1)