def AmlResource.show
bend-osdev-acpi@0.1.1.0 · aml_resource.bend:159
import bend-osdev-acpi@0.1.1.0/aml_resource.bend as AmlResource
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
159def AmlResource.show(r: AmlResource) -> String:
160 match r:
161 case AmlRIrq{m, f}:
162 "irq mask " ++ U32.show(m) ++ " flags " ++ U32.show(f)
163 case AmlRDma{m, f}:
164 "dma mask " ++ U32.show(m) ++ " flags " ++ U32.show(f)
165 case AmlRIo{dc, mn, mx, al, l}:
166 "io " ++ U32.show(mn) ++ "-" ++ U32.show(mx) ++ " align " ++ U32.show(al) ++ " len " ++ U32.show(l)
167 case AmlRFixedIo{b, l}:
168 "fixed io " ++ U32.show(b) ++ " len " ++ U32.show(l)
169 case AmlRMem32{wr, mn, mx, al, l}:
170 "mem32 " ++ U32.show(mn) ++ "-" ++ U32.show(mx) ++ " len " ++ U32.show(l)
171 case AmlRMem32Fixed{wr, b, l}:
172 "mem32 fixed " ++ U32.show(b) ++ " len " ++ U32.show(l)
173 case AmlRAddr{bits, k, f, tf, AmlRange{g, mn, mx, t, l}}:
174 "addr" ++ U32.show(bits) ++ " type " ++ U32.show(k) ++ " " ++ W.W64.show_hex(mn) ++ "-" ++ W.W64.show_hex(mx) ++ " len " ++ W.W64.show_hex(l)
175 case AmlRExtIrq{f, irqs}:
176 "extirq flags " ++ U32.show(f) ++ " " ++ String.join(res.show.irqs(irqs), ",")
177 case AmlROther{t, d}:
178 "other " ++ U32.show(t) ++ " " ++ B.Octets.hex(d)