Restructuring of LiveProcess etc. to support multiple emulated OS syscall
authorSteve Reinhardt <stever@eecs.umich.edu>
Tue, 2 Dec 2003 03:34:38 +0000 (19:34 -0800)
committerSteve Reinhardt <stever@eecs.umich.edu>
Tue, 2 Dec 2003 03:34:38 +0000 (19:34 -0800)
commit7976794aadd7f308010f88aa3a8a6e3469e37ba7
tree48a163fc53913623e0d11cb1e44188fdaa2e8112
parent94f98b43b3eaf86b22ca29bab5e0a1d3a1c60512
Restructuring of LiveProcess etc. to support multiple emulated OS syscall
interfaces, and specific support for Alpha Linux.  Split syscall emulation
functions into several groups, based on whether they depend on the specific
OS and/or architecture (and all combinations of above), including the use of
template functions to support syscalls with slightly different constants
or interface structs.

arch/alpha/alpha_tru64_process.cc:
    Incorporate full Tru64 object definition here, including structure and constant definitions.
    This way we can wrap all of the functions inside the object, and not worry about namespace
    conflicts because no one outside this file will ever see it.
base/loader/aout_object.cc:
base/loader/aout_object.hh:
base/loader/ecoff_object.cc:
base/loader/ecoff_object.hh:
base/loader/elf_object.cc:
base/loader/elf_object.hh:
base/loader/object_file.cc:
base/loader/object_file.hh:
    Add enums to ObjectFile to indicate the object's architecture and operating system.
cpu/exec_context.cc:
    prog.hh is now process.hh
cpu/exec_context.hh:
    prog.hh is now process.hh
    move architecture-specific syscall arg accessors into ExecContext
cpu/simple_cpu/simple_cpu.cc:
    No need to include prog.hh (which has been renamed)
sim/process.cc:
sim/process.hh:
    LiveProcess is now effectively an abstract base class.
    New LiveProcess::create() function takes an object file and dynamically picks the
    appropriate subclass of LiveProcess to handle the syscall interface that file expects
    (currently Tru64 or Linux).

--HG--
rename : arch/alpha/fake_syscall.cc => arch/alpha/alpha_tru64_process.cc
rename : sim/prog.cc => sim/process.cc
rename : sim/prog.hh => sim/process.hh
extra : convert_revision : 4a03ca7d94a34177cb672931f8aae83a6bad179a
22 files changed:
arch/alpha/alpha_linux_process.cc [new file with mode: 0644]
arch/alpha/alpha_linux_process.hh [new file with mode: 0644]
arch/alpha/alpha_tru64_process.cc [new file with mode: 0644]
arch/alpha/alpha_tru64_process.hh [new file with mode: 0644]
arch/alpha/fake_syscall.cc [deleted file]
base/loader/aout_object.cc
base/loader/aout_object.hh
base/loader/ecoff_object.cc
base/loader/ecoff_object.hh
base/loader/elf_object.cc
base/loader/elf_object.hh
base/loader/object_file.cc
base/loader/object_file.hh
cpu/exec_context.cc
cpu/exec_context.hh
cpu/simple_cpu/simple_cpu.cc
sim/process.cc [new file with mode: 0644]
sim/process.hh [new file with mode: 0644]
sim/prog.cc [deleted file]
sim/prog.hh [deleted file]
sim/syscall_emul.cc [new file with mode: 0644]
sim/syscall_emul.hh [new file with mode: 0644]