The ZGranuleMap is hard-coded to only work with ZAddresses (pointers into one of the heap views). It checks that no null-pointer is passed in, and then scales away the metadata/view bits.
Change it to only work with offsets [0, <max offset>). And move ZAddress code to callers. This will allow us to easily use ZGranuleMap for both virtual addresses and physical memory offsets.
Change it to only work with offsets [0, <max offset>). And move ZAddress code to callers. This will allow us to easily use ZGranuleMap for both virtual addresses and physical memory offsets.