The Pedigree Project 0.1
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
X64PreparedPageRemap Class Referencefinal
+ Inheritance diagram for X64PreparedPageRemap:
+ Collaboration diagram for X64PreparedPageRemap:

Public Types

using Status = VirtualAddressSpace::RemapStatus
 
using Request = VirtualAddressSpace::PageRemapRequest
 
using Detached = VirtualAddressSpace::DetachedPage
 

Public Member Functions

 X64PreparedPageRemap (X64VirtualAddressSpace &space, const Request &request)
 
Status prepare (ssize_t &remaining)
 
Status commit (VirtualAddressSpace::RemapAdmission admission, void *context) override
 
const DetacheddetachedPages () const override
 
size_t detachedPageCount () const override
 

Private Member Functions

Status lookup (uintptr_t address, uint64_t *&leaf)
 
bool detach (uintptr_t address, Detached &result)
 
uint64_t * ensureLeaf (uintptr_t address)
 

Private Attributes

X64VirtualAddressSpacem_Space
 
Request m_Request
 
bool m_Moved
 
size_t m_Preserved
 
UniqueArray< Detachedm_Detached
 
UniqueArray< unsigned char > m_AllowedVictim
 
UniqueArray< physical_uintptr_t > m_Spares
 
size_t m_SpareCount
 
size_t m_UsedSpares
 
bool m_Committed
 

Detailed Description

Definition at line 35 of file VirtualAddressSpace-remap.cc.

Member Typedef Documentation

◆ Detached

Definition at line 39 of file VirtualAddressSpace-remap.cc.

◆ Request

Definition at line 38 of file VirtualAddressSpace-remap.cc.

◆ Status

using X64PreparedPageRemap::Status = VirtualAddressSpace::RemapStatus

Definition at line 37 of file VirtualAddressSpace-remap.cc.

Constructor & Destructor Documentation

◆ X64PreparedPageRemap()

X64PreparedPageRemap::X64PreparedPageRemap ( X64VirtualAddressSpace space,
const Request request 
)
inline

Definition at line 41 of file VirtualAddressSpace-remap.cc.

◆ ~X64PreparedPageRemap()

X64PreparedPageRemap::~X64PreparedPageRemap ( )
inlineoverride

Definition at line 53 of file VirtualAddressSpace-remap.cc.

Member Function Documentation

◆ commit()

Status X64PreparedPageRemap::commit ( VirtualAddressSpace::RemapAdmission  admission,
void *  context 
)
inlineoverridevirtual

◆ detach()

bool X64PreparedPageRemap::detach ( uintptr_t  address,
Detached result 
)
inlineprivate

Definition at line 232 of file VirtualAddressSpace-remap.cc.

◆ detachedPageCount()

size_t X64PreparedPageRemap::detachedPageCount ( ) const
inlineoverridevirtual

◆ detachedPages()

const Detached * X64PreparedPageRemap::detachedPages ( ) const
inlineoverridevirtual

◆ ensureLeaf()

uint64_t * X64PreparedPageRemap::ensureLeaf ( uintptr_t  address)
inlineprivate

Definition at line 246 of file VirtualAddressSpace-remap.cc.

◆ lookup()

Status X64PreparedPageRemap::lookup ( uintptr_t  address,
uint64_t *&  leaf 
)
inlineprivate

Definition at line 212 of file VirtualAddressSpace-remap.cc.

◆ prepare()

Status X64PreparedPageRemap::prepare ( ssize_t &  remaining)
inline

Definition at line 59 of file VirtualAddressSpace-remap.cc.

Member Data Documentation

◆ m_AllowedVictim

UniqueArray<unsigned char> X64PreparedPageRemap::m_AllowedVictim
private

Definition at line 264 of file VirtualAddressSpace-remap.cc.

◆ m_Committed

bool X64PreparedPageRemap::m_Committed
private

Definition at line 267 of file VirtualAddressSpace-remap.cc.

◆ m_Detached

UniqueArray<Detached> X64PreparedPageRemap::m_Detached
private

Definition at line 263 of file VirtualAddressSpace-remap.cc.

◆ m_Moved

bool X64PreparedPageRemap::m_Moved
private

Definition at line 261 of file VirtualAddressSpace-remap.cc.

◆ m_Preserved

size_t X64PreparedPageRemap::m_Preserved
private

Definition at line 262 of file VirtualAddressSpace-remap.cc.

◆ m_Request

Request X64PreparedPageRemap::m_Request
private

Definition at line 260 of file VirtualAddressSpace-remap.cc.

◆ m_Space

X64VirtualAddressSpace& X64PreparedPageRemap::m_Space
private

Definition at line 259 of file VirtualAddressSpace-remap.cc.

◆ m_SpareCount

size_t X64PreparedPageRemap::m_SpareCount
private

Definition at line 266 of file VirtualAddressSpace-remap.cc.

◆ m_Spares

UniqueArray<physical_uintptr_t> X64PreparedPageRemap::m_Spares
private

Definition at line 265 of file VirtualAddressSpace-remap.cc.

◆ m_UsedSpares

size_t X64PreparedPageRemap::m_UsedSpares
private

Definition at line 266 of file VirtualAddressSpace-remap.cc.


The documentation for this class was generated from the following file: