def AmlUnit.take
import bend-osdev-acpi@0.1.1.0/aml_field.bend as AmlFieldimport Base
import bend-osdev-word64@0.1.1.0/word64.bend as W
119# the field bits a unit holds, from the unit's value v, in place in the
120# field's value
121def AmlUnit.take(u: AmlUnit, +v: W.W64) -> W.W64:
122 match u:
123 case AmlUnit{a, +s, +n, +d, ok}:
124 W.W64.shl(W.W64.and(W.W64.shr(v, s), fld.mask(n)), d)