Checkpoint: Make system serialize call children
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 15 Oct 2012 12:12:29 +0000 (08:12 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 15 Oct 2012 12:12:29 +0000 (08:12 -0400)
commitd7ad8dc608dd6de4ff9c930de79edcdc3bdf8d40
treeade28cbaf338c105085fc9573356ff722354a720
parent0c58106b6e27445e259d82bb13e2a5b6ae991bb6
Checkpoint: Make system serialize call children

This patch changes how the serialization of the system works. The base
class had a non-virtual serialize and unserialize, that was hidden by
a function with the same name for a number of subclasses (most likely
not intentional as the base class should have been virtual). A few of
the derived systems had no specialization at all (e.g. Power and x86
that simply called the System::serialize), but MIPS and Alpha adds
additional symbol table entries to the checkpoint.

Instead of overriding the virtual function, the additional entries are
now printed through a virtual function (un)serializeSymtab. The reason
for not calling System::serialize from the two related systems is that
a follow up patch will require the system to also serialize the
PhysicalMemory, and if this is done in the base class if ends up being
between the general parts and the specialized symbol table.

With this patch, the checkpoint is not modified, as the order of the
segments is unchanged.
src/arch/alpha/system.cc
src/arch/alpha/system.hh
src/arch/mips/system.cc
src/arch/mips/system.hh
src/arch/sparc/system.cc
src/arch/sparc/system.hh
src/arch/x86/system.cc
src/arch/x86/system.hh
src/sim/system.cc
src/sim/system.hh