def rs.p5

bend-osdev-acpi@0.1.1.0 · rsdp.bend:93

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/fields.bend as F

93def rs.p5(ok: Bool, +o: B.Octets) -> Result<&2, &2, E.AcpiError, AcpiRsdp>:
94  match ok:
95    case False{}:
96      Fail{E.AcpiTooShort{36n, B.Octets.len(o)}}
97    case True{}:
98      +l = F.AcpiF.u32(o, 20n)
99      rs.p6(Bool.and(Nat.is_le(36n, U32.to_nat(l)), Nat.is_le(U32.to_nat(l), B.Octets.len(o))), l, o)

Uses (11)

Used by (2)