Always using an address here and doing the shift is consistent with using vmi_v2p* to get a physical address to use, but seems like just as much work as dealing with a 2 member named union, which is more explicit to an external caller.