|
|
auto | zxfoundation::memory::rmap::collect_peers (u64 phys, vm::vm_region &self, u32 self_slot, peer_ref *out, u32 cap) noexcept -> u32 |
| | Collect rmap identities without dereferencing VM page slots.
|
|
auto | zxfoundation::memory::rmap::count_refs (u64 phys) noexcept -> u32 |
| | Count how many VMA slots currently reference phys.
|
|
auto | zxfoundation::memory::rmap::for_each_phys (u64 phys, visitor visit) noexcept -> u32 |
| | Walk every VMA slot that references phys.
|
|
no_export auto | zxfoundation::memory::rmap::detail::head_for_pfn (u64 pfn) noexcept -> entry *& |
|
auto | zxfoundation::memory::rmap::init (u64 max_pfn) noexcept -> std::expected< void, lib::kernel_error > |
| | Allocate the reverse-map heads for max_pfn frames.
|
|
auto | zxfoundation::memory::rmap::insert (vm::vm_region &rgn, u32 slot_index, u64 phys) noexcept -> std::expected< void, lib::kernel_error > |
| | Insert a reverse-map link: "slot @p slot_index in @p rgn
maps @p phys".
|
| auto | zxfoundation::memory::rmap::invalidate_peers (u64 phys, vm::vm_region &self, u32 self_slot) noexcept -> std::expected< peer_invalidation_result, lib::kernel_error > |
| | Invalidate every peer mapping of phys except self.
|
|
no_export auto | zxfoundation::memory::rmap::detail::pfn_of (u64 phys) noexcept -> u64 |
| auto | zxfoundation::memory::rmap::rebind (vm::vm_region &from, u32 from_slot, vm::vm_region &to, u32 to_slot, u64 phys) noexcept -> bool |
| | Rebind an existing rmap entry after a VMA split without allocating.
|
|
auto | zxfoundation::memory::rmap::release_slot_pin (vm::vm_page_slot &slot) noexcept -> std::expected< bool, lib::kernel_error > |
|
auto | zxfoundation::memory::rmap::remove (vm::vm_region &rgn, u32 slot_index, u64 phys) noexcept -> void |
| | Remove the link matching (rgn, slot_index, phys).
|
|
no_export auto | zxfoundation::memory::rmap::detail::stripe_of (u64 pfn) noexcept -> u32 |
| | Stripe index for a PFN.
|
Reverse-map (rmap) implementation — implementation.
SPDX-License-Identifier: Apache-2.0