system.cc (2665:a124942bacb8) system.cc (2680:246e7104f744)
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 32 unchanged lines hidden (view full) ---

41 */
42
43#include "arch/arguments.hh"
44#include "arch/vtophys.hh"
45#include "arch/alpha/linux/system.hh"
46#include "arch/alpha/linux/threadinfo.hh"
47#include "arch/alpha/system.hh"
48#include "base/loader/symtab.hh"
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 32 unchanged lines hidden (view full) ---

41 */
42
43#include "arch/arguments.hh"
44#include "arch/vtophys.hh"
45#include "arch/alpha/linux/system.hh"
46#include "arch/alpha/linux/threadinfo.hh"
47#include "arch/alpha/system.hh"
48#include "base/loader/symtab.hh"
49#include "cpu/exec_context.hh"
49#include "cpu/thread_context.hh"
50#include "cpu/base.hh"
51#include "dev/platform.hh"
52#include "kern/linux/printk.hh"
53#include "kern/linux/events.hh"
54#include "mem/physical.hh"
55#include "mem/port.hh"
56#include "sim/builder.hh"
57#include "sim/byteswap.hh"

--- 112 unchanged lines hidden (view full) ---

170 delete printThreadEvent;
171 delete intStartEvent;
172 delete intEndEvent;
173 delete intEndEvent2;
174}
175
176
177void
50#include "cpu/base.hh"
51#include "dev/platform.hh"
52#include "kern/linux/printk.hh"
53#include "kern/linux/events.hh"
54#include "mem/physical.hh"
55#include "mem/port.hh"
56#include "sim/builder.hh"
57#include "sim/byteswap.hh"

--- 112 unchanged lines hidden (view full) ---

170 delete printThreadEvent;
171 delete intStartEvent;
172 delete intEndEvent;
173 delete intEndEvent2;
174}
175
176
177void
178LinuxAlphaSystem::setDelayLoop(ExecContext *xc)
178LinuxAlphaSystem::setDelayLoop(ThreadContext *tc)
179{
180 Addr addr = 0;
181 if (kernelSymtab->findAddress("loops_per_jiffy", addr)) {
179{
180 Addr addr = 0;
181 if (kernelSymtab->findAddress("loops_per_jiffy", addr)) {
182 Tick cpuFreq = xc->getCpuPtr()->frequency();
182 Tick cpuFreq = tc->getCpuPtr()->frequency();
183 Tick intrFreq = platform->intrFrequency();
183 Tick intrFreq = platform->intrFrequency();
184 xc->getVirtPort(xc)->write(addr,
184 tc->getVirtPort(tc)->write(addr,
185 (uint32_t)((cpuFreq / intrFreq) * 0.9988));
186 }
187}
188
189
190void
185 (uint32_t)((cpuFreq / intrFreq) * 0.9988));
186 }
187}
188
189
190void
191LinuxAlphaSystem::SkipDelayLoopEvent::process(ExecContext *xc)
191LinuxAlphaSystem::SkipDelayLoopEvent::process(ThreadContext *tc)
192{
192{
193 SkipFuncEvent::process(xc);
193 SkipFuncEvent::process(tc);
194 // calculate and set loops_per_jiffy
194 // calculate and set loops_per_jiffy
195 ((LinuxAlphaSystem *)xc->getSystemPtr())->setDelayLoop(xc);
195 ((LinuxAlphaSystem *)tc->getSystemPtr())->setDelayLoop(tc);
196}
197
198void
196}
197
198void
199LinuxAlphaSystem::PrintThreadInfo::process(ExecContext *xc)
199LinuxAlphaSystem::PrintThreadInfo::process(ThreadContext *tc)
200{
200{
201 Linux::ThreadInfo ti(xc);
201 Linux::ThreadInfo ti(tc);
202
203 DPRINTF(Thread, "Currently Executing Thread %s, pid %d, started at: %d\n",
204 ti.curTaskName(), ti.curTaskPID(), ti.curTaskStart());
205}
206
207
208BEGIN_DECLARE_SIM_OBJECT_PARAMS(LinuxAlphaSystem)
209

--- 61 unchanged lines hidden ---
202
203 DPRINTF(Thread, "Currently Executing Thread %s, pid %d, started at: %d\n",
204 ti.curTaskName(), ti.curTaskPID(), ti.curTaskStart());
205}
206
207
208BEGIN_DECLARE_SIM_OBJECT_PARAMS(LinuxAlphaSystem)
209

--- 61 unchanged lines hidden ---