def reg.dispatch

bend-osdev-acpi@0.1.1.0 · registry.bend:140

import bend-osdev-acpi@0.1.1.0/registry.bend as Registry
import Base
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/header.bend as H
import bend-osdev-acpi@0.1.1.0/rsdt.bend as S
import bend-osdev-acpi@0.1.1.0/madt.bend as M
import bend-osdev-acpi@0.1.1.0/fadt.bend as F
import bend-osdev-acpi@0.1.1.0/hpet.bend as P
import bend-osdev-acpi@0.1.1.0/mcfg.bend as C
import bend-osdev-acpi@0.1.1.0/srat.bend as R
import bend-osdev-acpi@0.1.1.0/slit.bend as L
import bend-osdev-acpi@0.1.1.0/bgrt.bend as G
import bend-osdev-acpi@0.1.1.0/dsdt.bend as D

140def reg.dispatch(~X: Data, ~ext: U32 -> H.AcpiSdt -> Result<&2, &2, E.AcpiError, X>, k: AcpiKind, +t: H.AcpiSdt) -> Result<&2, &2, E.AcpiError, AcpiTable<X>>:
141  match k:
142    case AcpiKRsdt{}:
143      reg.wrap(~X, ~S.AcpiSdtList, ~(a => AcpiTRsdt{a}), S.AcpiRsdt.of_sdt(t))
144    case AcpiKXsdt{}:
145      reg.wrap(~X, ~S.AcpiSdtList, ~(a => AcpiTXsdt{a}), S.AcpiXsdt.of_sdt(t))
146    case AcpiKMadt{}:
147      reg.wrap(~X, ~M.AcpiMadt, ~(a => AcpiTMadt{a}), M.AcpiMadt.of_sdt(t))
148    case AcpiKFadt{}:
149      reg.wrap(~X, ~F.AcpiFadt, ~(a => AcpiTFadt{a}), F.AcpiFadt.of_sdt(t))
150    case AcpiKHpet{}:
151      reg.wrap(~X, ~P.AcpiHpet, ~(a => AcpiTHpet{a}), P.AcpiHpet.of_sdt(t))
152    case AcpiKMcfg{}:
153      reg.wrap(~X, ~C.AcpiMcfg, ~(a => AcpiTMcfg{a}), C.AcpiMcfg.of_sdt(t))
154    case AcpiKSrat{}:
155      reg.wrap(~X, ~R.AcpiSrat, ~(a => AcpiTSrat{a}), R.AcpiSrat.of_sdt(t))
156    case AcpiKSlit{}:
157      reg.wrap(~X, ~L.AcpiSlit, ~(a => AcpiTSlit{a}), L.AcpiSlit.of_sdt(t))
158    case AcpiKBgrt{}:
159      reg.wrap(~X, ~G.AcpiBgrt, ~(a => AcpiTBgrt{a}), G.AcpiBgrt.of_sdt(t))
160    case AcpiKAml{}:
161      reg.wrap(~X, ~D.AcpiAml, ~(a => AcpiTAml{a}), D.AcpiAml.of_sdt(t))
162    case AcpiKRaw{}:
163      Done{AcpiTRaw{t}}
164    case AcpiKExt{+tag}:
165      reg.ext(~X, tag, ext(tag, t))

Uses (27)

Used by (1)