def tb.mread

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

import bend-osdev-acpi@0.1.1.0/PROOF_tables.bend as PROOFTables
import Base
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/mcfg.bend as Mc
import bend-osdev-acpi@0.1.1.0/LAWS_tables.bend as Laws

469def tb.mread(+es: List<&2, Mc.AcpiMcfgEntry>) -> {Laws.acpilaw.mcfg_fit(es) == Mc.mcfg.read(List.length(&2, Mc.AcpiMcfgEntry, es), B.Octets.concat(Mc.mcfg.enc(es))) : List<&2, Mc.AcpiMcfgEntry>}:
470  match es:
471    case Nil{}:
472      {==}
473    case Con{e, t}:
474      match e:
475        case Mc.AcpiMcfgEntry{+b, +s, +lo, +hi}:
476          %Equal.sym(B.Octets, B.Octets.concat(Con{B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), Mc.mcfg.enc(t)}), B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), BL.octets_concat_cons(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), Mc.mcfg.enc(t))) : {Con{Mc.AcpiMcfgEntry{b, B.low16(s), B.byte(lo), B.byte(hi)}, Laws.acpilaw.mcfg_fit(t)} == Con{Mc.AcpiMcfgEntry{F.AcpiF.u64(_, 0n), F.AcpiF.u16(_, 8n), F.AcpiF.u8(_, 10n), F.AcpiF.u8(_, 11n)}, Mc.mcfg.read(List.length(&2, Mc.AcpiMcfgEntry, t), B.Octets.drop(16n, _))} : List<&2, Mc.AcpiMcfgEntry>}
477          %tb.mdrop(b, s, lo, hi, B.Octets.concat(Mc.mcfg.enc(t))) : {Con{Mc.AcpiMcfgEntry{b, B.low16(s), B.byte(lo), B.byte(hi)}, Laws.acpilaw.mcfg_fit(t)} == Con{Mc.AcpiMcfgEntry{F.AcpiF.u64(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 0n), F.AcpiF.u16(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 8n), F.AcpiF.u8(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 10n), F.AcpiF.u8(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 11n)}, Mc.mcfg.read(List.length(&2, Mc.AcpiMcfgEntry, t), _)} : List<&2, Mc.AcpiMcfgEntry>}
478          %tb.mread(t) : {Con{Mc.AcpiMcfgEntry{b, B.low16(s), B.byte(lo), B.byte(hi)}, Laws.acpilaw.mcfg_fit(t)} == Con{Mc.AcpiMcfgEntry{F.AcpiF.u64(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 0n), F.AcpiF.u16(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 8n), F.AcpiF.u8(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 10n), F.AcpiF.u8(B.Octets.append(B.Octets.concat([B.Octets.le64(b), B.Octets.le16(s), B.Octets.of_list([lo, hi]), B.Octets.zeros(4n)]), B.Octets.concat(Mc.mcfg.enc(t))), 11n)}, _} : List<&2, Mc.AcpiMcfgEntry>}
479          %tb.ment(b, s, lo, hi, B.Octets.concat(Mc.mcfg.enc(t))) : {Con{Mc.AcpiMcfgEntry{b, B.low16(s), B.byte(lo), B.byte(hi)}, Laws.acpilaw.mcfg_fit(t)} == Con{_, Laws.acpilaw.mcfg_fit(t)} : List<&2, Mc.AcpiMcfgEntry>}
480          {==}

Uses (23)

Used by (1)