diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/process.cc | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/sim/process.cc b/sim/process.cc index e3cae2855..fddd9a0b9 100644 --- a/sim/process.cc +++ b/sim/process.cc @@ -48,8 +48,7 @@ #include "sim/stats.hh" #include "sim/syscall_emul.hh" -#include "arch/tru64_process.hh" -#include "arch/linux_process.hh" +#include "arch/process.hh" using namespace std; using namespace TheISA; @@ -376,27 +375,10 @@ LiveProcess::create(const string &nm, fatal("Can't load object file %s", executable); } - // check object type & set up syscall emulation pointer - if (objFile->getArch() == ObjectFile::Alpha) { - switch (objFile->getOpSys()) { - case ObjectFile::Tru64: - process = new AlphaTru64Process(nm, objFile, - stdin_fd, stdout_fd, stderr_fd, - argv, envp); - break; - - case ObjectFile::Linux: - process = new AlphaLinuxProcess(nm, objFile, - stdin_fd, stdout_fd, stderr_fd, - argv, envp); - break; - - default: - fatal("Unknown/unsupported operating system."); - } - } else { - fatal("Unknown object file architecture."); - } + // set up syscall emulation pointer for the current ISA + process = createProcess(nm, objFile, + stdin_fd, stdout_fd, stderr_fd, + argv, envp); delete objFile; |