|
The Pedigree Project 0.1
|
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 Detached * | detachedPages () 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 | |
| X64VirtualAddressSpace & | m_Space |
| Request | m_Request |
| bool | m_Moved |
| size_t | m_Preserved |
| UniqueArray< Detached > | m_Detached |
| UniqueArray< unsigned char > | m_AllowedVictim |
| UniqueArray< physical_uintptr_t > | m_Spares |
| size_t | m_SpareCount |
| size_t | m_UsedSpares |
| bool | m_Committed |
Definition at line 35 of file VirtualAddressSpace-remap.cc.
Definition at line 39 of file VirtualAddressSpace-remap.cc.
Definition at line 38 of file VirtualAddressSpace-remap.cc.
| using X64PreparedPageRemap::Status = VirtualAddressSpace::RemapStatus |
Definition at line 37 of file VirtualAddressSpace-remap.cc.
|
inline |
Definition at line 41 of file VirtualAddressSpace-remap.cc.
|
inlineoverride |
Definition at line 53 of file VirtualAddressSpace-remap.cc.
|
inlineoverridevirtual |
The callback cannot allocate, sleep or acquire another VAS lock.
Implements VirtualAddressSpace::PreparedPageRemap.
Definition at line 123 of file VirtualAddressSpace-remap.cc.
References Process::addressSpaceOwner(), Process::getAddressSpace(), Thread::getParent(), ProcessorBase::information(), X64VirtualAddressSpace::invalidateMapping(), and X64VirtualAddressSpace::m_Lock.
|
inlineprivate |
Definition at line 232 of file VirtualAddressSpace-remap.cc.
|
inlineoverridevirtual |
Implements VirtualAddressSpace::PreparedPageRemap.
Definition at line 205 of file VirtualAddressSpace-remap.cc.
|
inlineoverridevirtual |
Implements VirtualAddressSpace::PreparedPageRemap.
Definition at line 202 of file VirtualAddressSpace-remap.cc.
|
inlineprivate |
Definition at line 246 of file VirtualAddressSpace-remap.cc.
|
inlineprivate |
Definition at line 212 of file VirtualAddressSpace-remap.cc.
|
inline |
Definition at line 59 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 264 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 267 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 263 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 261 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 262 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 260 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 259 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 266 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 265 of file VirtualAddressSpace-remap.cc.
|
private |
Definition at line 266 of file VirtualAddressSpace-remap.cc.