Add in a new translating port that allows syscalls to translate addresses via the page table before accessing the memory port.
Other compile issues cleaned up.
SConscript:
Changes to compile the new Translating Port.
Split out memtester and eio support, will rework them back in after first getting a simpleCPU to work
arch/alpha/alpha_linux_process.cc:
arch/alpha/alpha_tru64_process.cc:
sim/syscall_emul.cc:
sim/syscall_emul.hh:
Changes to use the new translating Port.
cpu/exec_context.cc:
cpu/exec_context.hh:
Create a translating port in each execution context.
sim/process.cc:
Fix the way we do proxy memory
--HG--
extra : convert_revision : 3d33218fe8b425a5d9ce24757f1112b4aa6001fd
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include "base/output.hh"
|
||||
#include "cpu/profile.hh"
|
||||
#include "kern/kernel_stats.hh"
|
||||
#include "mem/translating_port.hh"
|
||||
#include "sim/serialize.hh"
|
||||
#include "sim/sim_exit.hh"
|
||||
#include "sim/system.hh"
|
||||
@@ -85,6 +86,7 @@ ExecContext::ExecContext(BaseCPU *_cpu, int _thread_num, System *_system,
|
||||
asid(_asid),
|
||||
func_exe_inst(0), storeCondFailures(0)
|
||||
{
|
||||
port = new TranslatingPort(cpu->memPort, process->pTable);
|
||||
memset(®s, 0, sizeof(RegFile));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#include "sim/host.hh"
|
||||
#include "sim/serialize.hh"
|
||||
#include "targetarch/byte_swap.hh"
|
||||
#include "mem/translating_port.hh"
|
||||
|
||||
class Memory;
|
||||
class BaseCPU;
|
||||
|
||||
#if FULL_SYSTEM
|
||||
@@ -122,6 +122,9 @@ class ExecContext
|
||||
int cpu_id;
|
||||
|
||||
System *system;
|
||||
|
||||
/// Port that syscalls can use to access memory (provides translation step).
|
||||
TranslatingPort *port;
|
||||
// Memory *mem;
|
||||
|
||||
#if FULL_SYSTEM
|
||||
|
||||
Reference in New Issue
Block a user