def sl.read

bend-osdev-acpi@0.1.1.0 · rsdt.bend:32

import bend-osdev-acpi@0.1.1.0/rsdt.bend as Rsdt
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-acpi@0.1.1.0/fields.bend as F

32# n entries of width 4 or 8 bytes from the front of o
33def sl.read(n: Nat, wide: Bool, +o: B.Octets, acc: List<&2, W.W64>) -> List<&2, W.W64>:
34  match n:
35    case 0n:
36      sl.rev(acc, Nil{})
37    case 1n+p:
38      match wide:
39        case True{}:
40          sl.read(p, True{}, B.Octets.drop(8n, o), Con{F.AcpiF.u64(o, 0n), acc})
41        case False{}:
42          sl.read(p, False{}, B.Octets.drop(4n, o), Con{W.W64.from_u32(F.AcpiF.u32(o, 0n)), acc})

Uses (10)

Used by (5)