From 8ee856f1d53f9b181a06183c8c86855898b82ba7 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Thu, 8 Jun 2006 19:03:58 -0400 Subject: add write/read functions that have endian conversions in them when we get a virtual port delete it (even though delete does nothing in these cases) src/arch/alpha/linux/system.cc: src/arch/alpha/stacktrace.cc: src/base/remote_gdb.cc: src/cpu/simple_thread.cc: when we get a virtual port delete it (even though delete does nothing in this case) src/mem/port.hh: src/mem/vport.hh: add write/read functions that have endian conversions in them --HG-- extra : convert_revision : 163e05cc038c461f95c92f8ce55422033f9ea513 --- src/arch/alpha/linux/system.cc | 7 +++++-- src/arch/alpha/stacktrace.cc | 36 +++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) (limited to 'src/arch') 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(addr)); + thread_info_size = vp->readGtoH(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(addr)); + task_struct_size = vp->readGtoH(addr); if (!tc->getSystemPtr()->kernelSymtab->findAddress("thread_info_task", addr)) panic("thread info not compiled into kernel\n"); - task_off = gtoh(tc->getVirtPort()->read(addr)); + task_off = vp->readGtoH(addr); if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_pid", addr)) panic("thread info not compiled into kernel\n"); - pid_off = gtoh(tc->getVirtPort()->read(addr)); + pid_off = vp->readGtoH(addr); if (!tc->getSystemPtr()->kernelSymtab->findAddress("task_struct_comm", addr)) panic("thread info not compiled into kernel\n"); - name_off = gtoh(tc->getVirtPort()->read(addr)); + name_off = vp->readGtoH(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(base + task_off)); + Addr tsk; + + VirtualPort *vp; + + vp = tc->getVirtPort(); + tsk = vp->readGtoH(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(task + pid_off)); + uint16_t pd; + + VirtualPort *vp; + + vp = tc->getVirtPort(); + pd = vp->readGtoH(task + pid_off); + tc->delVirtPort(vp); + + return pd; } string -- cgit v1.2.3