def cur.imm.k

bend-osdev-acpi@0.1.1.0 · aml_interp.bend:359

import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E

359def cur.imm.k(ok: Bool, +n: Nat, c: AmlCur) -> Result<&2, &2, E.AcpiError, AmlImm>:
360  match ok:
361    case False{}:
362      Fail{E.AcpiAmlTruncated{}}
363    case True{}:
364      match c:
365        case AmlCur{+code, lim}:
366          Done{AmlImm{cur.fold(B.take.fast(n, code), 0n, W.W64.zero()), AmlCur{B.drop(n, code), Nat.sub(lim, n)}}}

Uses (11)

Used by (1)