def in.ap.logic

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

import bend-osdev-acpi@0.1.1.0/aml_interp.bend as AmlInterp
import Base
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

1184def in.ap.logic(~H: Data, ~io: H -> Hs.AmlHostOp -> Result<&2, &2, E.AcpiError, Hs.AmlHostAns<H>>, +op: Nat, args: List<&2, V.AmlValue>, c: AmlCur, fs: List<&2, AmlFrame>, +w: AmlWorld<H>) -> AmlMachine<H>:
1185  match args:
1186    case Con{a, Nil{}}:
1187      +wide = in.wide(H, w)
1188      in.val.give(H, in.bool.v(wide, Result.map(&2, &2, E.AcpiError, Bool, Bool, b => Bool.not(b), in.truth(wide, a))), c, fs, w)
1189    case Con{a, Con{b, Nil{}}}:
1190      +wide = in.wide(H, w)
1191      in.val.give(H, in.bool.v(wide, in.logic.two(op, wide, a, b)), c, fs, w)
1192    case _:
1193      in.bad(H, U32.from_nat(op), c, fs, w)

Uses (21)

Used by (1)