def tb.rread

bend-osdev-acpi@0.1.1.0 · PROOF_tables.bend:363

import bend-osdev-acpi@0.1.1.0/PROOF_tables.bend as PROOFTables
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-bytes@0.1.1.0/LAWS.bend as BL
import bend-osdev-acpi@0.1.1.0/fields.bend as F
import bend-osdev-acpi@0.1.1.0/rsdt.bend as R
import bend-osdev-acpi@0.1.1.0/LAWS_tables.bend as Laws

363def tb.rread(+xs: List<&2, W.W64>, +acc: List<&2, W.W64>) -> {R.sl.read(List.length(&2, W.W64, xs), False{}, B.Octets.concat(R.sl.enc(xs, False{})), acc) == R.sl.rev(R.sl.rev(Laws.acpilaw.low32(xs), acc), Nil{}) : List<&2, W.W64>}:
364  match xs:
365    case Nil{}:
366      {==}
367    case Con{+x, t}:
368      %Equal.sym(B.Octets, B.Octets.concat(Con{B.Octets.le32(W.W64.lo(x)), R.sl.enc(t, False{})}), B.Octets.append(B.Octets.le32(W.W64.lo(x)), B.Octets.concat(R.sl.enc(t, False{}))), BL.octets_concat_cons(B.Octets.le32(W.W64.lo(x)), R.sl.enc(t, False{}))) : {R.sl.read(List.length(&2, W.W64, t), False{}, B.Octets.drop(4n, _), Con{W.W64.from_u32(F.AcpiF.u32(_, 0n)), acc}) == R.sl.rev(R.sl.rev(Laws.acpilaw.low32(Con{x, t}), acc), Nil{}) : List<&2, W.W64>}
369      %tb.d4(W.W64.lo(x), B.Octets.concat(R.sl.enc(t, False{}))) : {R.sl.read(List.length(&2, W.W64, t), False{}, _, Con{W.W64.from_u32(F.AcpiF.u32(B.Octets.append(B.Octets.le32(W.W64.lo(x)), B.Octets.concat(R.sl.enc(t, False{}))), 0n)), acc}) == R.sl.rev(R.sl.rev(Laws.acpilaw.low32(Con{x, t}), acc), Nil{}) : List<&2, W.W64>}
370      %tb.g4(W.W64.lo(x), B.Octets.concat(R.sl.enc(t, False{}))) : {R.sl.read(List.length(&2, W.W64, t), False{}, B.Octets.concat(R.sl.enc(t, False{})), Con{W.W64.from_u32(_), acc}) == R.sl.rev(R.sl.rev(Laws.acpilaw.low32(Con{x, t}), acc), Nil{}) : List<&2, W.W64>}
371      tb.rread(t, Con{W.W64.from_u32(W.W64.lo(x)), acc})

Uses (20)

Used by (1)