summaryrefslogtreecommitdiff
path: root/src/arch/sparc/linux/process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/sparc/linux/process.cc')
-rw-r--r--src/arch/sparc/linux/process.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/arch/sparc/linux/process.cc b/src/arch/sparc/linux/process.cc
index 0f72c69c7..d12f13048 100644
--- a/src/arch/sparc/linux/process.cc
+++ b/src/arch/sparc/linux/process.cc
@@ -65,14 +65,15 @@ Sparc32LinuxProcess::Sparc32LinuxProcess(ProcessParams * params,
: Sparc32Process(params, objFile)
{}
-void Sparc32LinuxProcess::handleTrap(int trapNum, ThreadContext *tc)
+void Sparc32LinuxProcess::handleTrap(int trapNum, ThreadContext *tc,
+ Fault *fault)
{
switch (trapNum) {
case 0x10: //Linux 32 bit syscall trap
- tc->syscall(tc->readIntReg(1));
+ tc->syscall(tc->readIntReg(1), fault);
break;
default:
- SparcProcess::handleTrap(trapNum, tc);
+ SparcProcess::handleTrap(trapNum, tc, fault);
}
}
@@ -81,14 +82,15 @@ Sparc64LinuxProcess::Sparc64LinuxProcess(ProcessParams * params,
: Sparc64Process(params, objFile)
{}
-void Sparc64LinuxProcess::handleTrap(int trapNum, ThreadContext *tc)
+void Sparc64LinuxProcess::handleTrap(int trapNum, ThreadContext *tc,
+ Fault *fault)
{
switch (trapNum) {
// case 0x10: // Linux 32 bit syscall trap
case 0x6d: // Linux 64 bit syscall trap
- tc->syscall(tc->readIntReg(1));
+ tc->syscall(tc->readIntReg(1), fault);
break;
default:
- SparcProcess::handleTrap(trapNum, tc);
+ SparcProcess::handleTrap(trapNum, tc, fault);
}
}