|
|
static constexpr auto | zxfoundation::memory::pmm::detail::align_resv (resv_entry r) noexcept -> resv_entry |
| auto | zxfoundation::memory::pmm::alloc (const allocation_request &request) noexcept -> std::expected< allocation_result, lib::kernel_error > |
| | Allocate a single folio.
|
| auto | zxfoundation::memory::pmm::alloc (u32 order, zone z, purpose p, page_init init) noexcept -> std::expected< folio_embryo, lib::kernel_error > |
| | Allocate a single folio.
|
| auto | zxfoundation::memory::pmm::detail::alloc_locked (u32 order, zone z, u8 node_id) noexcept -> u64 |
| | Allocate a block of the given order from a node-owned zone.
|
|
auto | zxfoundation::memory::pmm::detail::alloc_node_aware (u32 order, zone z, const numa::allocation_policy &policy, u8 local_node) noexcept -> node_allocation |
| auto | zxfoundation::memory::pmm::detail::assert_allocatable_frame (u64 phys) noexcept -> void |
| | Fail-closed validation of a frame handed back by the buddy / PCP layer.
|
|
auto | zxfoundation::memory::pmm::detail::boot_region_node_id (const arch::s390x::init::zxfl::mem_region ®ion, u64 phys) noexcept -> u8 |
| auto | zxfoundation::memory::pmm::detail::desc_of (u64 phys) noexcept -> std::expected< frame_desc *, lib::kernel_error > |
| | Access the frame_desc for a given physical address.
|
| auto | zxfoundation::memory::pmm::desc_of_checked (u64 phys) noexcept -> std::expected< frame_desc *, lib::kernel_error > |
| | Fail-closed frame-descriptor accessor.
|
|
auto | zxfoundation::memory::pmm::frame_clear_mapping_metadata (u64 phys) noexcept -> std::expected< void, lib::kernel_error > |
| | Clear the authority identity stamped on one physical frame.
|
| auto | zxfoundation::memory::pmm::frame_desc_of (u64 phys) noexcept -> frame_desc * |
| | Return a pointer to the frame_desc for a physical address.
|
|
auto | zxfoundation::memory::pmm::detail::frame_node_id (u64 phys) noexcept -> u8 |
| auto | zxfoundation::memory::pmm::frame_node_of (u64 phys) noexcept -> std::expected< u8, lib::kernel_error > |
| | Return the NUMA node id recorded for a frame.
|
|
auto | zxfoundation::memory::pmm::frame_object_generation_of (u64 phys) noexcept -> std::expected< u32, lib::kernel_error > |
| | Resolve the SCOMS generation paired with a frame authority id.
|
| auto | zxfoundation::memory::pmm::frame_object_id_of (u64 phys) noexcept -> std::expected< u32, lib::kernel_error > |
| | Resolve the SCOMS memory_object_id that authorizes a frame.
|
| auto | zxfoundation::memory::pmm::frame_ref (u64 phys) noexcept -> std::expected< u16, lib::kernel_error > |
| | Atomically increment a frame's refcount.
|
| auto | zxfoundation::memory::pmm::frame_refcount (u64 phys) noexcept -> std::expected< u16, lib::kernel_error > |
| | Return the current atomic reference count of a frame.
|
| auto | zxfoundation::memory::pmm::frame_release_pin (u64 phys) noexcept -> std::expected< bool, lib::kernel_error > |
| | Release one order-zero mapping pin and return the frame.
|
| auto | zxfoundation::memory::pmm::frame_set_mapping_metadata (u64 phys, u32 object_id, u32 object_generation, bool writable) noexcept -> std::expected< void, lib::kernel_error > |
| | Stamp the SCOMS memory_object id that authorizes this frame.
|
| auto | zxfoundation::memory::pmm::frame_unref (u64 phys) noexcept -> std::expected< u16, lib::kernel_error > |
| | Atomically decrement a frame's refcount.
|
| auto | zxfoundation::memory::pmm::frame_validate_mapping (u64 phys_start, u64 length, u32 object_id, u32 object_generation) noexcept -> std::expected< void, lib::kernel_error > |
| | Validate that a physical range is owned by one SCOMS object.
|
| auto | zxfoundation::memory::pmm::free (folio_active f) noexcept -> void |
| | Return a folio to the allocator.
|
| auto | zxfoundation::memory::pmm::detail::free_locked (u64 phys, u32 order, zone z, u8 node_id) noexcept -> void |
| | Return a block to a node-owned zone, coalescing with same-node free buddies.
|
|
auto | zxfoundation::memory::pmm::free_page_count () noexcept -> u64 |
| | Advisory free page count (sum across all zones).
|
| auto | zxfoundation::memory::pmm::init (const arch::s390x::init::zxfl::protocol &proto) noexcept -> void |
| | Initialize the PMM from the ZXFL boot protocol.
|
|
auto | zxfoundation::memory::pmm::install_allocation_retry (allocation_retry_fn callback) noexcept -> std::expected< void, lib::kernel_error > |
| | Install the allocation-pressure reclaim callback.
|
|
auto | zxfoundation::memory::pmm::detail::local_node_id () noexcept -> u8 |
|
auto | zxfoundation::memory::pmm::max_pfn () noexcept -> u64 |
|
static auto | zxfoundation::memory::pmm::detail::next_resv_start (u64 phys, u64 limit, const resv_entry *resv, u32 count) noexcept -> u64 |
|
auto | zxfoundation::memory::pmm::detail::node_is_allocatable (u8 node_id) noexcept -> bool |
|
constexpr auto | zxfoundation::memory::pmm::detail::normalize_node_id (u8 node_id) noexcept -> u8 |
|
constexpr auto | zxfoundation::memory::pmm::detail::owner_for_purpose (purpose p) noexcept -> frame_owner |
|
auto | zxfoundation::memory::pmm::detail::pcp_drain (pcp_list &lst, u32 ord, zone z, u8 node_id) noexcept -> void |
| | Drain PCP_BATCH/2 pages from a list back to the buddy. Takes the zone spinlock internally (IRQs already disabled by caller).
|
| auto | zxfoundation::memory::pmm::detail::pcp_pop (pcp_list &lst) noexcept -> u64 |
| | Pop one page of order ord from a PCP list.
|
|
auto | zxfoundation::memory::pmm::detail::pcp_push (pcp_list &lst, u64 phys) noexcept -> void |
| | Push one page onto a PCP list head.
|
|
auto | zxfoundation::memory::pmm::detail::pcp_refill (pcp_list &lst, u32 ord, zone z, u8 node_id) noexcept -> void |
| | Refill a PCP list by bulk-allocating PCP_BATCH pages from buddy.
|
|
auto | zxfoundation::memory::pmm::detail::quarantine_failed_allocation (u64 phys, u32 order, u8 node_id) noexcept -> void |
| | Retire an allocation that failed post-allocation validation.
|
| auto | zxfoundation::memory::pmm::reserve (u64 phys, u32 order) noexcept -> void |
| | Mark a physical range as permanently reserved (runtime call).
|
|
static auto | zxfoundation::memory::pmm::detail::resv_skip_end (u64 phys, const resv_entry *resv, u32 count) noexcept -> u64 |
|
static auto | zxfoundation::memory::pmm::detail::sort_merge_reservations (resv_entry *resv, u32 &count) noexcept -> void |
|
auto | zxfoundation::memory::pmm::total_page_count () noexcept -> u64 |
| | Total managed page count (sum across all zones).
|
|
auto | zxfoundation::memory::pmm::detail::try_alloc_node (u32 order, zone z, u8 node_id) noexcept -> node_allocation |
|
auto | zxfoundation::memory::pmm::detail::validate_page_table_allocation (u64 phys, u32 order, zone z, u8 node_id) noexcept -> std::expected< void, lib::kernel_error > |
|
constexpr auto | zxfoundation::memory::pmm::detail::zone_of (u64 phys) noexcept -> zone |
Physical Memory Manager.
SPDX-License-Identifier: Apache-2.0