Public Types | Public Member Functions
page_table_entry_x64 Class Reference

Public Types

using pointer = uintptr_t *
 
using integer_pointer = uintptr_t
 
using pat_index_type = uint64_t
 

Public Member Functions

 page_table_entry_x64 (gsl::not_null< pointer > pte) noexcept
 
 ~page_table_entry_x64 ()=default
 
bool present () const noexcept
 
void set_present (bool enabled) noexcept
 
bool rw () const noexcept
 
void set_rw (bool enabled) noexcept
 
bool us () const noexcept
 
void set_us (bool enabled) noexcept
 
bool pwt () const noexcept
 
void set_pwt (bool enabled) noexcept
 
bool pcd () const noexcept
 
void set_pcd (bool enabled) noexcept
 
bool accessed () const noexcept
 
void set_accessed (bool enabled) noexcept
 
bool dirty () const noexcept
 
void set_dirty (bool enabled) noexcept
 
bool ps () const noexcept
 
void set_ps (bool enabled) noexcept
 
bool pat_4k () const noexcept
 
void set_pat_4k (bool enabled) noexcept
 
bool pat_large () const noexcept
 
void set_pat_large (bool enabled) noexcept
 
bool global () const noexcept
 
void set_global (bool enabled) noexcept
 
integer_pointer phys_addr () const noexcept
 
void set_phys_addr (integer_pointer addr) noexcept
 
bool nx () const noexcept
 
void set_nx (bool enabled) noexcept
 
pat_index_type pat_index_4k () const noexcept
 
void set_pat_index_4k (pat_index_type index)
 
pat_index_type pat_index_large () const noexcept
 
void set_pat_index_large (pat_index_type index)
 
void clear () noexcept
 
 page_table_entry_x64 (page_table_entry_x64 &&) noexcept=default
 
page_table_entry_x64operator= (page_table_entry_x64 &&) noexcept=default
 
 page_table_entry_x64 (const page_table_entry_x64 &)=delete
 
page_table_entry_x64operator= (const page_table_entry_x64 &)=delete
 

Detailed Description

Definition at line 79 of file page_table_entry_x64.h.

Member Typedef Documentation

◆ pointer

using page_table_entry_x64::pointer = uintptr_t *

Definition at line 83 of file page_table_entry_x64.h.

◆ integer_pointer

Definition at line 84 of file page_table_entry_x64.h.

◆ pat_index_type

Definition at line 85 of file page_table_entry_x64.h.

Constructor & Destructor Documentation

◆ page_table_entry_x64() [1/3]

page_table_entry_x64::page_table_entry_x64 ( gsl::not_null< pointer pte)
noexcept

PTE Constructor

Precondition
expects: pte != nullptr
Postcondition
ensures: none
Parameters
ptethe pte that this page table entry encapsulates.

Definition at line 28 of file page_table_entry_x64.cpp.

◆ ~page_table_entry_x64()

page_table_entry_x64::~page_table_entry_x64 ( )
default

Destructor

Precondition
expects: none
Postcondition
ensures: none

◆ page_table_entry_x64() [2/3]

page_table_entry_x64::page_table_entry_x64 ( page_table_entry_x64 &&  )
defaultnoexcept

◆ page_table_entry_x64() [3/3]

page_table_entry_x64::page_table_entry_x64 ( const page_table_entry_x64 )
delete

Member Function Documentation

◆ present()

bool page_table_entry_x64::present ( ) const
noexcept

Present

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is present, false otherwise

Definition at line 33 of file page_table_entry_x64.cpp.

◆ set_present()

void page_table_entry_x64::set_present ( bool  enabled)
noexcept

Set Present

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is present, false otherwise

Definition at line 37 of file page_table_entry_x64.cpp.

◆ rw()

bool page_table_entry_x64::rw ( ) const
noexcept

Read / Write

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is read/write, false otherwise

Definition at line 41 of file page_table_entry_x64.cpp.

◆ set_rw()

void page_table_entry_x64::set_rw ( bool  enabled)
noexcept

Set Read / Write

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is read / write, false otherwise

Definition at line 45 of file page_table_entry_x64.cpp.

◆ us()

bool page_table_entry_x64::us ( ) const
noexcept

User / Supervisor

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is visible to userspace, false otherwise

Definition at line 49 of file page_table_entry_x64.cpp.

◆ set_us()

void page_table_entry_x64::set_us ( bool  enabled)
noexcept

Set User / Supervisor

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is visible to userspace, false otherwise

Definition at line 53 of file page_table_entry_x64.cpp.

◆ pwt()

bool page_table_entry_x64::pwt ( ) const
noexcept

Write-Through

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is write-through, false otherwise

Definition at line 57 of file page_table_entry_x64.cpp.

◆ set_pwt()

void page_table_entry_x64::set_pwt ( bool  enabled)
noexcept

Set Write-Through

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is write-through, false otherwise

Definition at line 61 of file page_table_entry_x64.cpp.

◆ pcd()

bool page_table_entry_x64::pcd ( ) const
noexcept

Cache Disable

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry's cache is disabled, false otherwise

Definition at line 65 of file page_table_entry_x64.cpp.

◆ set_pcd()

void page_table_entry_x64::set_pcd ( bool  enabled)
noexcept

Set Cache Disable

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry's cache is disabled, false otherwise

Definition at line 69 of file page_table_entry_x64.cpp.

◆ accessed()

bool page_table_entry_x64::accessed ( ) const
noexcept

Accessed

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry has been accessed, false otherwise

Definition at line 73 of file page_table_entry_x64.cpp.

◆ set_accessed()

void page_table_entry_x64::set_accessed ( bool  enabled)
noexcept

Set Accessed

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry has been accessed, false otherwise

Definition at line 77 of file page_table_entry_x64.cpp.

◆ dirty()

bool page_table_entry_x64::dirty ( ) const
noexcept

Dirty

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is dirty, false otherwise

Definition at line 81 of file page_table_entry_x64.cpp.

◆ set_dirty()

void page_table_entry_x64::set_dirty ( bool  enabled)
noexcept

Set Dirty

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is dirty, false otherwise

Definition at line 85 of file page_table_entry_x64.cpp.

◆ ps()

bool page_table_entry_x64::ps ( ) const
noexcept

Page Size

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is a page, false otherwise

Definition at line 89 of file page_table_entry_x64.cpp.

◆ set_ps()

void page_table_entry_x64::set_ps ( bool  enabled)
noexcept

Set Page Size

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is a page, false otherwise

Definition at line 93 of file page_table_entry_x64.cpp.

◆ pat_4k()

bool page_table_entry_x64::pat_4k ( ) const
noexcept

PAT (4k)

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry uses the PAT, false otherwise

Definition at line 97 of file page_table_entry_x64.cpp.

◆ set_pat_4k()

void page_table_entry_x64::set_pat_4k ( bool  enabled)
noexcept

Set PAT (4k)

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry uses the PAT, false otherwise

Definition at line 101 of file page_table_entry_x64.cpp.

◆ pat_large()

bool page_table_entry_x64::pat_large ( ) const
noexcept

PAT (Large)

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry uses the PAT, false otherwise

Definition at line 105 of file page_table_entry_x64.cpp.

◆ set_pat_large()

void page_table_entry_x64::set_pat_large ( bool  enabled)
noexcept

Set PAT (Large)

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry uses the PAT, false otherwise

Definition at line 109 of file page_table_entry_x64.cpp.

◆ global()

bool page_table_entry_x64::global ( ) const
noexcept

Global

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is global, false otherwise

Definition at line 113 of file page_table_entry_x64.cpp.

◆ set_global()

void page_table_entry_x64::set_global ( bool  enabled)
noexcept

Set Global

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is global, false otherwise

Definition at line 117 of file page_table_entry_x64.cpp.

◆ phys_addr()

page_table_entry_x64::integer_pointer page_table_entry_x64::phys_addr ( ) const
noexcept

Physical Address

Precondition
expects: none
Postcondition
ensures: none
Returns
the physical address of the entry

Definition at line 121 of file page_table_entry_x64.cpp.

◆ set_phys_addr()

void page_table_entry_x64::set_phys_addr ( integer_pointer  addr)
noexcept

Set Physical Address

Precondition
expects: none
Postcondition
ensures: none
Parameters
addrthe physical address of the entry

Definition at line 125 of file page_table_entry_x64.cpp.

◆ nx()

bool page_table_entry_x64::nx ( ) const
noexcept

NX

Precondition
expects: none
Postcondition
ensures: none
Returns
true if this entry is not executable, false otherwise

Definition at line 129 of file page_table_entry_x64.cpp.

◆ set_nx()

void page_table_entry_x64::set_nx ( bool  enabled)
noexcept

Set NX

Precondition
expects: none
Postcondition
ensures: none
Parameters
enabledtrue if the entry is not executable, false otherwise

Definition at line 133 of file page_table_entry_x64.cpp.

◆ pat_index_4k()

page_table_entry_x64::pat_index_type page_table_entry_x64::pat_index_4k ( ) const
noexcept

PAT Index (4k)

Precondition
expects: none
Postcondition
ensures: none
Returns
combines PWT, PCD and PAT to return the PAT index

Definition at line 137 of file page_table_entry_x64.cpp.

◆ set_pat_index_4k()

void page_table_entry_x64::set_pat_index_4k ( pat_index_type  index)

Set PAT Index (4k)

Precondition
expects: index >= 0 && index < 8
Postcondition
ensures: none
Parameters
indexthe index of the PAT to set

Definition at line 149 of file page_table_entry_x64.cpp.

◆ pat_index_large()

page_table_entry_x64::pat_index_type page_table_entry_x64::pat_index_large ( ) const
noexcept

PAT Index (Large)

Precondition
expects: none
Postcondition
ensures: none
Returns
combines PWT, PCD and PAT to return the PAT index

Definition at line 206 of file page_table_entry_x64.cpp.

◆ set_pat_index_large()

void page_table_entry_x64::set_pat_index_large ( pat_index_type  index)

Set PAT Index (Large)

Precondition
expects: index >= 0 && index < 8
Postcondition
ensures: none
Parameters
indexthe index of the PAT to set

Definition at line 218 of file page_table_entry_x64.cpp.

◆ clear()

void page_table_entry_x64::clear ( )
noexcept

Clear PTE

Precondition
expects: none
Postcondition
ensures: none

Definition at line 275 of file page_table_entry_x64.cpp.

◆ operator=() [1/2]

page_table_entry_x64& page_table_entry_x64::operator= ( page_table_entry_x64 &&  )
defaultnoexcept

◆ operator=() [2/2]

page_table_entry_x64& page_table_entry_x64::operator= ( const page_table_entry_x64 )
delete

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