ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation::memory::pmm::transaction Class Referenceexport

Atomic multi-folio allocation transaction. More...

Inheritance diagram for zxfoundation::memory::pmm::transaction:
[legend]
Collaboration diagram for zxfoundation::memory::pmm::transaction:
[legend]

Public Member Functions

auto alloc (u32 order, zone z, purpose p=purpose::generic, page_init init=page_init::uninitialized) noexcept -> std::expected< folio_embryo, lib::kernel_error >
 Allocate one folio within this transaction.
auto count () const noexcept -> u32
auto operator= (const transaction &)=delete
auto phys (u32 i) const noexcept -> u64
 Retrieve the physical address of slot i (valid after commit).
 transaction (const transaction &)=delete
Public Member Functions inherited from zxfoundation::base::transaction< transaction >
auto commit () noexcept -> void
 Commit — disarms the automatic rollback on destruction.
auto committed () const noexcept -> bool
 Return true if commit() has been called.
auto mark_rolled_back () noexcept -> void
 Explicitly mark as rolled back (for derived classes that do custom rollback before destruction).
auto operator= (const transaction &)=delete
auto rolled_back () const noexcept -> bool
 Return true if rollback has been executed.

Friends

class zxfoundation::base::transaction< transaction >

Additional Inherited Members

Protected Member Functions inherited from zxfoundation::base::transaction< transaction >
 ~transaction () noexcept
 Destructor: fires on_rollback() if commit() was never called.

Detailed Description

Atomic multi-folio allocation transaction.

Member Function Documentation

◆ alloc()

auto zxfoundation::memory::pmm::transaction::alloc ( u32 order,
zone z,
purpose p = purpose::generic,
page_init init = page_init::uninitialized )->std::expected< folio_embryo, lib::kernel_error >
nodiscardexportnoexcept

Allocate one folio within this transaction.

Parameters
[in]orderBuddy order (0 = 4 KiB, MAX_ORDER = 4 MiB).
[in]zZone constraint.
[in]pSemantic purpose annotation.
[in]initInitialization policy.
Returns
folio_embryo on success, kernel_error on failure.

The documentation for this class was generated from the following files:
  • zxfoundation/memory/pmm.zcomponent/core.cxxm
  • zxfoundation/memory/pmm.zcomponent/core.cxx