summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2008-12-04 18:03:35 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2008-12-04 18:03:35 -0500
commite2c7618e508c6e5c0cbbd091eabb336f3e259465 (patch)
treeb62bba786153422bcaffe32b285b9cb97ca23339 /src/sim
parent041ca19edc7ebd905b3fe3e1b731c0b19a146896 (diff)
downloadgem5-e2c7618e508c6e5c0cbbd091eabb336f3e259465.tar.xz
This patch pulls out the auxiliary vector struct from individual ISA
LiveProcesses to the base LiveProcess definition so anyone can use them.
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/process.cc10
-rw-r--r--src/sim/process.hh16
2 files changed, 26 insertions, 0 deletions
diff --git a/src/sim/process.cc b/src/sim/process.cc
index dab374d84..73adc96e3 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -86,6 +86,16 @@ using namespace TheISA;
// current number of allocated processes
int num_processes = 0;
+template<class IntType>
+M5_auxv_t<IntType>::M5_auxv_t(IntType type, IntType val)
+{
+ a_type = TheISA::htog(type);
+ a_val = TheISA::htog(val);
+}
+
+template class M5_auxv_t<uint32_t>;
+template class M5_auxv_t<uint64_t>;
+
Process::Process(ProcessParams * params)
: SimObject(params), system(params->system), checkpointRestored(false),
max_stack_size(params->max_stack_size)
diff --git a/src/sim/process.hh b/src/sim/process.hh
index d6ed59ced..996663847 100644
--- a/src/sim/process.hh
+++ b/src/sim/process.hh
@@ -61,6 +61,22 @@ namespace TheISA
class RemoteGDB;
}
+template<class IntType>
+struct M5_auxv_t
+{
+ IntType a_type;
+ union {
+ IntType a_val;
+ IntType a_ptr;
+ IntType a_fcn;
+ };
+
+ M5_auxv_t()
+ {}
+
+ M5_auxv_t(IntType type, IntType val);
+};
+
class Process : public SimObject
{
public: