gem5 v24.0.0.0
|
#include <mmu.hh>
Public Member Functions | |
MMUTranslationGen (Addr page_bytes, Addr new_start, Addr new_size, ThreadContext *new_tc, BaseMMU *new_mmu, BaseMMU::Mode new_mode, Request::Flags new_flags) | |
Public Member Functions inherited from gem5::TranslationGen | |
TranslationGen (Addr new_start, Addr new_size) | |
The starting virtual address and the size of the entire region being translated. | |
virtual | ~TranslationGen () |
Addr | start () const |
Addr | size () const |
const_iterator | begin () const |
const_iterator | end () const |
Private Member Functions | |
void | translate (Range &range) const override |
Subclasses implement this function to complete TranslationGen. | |
Private Attributes | |
ThreadContext * | tc |
ContextID | cid |
BaseMMU * | mmu |
BaseMMU::Mode | mode |
Request::Flags | flags |
const Addr | pageBytes |
Additional Inherited Members | |
Public Types inherited from gem5::TranslationGen | |
using | const_iterator = TranslationGenConstIterator |
Protected Attributes inherited from gem5::TranslationGen | |
Addr | _start |
Addr | _size |
gem5::BaseMMU::MMUTranslationGen::MMUTranslationGen | ( | Addr | page_bytes, |
Addr | new_start, | ||
Addr | new_size, | ||
ThreadContext * | new_tc, | ||
BaseMMU * | new_mmu, | ||
BaseMMU::Mode | new_mode, | ||
Request::Flags | new_flags ) |
|
overrideprivatevirtual |
Subclasses implement this function to complete TranslationGen.
It should accept a Range reference which will have its "vaddr" field set to the virtual address to translate, and the "size" field set to the remaining size of the entire region being translated.
If there is a fault performing the translation of "vaddr", then this function should set the "fault" field of range and return.
If the translation was successful, this method should set "paddr" to the corresponding physical address, and set "size" to the number of bytes corresponding to the translation. Or more precisely, size should be set to the maximum "N" where vaddr + n maps to paddr + n for all 0 <= n <= N.
Implements gem5::TranslationGen.
Definition at line 140 of file mmu.cc.
References gem5::TranslationGen::Range::fault, flags, gem5::TranslationGen::Range::flags, gem5::Request::funcRequestorId, gem5::ArmISA::mode, gem5::NoFault, gem5::TranslationGen::Range::paddr, gem5::roundUp(), gem5::TranslationGen::Range::size, and gem5::TranslationGen::Range::vaddr.
|
private |
|
private |
|
private |
|
private |