def fld.wr

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

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

202# units k .. k + n - 1 written with their share of x
203def fld.wr(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, n: Nat, +f: AmlFieldDesc, +k: Nat, +x: W.W64, r: Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>) -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>:
204  match n:
205    case 0n:
206      r
207    case 1n+p:
208      match r:
209        case Fail{e}:
210          Fail{e}
211        case Done{Hs.AmlHostAns{h, v}}:
212          +u = fld.unit(f, k)
213          fld.wr(~H, ~io, p, f, 1n+k, x, fld.wr.fits(~H, ~io, AmlUnit.fits(u), h, f, u, x))

Uses (10)

Used by (1)