diff options
author | Joel Hestness <hestness@cs.utexas.edu> | 2011-02-06 22:14:18 -0800 |
---|---|---|
committer | Joel Hestness <hestness@cs.utexas.edu> | 2011-02-06 22:14:18 -0800 |
commit | 62e05ed78a0f24982e4066adb45dc220c9e200ea (patch) | |
tree | 078e21ca8e2743ca0918837a8128c9170700e05e /src/dev/x86/i8259.cc | |
parent | 911ccef6c05fff4832245414baa7b2a67955c35a (diff) | |
download | gem5-62e05ed78a0f24982e4066adb45dc220c9e200ea.tar.xz |
x86: Add checkpointing capability to devices
Add checkpointing capability to the Intel 8254 timer, CMOS, I8042,
PS2 Keyboard and Mouse, I82094AA, I8237, I8254, I8259, and speaker
devices
Diffstat (limited to 'src/dev/x86/i8259.cc')
-rw-r--r-- | src/dev/x86/i8259.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/dev/x86/i8259.cc b/src/dev/x86/i8259.cc index b868295eb..651196b47 100644 --- a/src/dev/x86/i8259.cc +++ b/src/dev/x86/i8259.cc @@ -303,6 +303,42 @@ X86ISA::I8259::getVector() return line | vectorOffset; } +void +X86ISA::I8259::serialize(std::ostream &os) +{ + SERIALIZE_ARRAY(pinStates, NumLines); + SERIALIZE_ENUM(mode); + SERIALIZE_SCALAR(IRR); + SERIALIZE_SCALAR(ISR); + SERIALIZE_SCALAR(IMR); + SERIALIZE_SCALAR(vectorOffset); + SERIALIZE_SCALAR(cascadeMode); + SERIALIZE_SCALAR(cascadeBits); + SERIALIZE_SCALAR(edgeTriggered); + SERIALIZE_SCALAR(readIRR); + SERIALIZE_SCALAR(expectICW4); + SERIALIZE_SCALAR(initControlWord); + SERIALIZE_SCALAR(autoEOI); +} + +void +X86ISA::I8259::unserialize(Checkpoint *cp, const std::string §ion) +{ + UNSERIALIZE_ARRAY(pinStates, NumLines); + UNSERIALIZE_ENUM(mode); + UNSERIALIZE_SCALAR(IRR); + UNSERIALIZE_SCALAR(ISR); + UNSERIALIZE_SCALAR(IMR); + UNSERIALIZE_SCALAR(vectorOffset); + UNSERIALIZE_SCALAR(cascadeMode); + UNSERIALIZE_SCALAR(cascadeBits); + UNSERIALIZE_SCALAR(edgeTriggered); + UNSERIALIZE_SCALAR(readIRR); + UNSERIALIZE_SCALAR(expectICW4); + UNSERIALIZE_SCALAR(initControlWord); + UNSERIALIZE_SCALAR(autoEOI); +} + X86ISA::I8259 * I8259Params::create() { |