summaryrefslogtreecommitdiff
path: root/arch/sparc/process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/process.cc')
-rw-r--r--arch/sparc/process.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/sparc/process.cc b/arch/sparc/process.cc
index 7f2b0d40a..250c1bec4 100644
--- a/arch/sparc/process.cc
+++ b/arch/sparc/process.cc
@@ -29,6 +29,7 @@
#include "arch/sparc/isa_traits.hh"
#include "arch/sparc/process.hh"
#include "arch/sparc/linux/process.hh"
+#include "arch/sparc/solaris/process.hh"
#include "base/loader/object_file.hh"
#include "base/misc.hh"
#include "cpu/exec_context.hh"
@@ -54,7 +55,8 @@ SparcLiveProcess::create(const std::string &nm, System *system, int stdin_fd,
if (objFile->getArch() != ObjectFile::SPARC)
- fatal("Object file with arch %x does not match architecture %x.", objFile->getArch(), ObjectFile::SPARC);
+ fatal("Object file with arch %x does not match architecture %x.",
+ objFile->getArch(), ObjectFile::SPARC);
switch (objFile->getOpSys()) {
case ObjectFile::Linux:
process = new SparcLinuxProcess(nm, objFile, system,
@@ -62,7 +64,12 @@ SparcLiveProcess::create(const std::string &nm, System *system, int stdin_fd,
argv, envp);
break;
+
case ObjectFile::Solaris:
+ process = new SparcSolarisProcess(nm, objFile, system,
+ stdin_fd, stdout_fd, stderr_fd,
+ argv, envp);
+ break;
default:
fatal("Unknown/unsupported operating system.");
}