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)

Uses (9)

Used by (1)