[Mammoth] Add a helper method for duplicating memory capabilities.

This commit is contained in:
Drew Galbraith 2023-11-19 20:35:55 -08:00
parent 8e827a5dfb
commit deb2e708cd
3 changed files with 9 additions and 4 deletions

View file

@ -53,7 +53,8 @@ class OwnedMemoryRegion {
uint64_t vaddr() { return vaddr_; }
uint64_t size() { return size_; }
uint64_t cap() { return vmmo_cap_; }
z_cap_t cap() { return vmmo_cap_; }
z_cap_t DuplicateCap();
bool empty() { return vmmo_cap_ != 0; }
explicit operator bool() { return vmmo_cap_ != 0; }

View file

@ -72,3 +72,9 @@ OwnedMemoryRegion OwnedMemoryRegion::FromCapability(z_cap_t vmmo_cap) {
// FIXME: get the size here.
return OwnedMemoryRegion(vmmo_cap, vaddr, size);
}
z_cap_t OwnedMemoryRegion::DuplicateCap() {
z_cap_t cap;
check(ZCapDuplicate(vmmo_cap_, kZionPerm_All, &cap));
return cap;
}