diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:33:57 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:33:57 -0700 |
commit | 9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac (patch) | |
tree | b4a977c8d7379ac552d245847825a73b61bf8c5b /src/sim/tlb.cc | |
parent | 80d51650c8bce1503e5ce3877f3bfe21d3e57d45 (diff) | |
download | gem5-9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac.tar.xz |
Address translation: Make the page table more flexible.
The page table now stores actual page table entries. It is still a templated
class here, but this will be corrected in the near future.
--HG--
extra : convert_revision : 804dcc6320414c2b3ab76a74a15295bd24e1d13d
Diffstat (limited to 'src/sim/tlb.cc')
-rw-r--r-- | src/sim/tlb.cc | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/sim/tlb.cc b/src/sim/tlb.cc index 9c3166280..5ceec637e 100644 --- a/src/sim/tlb.cc +++ b/src/sim/tlb.cc @@ -34,21 +34,17 @@ #include "sim/tlb.hh" Fault -GenericITB::translate(RequestPtr &req, ThreadContext *tc) +GenericTLBBase::translate(RequestPtr req, ThreadContext * tc) { #if FULL_SYSTEM - panic("Generic ITB translation shouldn't be used in full system mode.\n"); + panic("Generic translation shouldn't be used in full system mode.\n"); #else - return tc->getProcessPtr()->pTable->translate(req); -#endif -} + Process * p = tc->getProcessPtr(); -Fault -GenericDTB::translate(RequestPtr &req, ThreadContext *tc, bool write) -{ -#if FULL_SYSTEM - panic("Generic DTB translation shouldn't be used in full system mode.\n"); -#else - return tc->getProcessPtr()->pTable->translate(req); + Fault fault = p->pTable->translate(req); + if(fault != NoFault) + return fault; + + return NoFault; #endif -}; +} |