Atomic multi-folio allocation transaction.
More...
|
| 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 |
|
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.
|
|
|
class | zxfoundation::base::transaction< transaction > |
|
|
| ~transaction () noexcept |
| | Destructor: fires on_rollback() if commit() was never called.
|
Atomic multi-folio allocation transaction.
◆ 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] | order | Buddy order (0 = 4 KiB, MAX_ORDER = 4 MiB). |
| [in] | z | Zone constraint. |
| [in] | p | Semantic purpose annotation. |
| [in] | init | Initialization 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