From d92f0d370bf4ae6a934215dbae87102312501917 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Mon, 29 Jan 2007 19:04:06 -0500 Subject: timegm() is a gnuism... replace with the code from the timegm() man page --HG-- extra : convert_revision : f2b80a0b7768edc370e3f07c45cb3bb9a46450a9 --- src/dev/sparc/dtod.cc | 27 +++++++++++++++++++++++++-- src/dev/sparc/dtod.hh | 15 +++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) (limited to 'src/dev/sparc') 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 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__ -- cgit v1.2.3