diff -r 110e070b77a7 -r b8ec7b2f5ed0 src/sim/serialize.hh --- a/src/sim/serialize.hh Mon Sep 29 11:38:01 2014 +0100 +++ b/src/sim/serialize.hh Mon Sep 29 11:38:15 2014 +0100 @@ -43,6 +43,7 @@ #include #include +#include "base/bitunion.hh" #include "base/types.hh" class IniFile; @@ -63,14 +64,37 @@ template void paramOut(std::ostream &os, const std::string &name, const T ¶m); +template +void paramOut(std::ostream &os, const std::string &name, + const BitfieldBackend::BitUnionOperators &p) +{ + paramOut(os, name, p.__data); +} + template void paramIn(Checkpoint *cp, const std::string §ion, const std::string &name, T ¶m); +template +void paramIn(Checkpoint *cp, const std::string §ion, + const std::string &name, + BitfieldBackend::BitUnionOperators &p) +{ + paramIn(cp, section, name, p.__data); +} + template bool optParamIn(Checkpoint *cp, const std::string §ion, const std::string &name, T ¶m); +template +bool optParamIn(Checkpoint *cp, const std::string §ion, + const std::string &name, + BitfieldBackend::BitUnionOperators &p) +{ + return optParamIn(cp, section, name, p.__data); +} + template void arrayParamOut(std::ostream &os, const std::string &name, const T *param, unsigned size);