def in.cf.mk

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

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-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/aml_value.bend as V
import bend-osdev-acpi@0.1.1.0/aml_ns.bend as S

1585def in.cf.mk(+op: Nat, src: V.AmlValue, ri: Result<&2, &2, E.AcpiError, W.W64>, rn: Result<&2, &2, E.AcpiError, W.W64>) -> Result<&2, &2, E.AcpiError, S.AmlObject>:
1586  match src ri rn:
1587    case V.AmlRef{l} Done{+i} Done{n}:
1588      Done{S.AmlOBufField{l, in.cf.off(op, W.W64.to_nat(i)), in.cf.bits(op, W.W64.to_nat(n))}}
1589    case _ Fail{e} _:
1590      Fail{e}
1591    case _ Done{i} Fail{e}:
1592      Fail{e}
1593    case _ Done{i} Done{n}:
1594      Fail{E.AcpiAmlUnsupported{"a buffer field of a buffer that has no name"}}

Uses (9)

Used by (1)