def rs.p7
bend-osdev-acpi@0.1.1.0 · rsdp.bend:79
import bend-osdev-acpi@0.1.1.0/rsdp.bend as Rsdp
import Base
import bend-osdev-bytes@0.1.1.0/bytes.bend as B
import bend-osdev-acpi@0.1.1.0/error.bend as E
import bend-osdev-acpi@0.1.1.0/checksum.bend as C
import bend-osdev-acpi@0.1.1.0/fields.bend as F
79def rs.p7(ok: Bool, +l: U32, +o: B.Octets) -> Result<&2, &2, E.AcpiError, AcpiRsdp>:
80 match ok:
81 case False{}:
82 Fail{E.AcpiRsdpBadExtChecksum{C.AcpiChecksum.sum(B.Octets.take(U32.to_nat(l), o))}}
83 case True{}:
84 Done{AcpiRsdp{F.AcpiF.bytes(o, 9n, 6n), F.AcpiF.u8(o, 15n), F.AcpiF.u32(o, 16n), Some{AcpiRsdpExt{l, F.AcpiF.u64(o, 24n)}}}}