122 {
return get_bits(*m_pte, 0x0000FFFFFFFFF000UL); }
126 { *m_pte =
set_bits(*m_pte, 0x0000FFFFFFFFF000UL,
addr); }
141 if (this->pwt()) index += 1;
142 if (this->pcd()) index += 2;
143 if (this->pat_4k()) index += 4;
156 this->set_pwt(
false);
157 this->set_pcd(
false);
158 this->set_pat_4k(
false);
163 this->set_pcd(
false);
164 this->set_pat_4k(
false);
168 this->set_pwt(
false);
170 this->set_pat_4k(
false);
176 this->set_pat_4k(
false);
180 this->set_pwt(
false);
181 this->set_pcd(
false);
182 this->set_pat_4k(
true);
187 this->set_pcd(
false);
188 this->set_pat_4k(
true);
192 this->set_pwt(
false);
194 this->set_pat_4k(
true);
200 this->set_pat_4k(
true);
210 if (this->pwt()) index += 1;
211 if (this->pcd()) index += 2;
212 if (this->pat_large()) index += 4;
225 this->set_pwt(
false);
226 this->set_pcd(
false);
227 this->set_pat_large(
false);
232 this->set_pcd(
false);
233 this->set_pat_large(
false);
237 this->set_pwt(
false);
239 this->set_pat_large(
false);
245 this->set_pat_large(
false);
249 this->set_pwt(
false);
250 this->set_pcd(
false);
251 this->set_pat_large(
true);
256 this->set_pcd(
false);
257 this->set_pat_large(
true);
261 this->set_pwt(
false);
263 this->set_pat_large(
true);
269 this->set_pat_large(
true);
uintptr_t integer_pointer
bool pwt() const noexcept
void set_pat_index_4k(pat_index_type index)
void set_nx(bool enabled) noexcept
page_table_entry_x64(gsl::not_null< pointer > pte) noexcept
void set_us(bool enabled) noexcept
void set_dirty(bool enabled) noexcept
void set_pat_large(bool enabled) noexcept
void set_pcd(bool enabled) noexcept
bool pat_4k() const noexcept
void set_pat_4k(bool enabled) noexcept
bool present() const noexcept
void set_phys_addr(integer_pointer addr) noexcept
void set_present(bool enabled) noexcept
bool pcd() const noexcept
bool dirty() const noexcept
void uint64_t uint64_t uint64_t *rdx noexcept
void set_global(bool enabled) noexcept
auto index(const T virt, const F from)
constexpr const auto addr
void set_accessed(bool enabled) noexcept
bool pat_large() const noexcept
auto clear_bit(T t, B b) noexcept
auto set_bit(T t, B b) noexcept
auto get_bits(T t, M m) noexcept
pat_index_type pat_index_large() const noexcept
void set_rw(bool enabled) noexcept
bool accessed() const noexcept
pat_index_type pat_index_4k() const noexcept
void set_pat_index_large(pat_index_type index)
auto is_bit_set(T t, B b) noexcept
void set_pwt(bool enabled) noexcept
integer_pointer phys_addr() const noexcept
auto set_bits(T t, M m, V v) noexcept
void set_ps(bool enabled) noexcept
bool global() const noexcept