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"}}