#[repr(C)]pub struct tagged_physical_address_t {
pub valid: c_int,
pub paddr: physical_address_t,
}
Expand description
All functions in the interface get the object implementing the interface as their first parameter.
flush_all is called when all TLB entries should be flushed. If keep_global_entries is set, then TLB entries with their global bit set should not be flushed.
flush_page is invoked when pages containing laddr are to be removed from the TLB.
lookup is used by the CPU when a memory access misses the STC. It must return true (non-zero) if and only if the memory operation specified by mem_tr hits the TLB and does not raise an exception. The mode, linear_address are valid when the method is invoked. The other fields passed through mem_tr are undefined. If the method returns true, the s.physical_address, pat_type, and mtrr_type fields of mem_tr must be updated by lookup.
An access that misses in lookup but does not raise a fault is inserted into the TLB with add. The page_size encoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb pages.
itlb_lookup is a simplified version of lookup used only for instruction TLB lookups. If the lookup is successful valid and paddr should be set, otherwise valid should be cleared.
set_pae_mode is invoked when the cpu changes the PAE enable bit.
It class implementing the interface must make sure that only addresses mapped in the TLB are present in the STCs.
This interface may be changed or replaced with an architecture independent interface in future versions of Simics.
Fields§
§valid: c_int
§paddr: physical_address_t
Trait Implementations§
source§impl Clone for tagged_physical_address_t
impl Clone for tagged_physical_address_t
source§fn clone(&self) -> tagged_physical_address_t
fn clone(&self) -> tagged_physical_address_t
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for tagged_physical_address_t
impl Debug for tagged_physical_address_t
source§impl Default for tagged_physical_address_t
impl Default for tagged_physical_address_t
source§fn default() -> tagged_physical_address_t
fn default() -> tagged_physical_address_t
source§impl Hash for tagged_physical_address_t
impl Hash for tagged_physical_address_t
source§impl Ord for tagged_physical_address_t
impl Ord for tagged_physical_address_t
source§fn cmp(&self, other: &tagged_physical_address_t) -> Ordering
fn cmp(&self, other: &tagged_physical_address_t) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialOrd for tagged_physical_address_t
impl PartialOrd for tagged_physical_address_t
impl Copy for tagged_physical_address_t
impl Eq for tagged_physical_address_t
impl StructuralPartialEq for tagged_physical_address_t
Auto Trait Implementations§
impl Freeze for tagged_physical_address_t
impl RefUnwindSafe for tagged_physical_address_t
impl Send for tagged_physical_address_t
impl Sync for tagged_physical_address_t
impl Unpin for tagged_physical_address_t
impl UnwindSafe for tagged_physical_address_t
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)