def fld.keep
bend-osdev-acpi@0.1.1.0 · aml_field.bend:171
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
171
172
173def fld.keep(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, whole: Bool, rule: Nat, h: H, +a: Hs.AmlAccess) -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>:
174 match whole:
175 case True{}:
176 Done{Hs.AmlHostAns{h, W.W64.zero()}}
177 case False{}:
178 match rule:
179 case 1n:
180 Done{Hs.AmlHostAns{h, W.W64.max()}}
181 case 2n:
182 Done{Hs.AmlHostAns{h, W.W64.zero()}}
183 case _:
184 io(h, Hs.AmlHRead{a})