}
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);
}
/**
* 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()
*/
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()
{
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
}
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);
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);
* 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;
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()
{
* Serialization stuff
*/
public:
- void serialize(std::ostream &os);
- void unserialize(Checkpoint *cp, const std::string §ion);
void initState();
kernelSymtab->serialize("kernel_symtab", os);
SERIALIZE_SCALAR(pagePtr);
SERIALIZE_SCALAR(nextPID);
+ serializeSymtab(os);
}
kernelSymtab->unserialize("kernel_symtab", cp, section);
UNSERIALIZE_SCALAR(pagePtr);
UNSERIALIZE_SCALAR(nextPID);
+ unserializeSymtab(cp, section);
}
void
// 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) {}
};