gem5  v22.0.0.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
gem5::BaseMMU::MMUTranslationGen Class Reference

#include <mmu.hh>

Inheritance diagram for gem5::BaseMMU::MMUTranslationGen:

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. More...
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. More...

Private Attributes

ContextID cid
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

Detailed Description

Definition at line 126 of file mmu.hh.

Constructor & Destructor Documentation

◆ MMUTranslationGen()

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 

Definition at line 131 of file

Member Function Documentation

◆ translate()

void gem5::BaseMMU::MMUTranslationGen::translate ( Range range) const

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

References gem5::TranslationGen::Range::fault, flags, gem5::Request::funcRequestorId, gem5::ArmISA::mode, gem5::NoFault, gem5::TranslationGen::Range::paddr, gem5::roundUp(), gem5::TranslationGen::Range::size, and gem5::TranslationGen::Range::vaddr.

Member Data Documentation

◆ cid

ContextID gem5::BaseMMU::MMUTranslationGen::cid

Definition at line 130 of file mmu.hh.

◆ flags

Request::Flags gem5::BaseMMU::MMUTranslationGen::flags

Definition at line 133 of file mmu.hh.

◆ mmu

BaseMMU* gem5::BaseMMU::MMUTranslationGen::mmu

Definition at line 131 of file mmu.hh.

◆ mode

BaseMMU::Mode gem5::BaseMMU::MMUTranslationGen::mode

Definition at line 132 of file mmu.hh.

◆ pageBytes

const Addr gem5::BaseMMU::MMUTranslationGen::pageBytes

Definition at line 134 of file mmu.hh.

◆ tc

ThreadContext* gem5::BaseMMU::MMUTranslationGen::tc

Definition at line 129 of file mmu.hh.

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

Generated on Thu Jul 28 2022 13:32:58 for gem5 by doxygen 1.8.17