gem5 v25.0.0.1
Loading...
Searching...
No Matches
gem5::EmulationPageTable::PageTableTranslationGen Class Reference

#include <page_table.hh>

Inheritance diagram for gem5::EmulationPageTable::PageTableTranslationGen:
gem5::TranslationGen

Public Member Functions

 PageTableTranslationGen (EmulationPageTable *_pt, Addr vaddr, Addr size)
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

EmulationPageTablept

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 164 of file page_table.hh.

Constructor & Destructor Documentation

◆ PageTableTranslationGen()

gem5::EmulationPageTable::PageTableTranslationGen::PageTableTranslationGen ( EmulationPageTable * _pt,
Addr vaddr,
Addr size )
inline

Member Function Documentation

◆ translate()

void gem5::EmulationPageTable::PageTableTranslationGen::translate ( Range & range) const
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 172 of file page_table.cc.

References gem5::TranslationGen::Range::fault, gem5::TranslationGen::Range::paddr, pt, gem5::roundUp(), gem5::TranslationGen::Range::size, and gem5::TranslationGen::Range::vaddr.

Member Data Documentation

◆ pt

EmulationPageTable* gem5::EmulationPageTable::PageTableTranslationGen::pt
private

Definition at line 167 of file page_table.hh.

Referenced by PageTableTranslationGen(), and translate().


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

Generated on Sat Oct 18 2025 08:06:50 for gem5 by doxygen 1.14.0