summaryrefslogtreecommitdiff
path: root/src/arch/x86/pagetable_walker.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-23 00:20:34 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-23 00:20:34 -0800
commite8c1c3e72eb01409f7ec110eee3b32c07347bf6f (patch)
tree26f23b24fdfdfff630cda342e94d055437f9d5f8 /src/arch/x86/pagetable_walker.cc
parent6c5afe6346b31edf6af245002c270a3c26618833 (diff)
downloadgem5-e8c1c3e72eb01409f7ec110eee3b32c07347bf6f.tar.xz
X86: Pass whether an access was a read/write/fetch so faults can behave accordingly.
Diffstat (limited to 'src/arch/x86/pagetable_walker.cc')
-rw-r--r--src/arch/x86/pagetable_walker.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/arch/x86/pagetable_walker.cc b/src/arch/x86/pagetable_walker.cc
index 564a04b38..b0b9209b5 100644
--- a/src/arch/x86/pagetable_walker.cc
+++ b/src/arch/x86/pagetable_walker.cc
@@ -319,11 +319,13 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
}
void
-Walker::start(ThreadContext * _tc, Addr vaddr)
+Walker::start(ThreadContext * _tc, Addr vaddr, bool _write, bool _execute)
{
assert(state == Ready);
assert(!tc);
tc = _tc;
+ execute = _execute;
+ write = _write;
VAddr addr = vaddr;