diff options
author | Korey Sewell <ksewell@umich.edu> | 2006-04-13 05:42:18 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2006-04-13 05:42:18 -0400 |
commit | 5afed24e1c8305a2def21dd911f27c34842b96b7 (patch) | |
tree | f6334e4b6791a9f72d9414e8b8a6cdf4950d1075 /kern | |
parent | 2dcc9ec5b2f3bb094b53a47fafcf4e0820f7b24b (diff) | |
download | gem5-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.hh | 12 | ||||
-rw-r--r-- | kern/tru64/tru64.hh | 48 |
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 |