|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
Classes | |
| class | DMMUWrapper |
| struct | DMMUWrapperSystem |
| class | MMU |
| class | PTE |
| Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags. More... | |
| class | PTEFormat |
| class | PTEFormatBuilder |
| Sigleton builder utility to build up customized PTE format. More... | |
| class | TLB |
Typedefs | |
| typedef int32_t(* | handler_ptr) (int32_t fault, MMU *mmu, uint64_t vma, MM_ACCESS access) |
| typedef std::map< std::string, std::pair< uint32_t, uint32_t > > | PTEFormatMap |
| Singleton to represent specific PTE format, every PTE uses this singleton to parse raw PTE value into PPN and protection flags, read/write PPN or flags. | |
Enumerations | |
| enum | MM_ACCESS { R_ACCESS , W_ACCESS , X_ACCESS } |
Functions | |
| int32_t | tlb_miss_handler (int32_t fault, MMU *mmu, uint64_t vma, MM_ACCESS access) |
| void | DUMP_MMU (MMU *mmu) |
| static etiss_int32 | iread (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length) |
| static etiss_int32 | iwrite (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
| static etiss_int32 | dread (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
| static etiss_int32 | dwrite (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
| static etiss_int32 | dbg_read (void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
| static etiss_int32 | dbg_write (void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
| static void | syncTime (void *handle, ETISS_CPU *cpu) |
| static int32_t | page_fault_ni_ (int32_t fault, MMU *mmu, uint64_t, MM_ACCESS) |
Variables | |
| MM_EXPORT const int32_t | NOERROR |
| MM_EXPORT const int32_t | PTEOVERLAP |
| MM_EXPORT const int32_t | TLBMISS |
| MM_EXPORT const int32_t | PTENOTEXISTED |
| MM_EXPORT const int32_t | TLBISFULL |
| MM_EXPORT const int32_t | PROTECTIONVIALATION |
| MM_EXPORT std::string | PAGE_FAULT_MSG [] |
| MM_EXPORT handler_ptr | page_fault_handler [] |
Definition at line 34 of file PageFaultVector.h.
| typedef std::map<std::string, std::pair<uint32_t, uint32_t> > etiss::mm::PTEFormatMap |
Singleton to represent specific PTE format, every PTE uses this singleton to parse raw PTE value into PPN and protection flags, read/write PPN or flags.
Definition at line 26 of file PTEFormat.h.
| enum etiss::mm::MM_ACCESS |
| Enumerator | |
|---|---|
| R_ACCESS | |
| W_ACCESS | |
| X_ACCESS | |
Definition at line 24 of file PageFaultVector.h.
|
static |
Definition at line 95 of file DMMUWrapper.cpp.
References ETISS_System::dbg_read, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and X_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().


|
static |
Definition at line 111 of file DMMUWrapper.cpp.
References ETISS_System::dbg_write, ETISS_System::handle, int32_t, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, etiss::VERBOSE, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().


|
static |
Definition at line 61 of file DMMUWrapper.cpp.
References ETISS_System::dread, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, R_ACCESS, etiss::mm::DMMUWrapperSystem::this_, uint64_t, and unlikely.
Referenced by etiss::mm::DMMUWrapper::wrap().


| void etiss::mm::DUMP_MMU | ( | MMU * | mmu | ) |
Definition at line 209 of file MMU.cpp.
References etiss::mm::MMU::Dump().
Referenced by page_fault_ni_().


|
static |
Definition at line 78 of file DMMUWrapper.cpp.
References ETISS_System::dwrite, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().


|
static |
Definition at line 23 of file DMMUWrapper.cpp.
References ETISS_System::handle, int32_t, ETISS_System::iread, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, R_ACCESS, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and etiss::VERBOSE.
Referenced by etiss::mm::DMMUWrapper::wrap().


|
static |
Definition at line 42 of file DMMUWrapper.cpp.
References ETISS_System::handle, int32_t, ETISS_System::iwrite, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, etiss::VERBOSE, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().


Definition at line 33 of file PageFaultVector.cpp.
References DUMP_MMU(), etiss::FATALERROR, etiss::log(), NOERROR, and PAGE_FAULT_MSG.

|
static |
Definition at line 130 of file DMMUWrapper.cpp.
References ETISS_System::handle, etiss::mm::DMMUWrapperSystem::orig, and ETISS_System::syncTime.
Referenced by etiss::mm::DMMUWrapper::wrap().

Definition at line 186 of file MMU.cpp.
References etiss::mm::MMU::HasPageTableWalker(), int32_t, NOERROR, R_ACCESS, W_ACCESS, etiss::mm::MMU::WalkPageTable(), and X_ACCESS.
Referenced by etiss::mm::MMU::MMU().


Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::MMU::AddTLBEntry(), etiss::mm::TLB< EntryNum >::EvictPTE(), etiss::mm::TLB< EntryNum >::Lookup(), page_fault_ni_(), tlb_miss_handler(), etiss::mm::MMU::Translate(), and etiss::mm::TLB< EntryNum >::UpdatePTE().
| handler_ptr etiss::mm::page_fault_handler |
Definition at line 46 of file PageFaultVector.cpp.
| std::string etiss::mm::PAGE_FAULT_MSG |
Definition at line 26 of file PageFaultVector.cpp.
Referenced by page_fault_ni_().
Referenced by etiss::mm::TLB< EntryNum >::EvictPTE(), and etiss::mm::TLB< EntryNum >::UpdatePTE().
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), and etiss::mm::TLB< EntryNum >::AddPTE().
Referenced by etiss::mm::TLB< EntryNum >::Lookup(), and etiss::mm::MMU::MMU().