diff options
-rw-r--r-- | src/arch/alpha/system.cc | 6 | ||||
-rw-r--r-- | src/arch/alpha/system.hh | 4 | ||||
-rwxr-xr-x | src/arch/mips/system.cc | 13 | ||||
-rwxr-xr-x | src/arch/mips/system.hh | 5 | ||||
-rw-r--r-- | src/arch/sparc/system.cc | 6 | ||||
-rw-r--r-- | src/arch/sparc/system.hh | 4 | ||||
-rw-r--r-- | src/arch/x86/system.cc | 13 | ||||
-rw-r--r-- | src/arch/x86/system.hh | 2 | ||||
-rw-r--r-- | src/sim/system.cc | 2 | ||||
-rw-r--r-- | src/sim/system.hh | 20 |
10 files changed, 30 insertions, 45 deletions
diff --git a/src/arch/alpha/system.cc b/src/arch/alpha/system.cc index ca3c2b078..f8e65015a 100644 --- a/src/arch/alpha/system.cc +++ b/src/arch/alpha/system.cc @@ -218,17 +218,15 @@ AlphaSystem::setAlphaAccess(Addr access) } void -AlphaSystem::serialize(std::ostream &os) +AlphaSystem::serializeSymtab(std::ostream &os) { - System::serialize(os); consoleSymtab->serialize("console_symtab", os); palSymtab->serialize("pal_symtab", os); } void -AlphaSystem::unserialize(Checkpoint *cp, const std::string §ion) +AlphaSystem::unserializeSymtab(Checkpoint *cp, const std::string §ion) { - System::unserialize(cp,section); consoleSymtab->unserialize("console_symtab", cp, section); palSymtab->unserialize("pal_symtab", cp, section); } diff --git a/src/arch/alpha/system.hh b/src/arch/alpha/system.hh index 024d8bb47..bbf281c39 100644 --- a/src/arch/alpha/system.hh +++ b/src/arch/alpha/system.hh @@ -59,8 +59,8 @@ class AlphaSystem : public System /** * Serialization stuff */ - virtual void serialize(std::ostream &os); - virtual void unserialize(Checkpoint *cp, const std::string §ion); + virtual void serializeSymtab(std::ostream &os); + virtual void unserializeSymtab(Checkpoint *cp, const std::string §ion); /** Override startup() to provide a path to call setupFuncEvents() */ diff --git a/src/arch/mips/system.cc b/src/arch/mips/system.cc index f0d4c250e..c6a043e46 100755 --- a/src/arch/mips/system.cc +++ b/src/arch/mips/system.cc @@ -67,19 +67,6 @@ MipsSystem::breakpoint() return 0; } -void -MipsSystem::serialize(std::ostream &os) -{ - System::serialize(os); -} - - -void -MipsSystem::unserialize(Checkpoint *cp, const std::string §ion) -{ - System::unserialize(cp,section); -} - MipsSystem * MipsSystemParams::create() { diff --git a/src/arch/mips/system.hh b/src/arch/mips/system.hh index fcaceadcd..6b74ac1e5 100755 --- a/src/arch/mips/system.hh +++ b/src/arch/mips/system.hh @@ -55,11 +55,6 @@ class MipsSystem : public System virtual bool breakpoint(); public: - /** - * Serialization stuff - */ - virtual void serialize(std::ostream &os); - virtual void unserialize(Checkpoint *cp, const std::string §ion); /** * Set the m5MipsAccess pointer in the console diff --git a/src/arch/sparc/system.cc b/src/arch/sparc/system.cc index 9ce0a90de..0b36df9ca 100644 --- a/src/arch/sparc/system.cc +++ b/src/arch/sparc/system.cc @@ -177,9 +177,8 @@ SparcSystem::~SparcSystem() } void -SparcSystem::serialize(std::ostream &os) +SparcSystem::serializeSymtab(std::ostream &os) { - System::serialize(os); resetSymtab->serialize("reset_symtab", os); hypervisorSymtab->serialize("hypervisor_symtab", os); openbootSymtab->serialize("openboot_symtab", os); @@ -190,9 +189,8 @@ SparcSystem::serialize(std::ostream &os) void -SparcSystem::unserialize(Checkpoint *cp, const std::string §ion) +SparcSystem::unserializeSymtab(Checkpoint *cp, const std::string §ion) { - System::unserialize(cp,section); resetSymtab->unserialize("reset_symtab", cp, section); hypervisorSymtab->unserialize("hypervisor_symtab", cp, section); openbootSymtab->unserialize("openboot_symtab", cp, section); diff --git a/src/arch/sparc/system.hh b/src/arch/sparc/system.hh index 4b3da6287..a4bd64aa5 100644 --- a/src/arch/sparc/system.hh +++ b/src/arch/sparc/system.hh @@ -54,8 +54,8 @@ class SparcSystem : public System * Serialization stuff */ public: - virtual void serialize(std::ostream &os); - virtual void unserialize(Checkpoint *cp, const std::string §ion); + virtual void serializeSymtab(std::ostream &os); + virtual void unserializeSymtab(Checkpoint *cp, const std::string §ion); /** reset binary symbol table */ SymbolTable *resetSymtab; diff --git a/src/arch/x86/system.cc b/src/arch/x86/system.cc index 87fb61edc..f99ad43c7 100644 --- a/src/arch/x86/system.cc +++ b/src/arch/x86/system.cc @@ -388,19 +388,6 @@ X86System::~X86System() delete smbiosTable; } -void -X86System::serialize(std::ostream &os) -{ - System::serialize(os); -} - - -void -X86System::unserialize(Checkpoint *cp, const std::string §ion) -{ - System::unserialize(cp,section); -} - X86System * X86SystemParams::create() { diff --git a/src/arch/x86/system.hh b/src/arch/x86/system.hh index 0b5da3145..998a69cd7 100644 --- a/src/arch/x86/system.hh +++ b/src/arch/x86/system.hh @@ -74,8 +74,6 @@ class X86System : public System * Serialization stuff */ public: - void serialize(std::ostream &os); - void unserialize(Checkpoint *cp, const std::string §ion); void initState(); diff --git a/src/sim/system.cc b/src/sim/system.cc index 4871ac824..65eb0e3eb 100644 --- a/src/sim/system.cc +++ b/src/sim/system.cc @@ -341,6 +341,7 @@ System::serialize(ostream &os) kernelSymtab->serialize("kernel_symtab", os); SERIALIZE_SCALAR(pagePtr); SERIALIZE_SCALAR(nextPID); + serializeSymtab(os); } @@ -351,6 +352,7 @@ System::unserialize(Checkpoint *cp, const string §ion) kernelSymtab->unserialize("kernel_symtab", cp, section); UNSERIALIZE_SCALAR(pagePtr); UNSERIALIZE_SCALAR(nextPID); + unserializeSymtab(cp, section); } void diff --git a/src/sim/system.hh b/src/sim/system.hh index 4348ecaca..2393c83f2 100644 --- a/src/sim/system.hh +++ b/src/sim/system.hh @@ -403,6 +403,26 @@ class System : public MemObject // For futex system call std::map<uint64_t, std::list<ThreadContext *> * > futexMap; + protected: + + /** + * If needed, serialize additional symbol table entries for a + * specific subclass of this sytem. Currently this is used by + * Alpha and MIPS. + * + * @param os stream to serialize to + */ + virtual void serializeSymtab(std::ostream &os) {} + + /** + * If needed, unserialize additional symbol table entries for a + * specific subclass of this system. + * + * @param cp checkpoint to unserialize from + * @param section relevant section in the checkpoint + */ + virtual void unserializeSymtab(Checkpoint *cp, + const std::string §ion) {} }; |