def in.ap.condref

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

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_host.bend as Hs

1372# CondRefOf (chapter 19): Ones and the reference in the Target if the object
1373# exists, Zero otherwise
1374def in.ap.condref(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, args: List<&2, V.AmlValue>, c: AmlCur, fs: List<&2, AmlFrame>, +w: AmlWorld<H>) -> AmlMachine<H>:
1375  match args:
1376    case Con{V.AmlRef{l}, Con{t, Nil{}}}:
1377      in.condref.put(~H, ~io, in.loc(t), V.AmlRef{l}, c, fs, w)
1378    case Con{x, Con{t, Nil{}}}:
1379      in.give(H, V.AmlInt{W.W64.zero()}, c, fs, w)
1380    case _:
1381      in.bad(H, 274, c, fs, w)

Uses (15)

Used by (1)