summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2006-04-13 05:42:18 -0400
committerKorey Sewell <ksewell@umich.edu>2006-04-13 05:42:18 -0400
commit5afed24e1c8305a2def21dd911f27c34842b96b7 (patch)
treef6334e4b6791a9f72d9414e8b8a6cdf4950d1075 /kern
parent2dcc9ec5b2f3bb094b53a47fafcf4e0820f7b24b (diff)
downloadgem5-5afed24e1c8305a2def21dd911f27c34842b96b7.tar.xz
Changes that get rid of the OSFlags and derive a new class of this format <architecture>-<OS>.
This class is derived from the original <OS> class and is used to define information that is both architecure and OS specific (for example, the AlphaLinux class is derived from the Linux class and defined in arch/alpha/linux/linux.hh). SConscript: no need to compile linux.cc and tru64.cc now, since openFlagsTable has been moved arch/alpha/SConscript: compile linux.cc and tru64.cc within alpha arch. arch/alpha/linux/process.cc: template syscall functions on AlphaLinux instead of Linux ... AlphaLinux is derived off of Linux arch/alpha/tru64/process.cc: template syscall functions on AlphaTru64 instead of Linux ... AlphaTru64 is derived off of Linux moved tableFunc syscall function into this file arch/mips/SConscript: compile mips_linux.cc for openFlags table arch/mips/isa_traits.hh: remove constants from here arch/mips/linux_process.cc: template syscall functions on MipsLinux instead of Linux ... MipsLinux is derived off of Linux kern/linux/linux.hh: remove OSFlags kern/tru64/tru64.hh: remove OSFlags def., openFlagTable, and tableFunc ... sim/syscall_emul.hh: go back to using "OS" instead of "OSFlags" arch/alpha/linux/linux.cc: defines openFlagTable arch/alpha/linux/linux.hh: arch/alpha/tru64/tru64.hh: Alpha Linux constants placed here in class derived from Linux class arch/alpha/tru64/tru64.cc: defines openFlagTable for AlphaTru64 arch/mips/mips_linux.cc: MIPS Linux open flag table arch/mips/mips_linux.hh: Mips Linux constants placed here in class derived from Linux class --HG-- extra : convert_revision : e6c1c2c895429c28fd141732e223e897ab19315e
Diffstat (limited to 'kern')
-rw-r--r--kern/linux/linux.hh12
-rw-r--r--kern/tru64/tru64.hh48
2 files changed, 1 insertions, 59 deletions
diff --git a/kern/linux/linux.hh b/kern/linux/linux.hh
index 93d92a85b..bab460333 100644
--- a/kern/linux/linux.hh
+++ b/kern/linux/linux.hh
@@ -44,8 +44,8 @@ class Linux {};
#include <sys/types.h>
#include <unistd.h>
-#include "sim/syscall_emul.hh"
#include "arch/isa_traits.hh"
+#include "sim/syscall_emul.hh"
class TranslatingPort;
@@ -67,8 +67,6 @@ class Linux {
typedef uint32_t gid_t;
//@}
- typedef TheISA::OSFlags OSFlags;
-
#if BSD_HOST
typedef struct stat hst_stat;
typedef struct stat hst_stat64;
@@ -77,14 +75,6 @@ class Linux {
typedef struct stat64 hst_stat64;
#endif
-
- /// This table maps the target open() flags to the corresponding
- /// host open() flags.
- static OpenFlagTransTable openFlagTable[];
-
- /// Number of entries in openFlagTable[].
- static const int NUM_OPEN_FLAGS;
-
/// Stat buffer. Note that we can't call it 'stat' since that
/// gets #defined to something else on some systems.
struct tgt_stat {
diff --git a/kern/tru64/tru64.hh b/kern/tru64/tru64.hh
index ce9a67199..3bd0f39f0 100644
--- a/kern/tru64/tru64.hh
+++ b/kern/tru64/tru64.hh
@@ -70,8 +70,6 @@ class Tru64 {
public:
- typedef TheISA::OSFlags OSFlags;
-
//@{
/// Basic Tru64 types.
typedef uint64_t size_t;
@@ -87,13 +85,6 @@ class Tru64 {
typedef quad fsid_t;
//@}
- /// This table maps the target open() flags to the corresponding
- /// host open() flags.
- static OpenFlagTransTable openFlagTable[];
-
- /// Number of entries in openFlagTable[].
- static const int NUM_OPEN_FLAGS;
-
/// Stat buffer. Note that Tru64 v5.0+ use a new "F64" stat
/// structure, and a new set of syscall numbers for stat calls.
/// On some hosts (notably Linux) define st_atime, st_mtime, and
@@ -684,45 +675,6 @@ class Tru64 {
return 0;
}
- /// Target table() handler.
- static SyscallReturn
- tableFunc(SyscallDesc *desc, int callnum, Process *process,
- ExecContext *xc)
- {
- using namespace std;
- using namespace TheISA;
-
- int id = xc->getSyscallArg(0); // table ID
- int index = xc->getSyscallArg(1); // index into table
- // arg 2 is buffer pointer; type depends on table ID
- int nel = xc->getSyscallArg(3); // number of elements
- int lel = xc->getSyscallArg(4); // expected element size
-
- switch (id) {
- case Tru64::OSFlags::TBL_SYSINFO: {
- if (index != 0 || nel != 1 || lel != sizeof(Tru64::tbl_sysinfo))
- return -EINVAL;
- TypedBufferArg<Tru64::tbl_sysinfo> elp(xc->getSyscallArg(2));
-
- const int clk_hz = one_million;
- elp->si_user = htog(curTick / (Clock::Frequency / clk_hz));
- elp->si_nice = htog(0);
- elp->si_sys = htog(0);
- elp->si_idle = htog(0);
- elp->wait = htog(0);
- elp->si_hz = htog(clk_hz);
- elp->si_phz = htog(clk_hz);
- elp->si_boottime = htog(seconds_since_epoch); // seconds since epoch?
- elp->si_max_procs = htog(process->numCpus());
- elp.copyOut(xc->getMemPort());
- return 0;
- }
-
- default:
- cerr << "table(): id " << id << " unknown." << endl;
- return -EINVAL;
- }
- }
//
// Mach syscalls -- identified by negated syscall numbers