tsunami_io.cc (10642:9d3b6e7dd205) tsunami_io.cc (10905:a6ca6831e775)
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 237 unchanged lines hidden (view full) ---

246 picr &= ~bitvector;
247 if (!(picr & mask1)) {
248 tsunami->cchip->clearDRIR(55);
249 DPRINTF(Tsunami, "clearing pic interrupt to cchip\n");
250 }
251}
252
253void
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 237 unchanged lines hidden (view full) ---

246 picr &= ~bitvector;
247 if (!(picr & mask1)) {
248 tsunami->cchip->clearDRIR(55);
249 DPRINTF(Tsunami, "clearing pic interrupt to cchip\n");
250 }
251}
252
253void
254TsunamiIO::serialize(ostream &os)
254TsunamiIO::serialize(CheckpointOut &cp) const
255{
256 SERIALIZE_SCALAR(rtcAddr);
257 SERIALIZE_SCALAR(timerData);
258 SERIALIZE_SCALAR(mask1);
259 SERIALIZE_SCALAR(mask2);
260 SERIALIZE_SCALAR(mode1);
261 SERIALIZE_SCALAR(mode2);
262 SERIALIZE_SCALAR(picr);
263 SERIALIZE_SCALAR(picInterrupting);
264
265 // Serialize the timers
255{
256 SERIALIZE_SCALAR(rtcAddr);
257 SERIALIZE_SCALAR(timerData);
258 SERIALIZE_SCALAR(mask1);
259 SERIALIZE_SCALAR(mask2);
260 SERIALIZE_SCALAR(mode1);
261 SERIALIZE_SCALAR(mode2);
262 SERIALIZE_SCALAR(picr);
263 SERIALIZE_SCALAR(picInterrupting);
264
265 // Serialize the timers
266 pitimer.serialize("pitimer", os);
267 rtc.serialize("rtc", os);
266 pitimer.serialize("pitimer", cp);
267 rtc.serialize("rtc", cp);
268}
269
270void
268}
269
270void
271TsunamiIO::unserialize(Checkpoint *cp, const string &section)
271TsunamiIO::unserialize(CheckpointIn &cp)
272{
273 UNSERIALIZE_SCALAR(rtcAddr);
274 UNSERIALIZE_SCALAR(timerData);
275 UNSERIALIZE_SCALAR(mask1);
276 UNSERIALIZE_SCALAR(mask2);
277 UNSERIALIZE_SCALAR(mode1);
278 UNSERIALIZE_SCALAR(mode2);
279 UNSERIALIZE_SCALAR(picr);
280 UNSERIALIZE_SCALAR(picInterrupting);
281
282 // Unserialize the timers
272{
273 UNSERIALIZE_SCALAR(rtcAddr);
274 UNSERIALIZE_SCALAR(timerData);
275 UNSERIALIZE_SCALAR(mask1);
276 UNSERIALIZE_SCALAR(mask2);
277 UNSERIALIZE_SCALAR(mode1);
278 UNSERIALIZE_SCALAR(mode2);
279 UNSERIALIZE_SCALAR(picr);
280 UNSERIALIZE_SCALAR(picInterrupting);
281
282 // Unserialize the timers
283 pitimer.unserialize("pitimer", cp, section);
284 rtc.unserialize("rtc", cp, section);
283 pitimer.unserialize("pitimer", cp);
284 rtc.unserialize("rtc", cp);
285}
286
287void
288TsunamiIO::startup()
289{
290 rtc.startup();
291 pitimer.startup();
292}
293
294TsunamiIO *
295TsunamiIOParams::create()
296{
297 return new TsunamiIO(this);
298}
285}
286
287void
288TsunamiIO::startup()
289{
290 rtc.startup();
291 pitimer.startup();
292}
293
294TsunamiIO *
295TsunamiIOParams::create()
296{
297 return new TsunamiIO(this);
298}