diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2007-01-29 19:04:06 -0500 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2007-01-29 19:04:06 -0500 |
commit | d92f0d370bf4ae6a934215dbae87102312501917 (patch) | |
tree | 45cffd8b56042e1f1a8a1761c674a331bbe9fd16 /src/dev | |
parent | 716a2dc180396cefac082dedfa120350250dec48 (diff) | |
download | gem5-d92f0d370bf4ae6a934215dbae87102312501917.tar.xz |
timegm() is a gnuism... replace with the code from the timegm() man page
--HG--
extra : convert_revision : f2b80a0b7768edc370e3f07c45cb3bb9a46450a9
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/sparc/dtod.cc | 27 | ||||
-rw-r--r-- | src/dev/sparc/dtod.hh | 15 |
2 files changed, 40 insertions, 2 deletions
diff --git a/src/dev/sparc/dtod.cc b/src/dev/sparc/dtod.cc index 50e158c12..42275c60a 100644 --- a/src/dev/sparc/dtod.cc +++ b/src/dev/sparc/dtod.cc @@ -51,11 +51,21 @@ using namespace TheISA; DumbTOD::DumbTOD(Params *p) : BasicPioDevice(p) { + struct tm tm; + char *tz; + pioSize = 0x08; - struct tm tm; parseTime(p->init_time, &tm); - todTime = timegm(&tm); + tz = getenv("TZ"); + setenv("TZ", "", 1); + tzset(); + todTime = mktime(&tm); + if (tz) + setenv("TZ", tz, 1); + else + unsetenv("TZ"); + tzset(); DPRINTFN("Real-time clock set to %s\n", asctime(&tm)); DPRINTFN("Real-time clock set to %d\n", todTime); @@ -82,6 +92,19 @@ DumbTOD::write(PacketPtr pkt) panic("Dumb tod device doesn't support writes\n"); } +void +DumbTOD::serialize(std::ostream &os) +{ + SERIALIZE_SCALAR(todTime); +} + +void +DumbTOD::unserialize(Checkpoint *cp, const std::string §ion) +{ + UNSERIALIZE_SCALAR(todTime); +} + + BEGIN_DECLARE_SIM_OBJECT_PARAMS(DumbTOD) Param<Addr> pio_addr; diff --git a/src/dev/sparc/dtod.hh b/src/dev/sparc/dtod.hh index 26d4ecc08..ddf9fcc96 100644 --- a/src/dev/sparc/dtod.hh +++ b/src/dev/sparc/dtod.hh @@ -64,6 +64,21 @@ class DumbTOD : public BasicPioDevice virtual Tick read(PacketPtr pkt); virtual Tick write(PacketPtr pkt); + + /** + * Serialize this object to the given output stream. + * @param os The stream to serialize to. + */ + virtual void serialize(std::ostream &os); + + /** + * Reconstruct the state of this object from a checkpoint. + * @param cp The checkpoint use. + * @param section The section name of this object + */ + virtual void unserialize(Checkpoint *cp, const std::string §ion); + + }; #endif // __DEV_BADDEV_HH__ |