summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux/process.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-27 09:21:14 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-27 09:21:14 -0800
commit932f6440a1269c6ceaf2dc07a9ced8ac4b7b1652 (patch)
treed8fd1aa417743b58a275bb9fd24fe5debc0088be /src/arch/x86/linux/process.cc
parentbebbc9dc8901d82954988d019d54bf5dee2d1a90 (diff)
downloadgem5-932f6440a1269c6ceaf2dc07a9ced8ac4b7b1652.tar.xz
X86: Add a class to support 32 bit x86 linux process.
Diffstat (limited to 'src/arch/x86/linux/process.cc')
-rw-r--r--src/arch/x86/linux/process.cc23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/arch/x86/linux/process.cc b/src/arch/x86/linux/process.cc
index 8beaf150b..8a3fc67ee 100644
--- a/src/arch/x86/linux/process.cc
+++ b/src/arch/x86/linux/process.cc
@@ -72,26 +72,17 @@ using namespace X86ISA;
SyscallDesc*
X86LinuxProcess::getDesc(int callnum)
{
- if (callnum < 0 || callnum > Num_Syscall_Descs)
+ if (callnum < 0 || callnum >= Num_Syscall_Descs)
return NULL;
return &syscallDescs[callnum];
}
-X86LinuxProcess::X86LinuxProcess(LiveProcessParams * params,
+X86_64LinuxProcess::X86_64LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
- : X86LiveProcess(params, objFile),
- Num_Syscall_Descs(273)
+ : X86LinuxProcess(params, objFile, syscallDescs, 273)
{}
-void X86LinuxProcess::handleTrap(int trapNum, ThreadContext *tc)
-{
- switch(trapNum)
- {
- //This implementation is from SPARC
- case 0x10: //Linux 32 bit syscall trap
- tc->syscall(tc->readIntReg(1));
- break;
- default:
- X86LiveProcess::handleTrap(trapNum, tc);
- }
-}
+I386LinuxProcess::I386LinuxProcess(LiveProcessParams * params,
+ ObjectFile *objFile)
+ : X86LinuxProcess(params, objFile, syscallDescs, 324)
+{}