64 [[nodiscard]] std::
size_t pageCount() const noexcept;
Result< void > map(std::size_t virtualPage, FrameId frame)
Maps a virtual page to a physical frame.
Result< FrameId > translate(std::size_t virtualPage) const
Translates a virtual page number to a physical frame.
PageTable(std::size_t pageCount)
Constructs a page table with the given number of virtual pages.
std::size_t pageCount() const noexcept
Returns the total number of virtual pages.
void clear()
Resets all entries to unmapped state.
Result< PageTableEntry > getEntry(std::size_t virtualPage) const
Returns the entry for a virtual page (read-only).
Result< void > unmap(std::size_t virtualPage)
Unmaps a virtual page (marks as not present, clears frame).
PageTable(PageTable &&) noexcept
std::size_t presentCount() const noexcept
Returns the number of pages currently present in memory.
PageTable(const PageTable &)=delete
Result< void > setDirty(std::size_t virtualPage, bool value)
Marks a page as dirty.
Result< void > clearReferenced(std::size_t virtualPage)
Clears the referenced bit for a virtual page.
PageTable & operator=(const PageTable &)=delete
Result< void > setReferenced(std::size_t virtualPage, bool value)
Marks a page as referenced (used by Clock/LRU algorithms).
std::unique_ptr< Impl > impl_
A result type that holds either a success value of type T or an ErrorCode.
Error codes and Result<T> type for fallible operations.
constexpr FrameId INVALID_FRAME
Sentinel value indicating an invalid frame.
std::uint32_t FrameId
Frame number in physical memory.
Entry in the page table — maps one virtual page to a physical frame.
FrameId frameId
Physical frame number.
bool referenced
Page has been accessed (for Clock algorithm).
bool present
Page is loaded in physical memory.
bool dirty
Page has been modified since load.
Common type aliases, sentinel constants, and forward declarations used throughout the Contur 2 kernel...