summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-06-09 12:29:40 -0400
committerKevin Lim <ktlim@umich.edu>2006-06-09 12:29:40 -0400
commit4b732e43a61bd87db39a0316105a32dcde9b0fb8 (patch)
treea67dfe55148f68243a9ffa757a22909e42bf5b76 /src/arch
parenta7f5f54ff8d7097c60fdf09bf4bbba121aaff5c6 (diff)
parent6875e8d8391035edf8fc4a8fdb29f614a527b0bc (diff)
downloadgem5-4b732e43a61bd87db39a0316105a32dcde9b0fb8.tar.xz
Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/newmem-merge --HG-- extra : convert_revision : 184b6ff6c11de8f9c9083dcb93754cb451d9cfce
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/alpha/linux/system.cc7
-rw-r--r--src/arch/alpha/stacktrace.cc36
2 files changed, 34 insertions, 9 deletions
diff --git a/src/arch/alpha/linux/system.cc b/src/arch/alpha/linux/system.cc
index e6c6f42e9..3e061bba8 100644
--- a/src/arch/alpha/linux/system.cc
+++ b/src/arch/alpha/linux/system.cc
@@ -181,8 +181,11 @@ LinuxAlphaSystem::setDelayLoop(ThreadContext *tc)
if (kernelSymtab->findAddress("loops_per_jiffy", addr)) {
Tick cpuFreq = tc->getCpuPtr()->frequency();
Tick intrFreq = platform->intrFrequency();
- tc->getVirtPort(tc)->write(addr,
- (uint32_t)((cpuFreq / intrFreq) * 0.9988));
+ VirtualPort *vp;
+
+ vp = tc->getVirtPort();
+ vp->writeHtoG(addr, (uint32_t)((cpuFreq / intrFreq) * 0.9988));
+ tc->delVirtPort(vp);
}
}
diff --git a/src/arch/alpha/stacktrace.cc b/src/arch/alpha/stacktrace.cc
index 3519fd940..d70a4d6dd 100644
--- a/src/arch/alpha/stacktrace.cc
+++ b/src/arch/alpha/stacktrace.cc
@@ -47,25 +47,31 @@ ProcessInfo::ProcessInfo(ThreadContext *_tc)
{
Addr addr = 0;
+ VirtualPort *vp;
+
+ vp = tc->getVirtPort();
+
if (!tc->getSystemPtr()->kernelSymtab->findAddress("thread_info_size", addr))
panic("thread info not compiled into kernel\n");
- thread_info_size = gtoh(tc->getVirtPort()->read<int32_t>(addr));
+ thread_info_size = vp->readGtoH<int32_t>(addr);
if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_size", addr))
panic("thread info not compiled into kernel\n");
- task_struct_size = gtoh(tc->getVirtPort()->read<int32_t>(addr));
+ task_struct_size = vp->readGtoH<int32_t>(addr);
if (!tc->getSystemPtr()->kernelSymtab->findAddress("thread_info_task", addr))
panic("thread info not compiled into kernel\n");
- task_off = gtoh(tc->getVirtPort()->read<int32_t>(addr));
+ task_off = vp->readGtoH<int32_t>(addr);
if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_pid", addr))
panic("thread info not compiled into kernel\n");
- pid_off = gtoh(tc->getVirtPort()->read<int32_t>(addr));
+ pid_off = vp->readGtoH<int32_t>(addr);
if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_comm", addr))
panic("thread info not compiled into kernel\n");
- name_off = gtoh(tc->getVirtPort()->read<int32_t>(addr));
+ name_off = vp->readGtoH<int32_t>(addr);
+
+ tc->delVirtPort(vp);
}
Addr
@@ -75,7 +81,15 @@ ProcessInfo::task(Addr ksp) const
if (base == ULL(0xfffffc0000000000))
return 0;
- return gtoh(tc->getVirtPort()->read<Addr>(base + task_off));
+ Addr tsk;
+
+ VirtualPort *vp;
+
+ vp = tc->getVirtPort();
+ tsk = vp->readGtoH<Addr>(base + task_off);
+ tc->delVirtPort(vp);
+
+ return tsk;
}
int
@@ -85,7 +99,15 @@ ProcessInfo::pid(Addr ksp) const
if (!task)
return -1;
- return gtoh(tc->getVirtPort()->read<uint16_t>(task + pid_off));
+ uint16_t pd;
+
+ VirtualPort *vp;
+
+ vp = tc->getVirtPort();
+ pd = vp->readGtoH<uint16_t>(task + pid_off);
+ tc->delVirtPort(vp);
+
+ return pd;
}
string