Previously GetMemoryTagManager checked many things in one:
- architecture supports memory tagging
- process supports memory tagging
- memory range isn't inverted
- memory range is all tagged
Since writing follow up patches for tag writing (in review
at the moment) it has become clear that this gets unwieldy
once we add the features needed for that.
It also implies that the memory tag manager is tied to the
range you used to request it with but it is not. It's a per
process object.
Instead:
- GetMemoryTagManager just checks architecture and process.
- Then the MemoryTagManager can later be asked to check a memory range.
This is better because:
- We don't imply that range and manager are tied together.
- A slightly diferent range calculation for tag writing doesn't add more code to Process.
- Range checking code can now be unit tested.
I couldnt understand this point in comment "have an untagged base address"