03a2aca9a9
System object now exists for both fullsys and syscall emulation, as the latter needs it so that Process objects can find the shared PhysicalMemory for initialization. Changes are incomplete: still need to fix up Process (& EioProcess) memory initialization and syscall emulation code for new mem interface. arch/alpha/alpha_linux_process.cc: arch/alpha/alpha_linux_process.hh: arch/alpha/alpha_tru64_process.cc: arch/alpha/alpha_tru64_process.hh: cpu/base.cc: cpu/base.hh: Take System argument in constructor. cpu/exec_context.cc: Take System argument in constructor. Merge two constructors into a single one. cpu/exec_context.hh: Take System argument in constructor. Merge two constructors into a single one. Replace dummy translation with lookup in Process object's page table. python/m5/objects/Process.py: Add System parameter to Process object (& subobjects). python/m5/objects/System.py: Segregate full-system only Process parameters (most of them!). sim/process.cc: Take System argument in constructor. Move initialization to startup() callback to occur after system & cpus are initialized. Generate ProxyMemory object to pass to loader for transparent virtual page allocation. sim/process.hh: Take System argument in constructor. Move initialization to startup() callback to occur after system & cpus are initialized. sim/system.cc: sim/system.hh: Enable System object for non-full-system too. Basically involved putting most of the existing code inside '#ifdef FULL_SYSTEM'. Key thing needed for syscall emulation at this point is the PhysicalMemory object (for Process initialization). --HG-- extra : convert_revision : f0f34b47bd4f77b502191affd3d03b4d6d9bcdd8
18 lines
695 B
Python
18 lines
695 B
Python
from m5 import *
|
|
class Process(SimObject):
|
|
type = 'Process'
|
|
abstract = True
|
|
output = Param.String('cout', 'filename for stdout/stderr')
|
|
system = Param.System(Parent.any, "system process will run on")
|
|
|
|
class LiveProcess(Process):
|
|
type = 'LiveProcess'
|
|
executable = Param.String('', "executable (overrides cmd[0] if set)")
|
|
cmd = VectorParam.String("command line (executable plus arguments)")
|
|
env = VectorParam.String('', "environment settings")
|
|
input = Param.String('cin', "filename for stdin")
|
|
|
|
class EioProcess(Process):
|
|
type = 'EioProcess'
|
|
chkpt = Param.String('', "EIO checkpoint file name (optional)")
|
|
file = Param.String("EIO trace file name")
|